@cartesi/devnet 1.8.0 → 2.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/build/anvil_state.json +1 -1
  2. package/deployments/localhost/ApplicationFactory.json +227 -0
  3. package/deployments/localhost/AuthorityFactory.json +55 -44
  4. package/deployments/localhost/ERC1155BatchPortal.json +26 -26
  5. package/deployments/localhost/ERC1155SinglePortal.json +25 -25
  6. package/deployments/localhost/ERC20Portal.json +35 -23
  7. package/deployments/localhost/ERC721Portal.json +23 -23
  8. package/deployments/localhost/EtherPortal.json +21 -21
  9. package/deployments/localhost/InputBox.json +64 -58
  10. package/deployments/localhost/QuorumFactory.json +188 -0
  11. package/deployments/localhost/SafeERC20Transfer.json +118 -0
  12. package/deployments/localhost/SelfHostedApplicationFactory.json +71 -70
  13. package/deployments/localhost/TestMultiToken.json +18 -18
  14. package/deployments/localhost/TestNFT.json +24 -24
  15. package/deployments/localhost/TestToken.json +28 -28
  16. package/export/abi/localhost.json +234 -602
  17. package/export/artifacts/@openzeppelin/contracts/access/manager/IAccessManager.sol/IAccessManager.json +11 -22
  18. package/export/artifacts/@openzeppelin/contracts/interfaces/IERC4906.sol/IERC4906.json +4 -4
  19. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json +1 -1
  20. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json +1 -1
  21. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json +2 -2
  22. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.json +1 -1
  23. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155.sol/IERC1155.json +4 -4
  24. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol/IERC1155Receiver.json +3 -3
  25. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +4 -4
  26. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol/ERC1155Utils.json +34 -0
  27. package/export/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +2 -2
  28. package/export/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +1 -1
  29. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json +1 -1
  30. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol/ERC20Pausable.json +2 -2
  31. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol/ERC20Permit.json +3 -3
  32. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +1 -1
  33. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json +1 -1
  34. package/export/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +2 -2
  35. package/export/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +4 -4
  36. package/export/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json +2 -2
  37. package/export/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json +2 -2
  38. package/export/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json +3 -3
  39. package/export/artifacts/@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol/ERC721Utils.json +33 -0
  40. package/export/artifacts/@openzeppelin/contracts/utils/Arrays.sol/Arrays.json +26 -3
  41. package/export/artifacts/@openzeppelin/contracts/utils/Comparators.sol/Comparators.json +34 -0
  42. package/export/artifacts/@openzeppelin/contracts/utils/Panic.sol/Panic.json +65 -0
  43. package/export/artifacts/@openzeppelin/contracts/utils/ShortStrings.sol/ShortStrings.json +2 -2
  44. package/export/artifacts/@openzeppelin/contracts/utils/SlotDerivation.sol/SlotDerivation.json +42 -0
  45. package/export/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +4 -3
  46. package/export/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +3 -2
  47. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json +2 -2
  48. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/EIP712.sol/EIP712.json +2 -2
  49. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json +3 -3
  50. package/export/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +1 -1
  51. package/export/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +2 -2
  52. package/export/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +11 -16
  53. package/export/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.json +4 -3
  54. package/export/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +4 -3
  55. package/export/artifacts/@openzeppelin/contracts/utils/types/Time.sol/Time.json +2 -2
  56. package/export/artifacts/contracts/TestMultiToken.sol/TestMultiToken.json +3 -3
  57. package/export/artifacts/contracts/TestNFT.sol/TestNFT.json +4 -4
  58. package/export/artifacts/contracts/TestToken.sol/TestToken.json +3 -3
  59. package/package.json +11 -11
  60. package/deployments/localhost/AuthorityHistoryPairFactory.json +0 -276
  61. package/deployments/localhost/Bitmask.json +0 -44
  62. package/deployments/localhost/CartesiDAppFactory.json +0 -231
  63. package/deployments/localhost/CartesiMathV2.json +0 -213
  64. package/deployments/localhost/DAppAddressRelay.json +0 -102
  65. package/deployments/localhost/HistoryFactory.json +0 -177
  66. package/deployments/localhost/MerkleV2.json +0 -217
  67. package/deployments/localhost/UnrolledCordic.json +0 -54
@@ -571,8 +571,8 @@
571
571
  "type": "function"
572
572
  }
573
573
  ],
574
- "bytecode": "0x60806040523480156200001157600080fd5b5060405162002e9b38038062002e9b83398181016040528101906200003791906200022d565b80604051806020016040528060008152506200005981620000e860201b60201c565b50600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000cf5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000c6919062000270565b60405180910390fd5b620000e081620000fd60201b60201c565b5050620005ee565b8060029081620000f9919062000507565b5050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001f582620001c8565b9050919050565b6200020781620001e8565b81146200021357600080fd5b50565b6000815190506200022781620001fc565b92915050565b600060208284031215620002465762000245620001c3565b5b6000620002568482850162000216565b91505092915050565b6200026a81620001e8565b82525050565b60006020820190506200028760008301846200025f565b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200030f57607f821691505b602082108103620003255762000324620002c7565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200038f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000350565b6200039b868362000350565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003e8620003e2620003dc84620003b3565b620003bd565b620003b3565b9050919050565b6000819050919050565b6200040483620003c7565b6200041c6200041382620003ef565b8484546200035d565b825550505050565b600090565b6200043362000424565b62000440818484620003f9565b505050565b5b8181101562000468576200045c60008262000429565b60018101905062000446565b5050565b601f821115620004b75762000481816200032b565b6200048c8462000340565b810160208510156200049c578190505b620004b4620004ab8562000340565b83018262000445565b50505b505050565b600082821c905092915050565b6000620004dc60001984600802620004bc565b1980831691505092915050565b6000620004f78383620004c9565b9150826002028217905092915050565b62000512826200028d565b67ffffffffffffffff8111156200052e576200052d62000298565b5b6200053a8254620002f6565b620005478282856200046c565b600060209050601f8311600181146200057f57600084156200056a578287015190505b620005768582620004e9565b865550620005e6565b601f1984166200058f866200032b565b60005b82811015620005b95784890151825560018201915060208501945060208101905062000592565b86831015620005d95784890151620005d5601f891682620004c9565b8355505b6001600288020188555050505b505050505050565b61289d80620005fe6000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c8063715018a61161008c578063a22cb46511610066578063a22cb46514610246578063e985e9c514610262578063f242432a14610292578063f2fde38b146102ae576100e9565b8063715018a614610202578063731133e91461020c5780638da5cb5b14610228576100e9565b80630e89341c116100c85780630e89341c1461016a5780631f7fdffa1461019a5780632eb2c2d6146101b65780634e1273f4146101d2576100e9565b8062fdd58e146100ee57806301ffc9a71461011e57806302fe53051461014e575b600080fd5b610108600480360381019061010391906117db565b6102ca565b604051610115919061182a565b60405180910390f35b6101386004803603810190610133919061189d565b610324565b60405161014591906118e5565b60405180910390f35b61016860048036038101906101639190611a46565b610406565b005b610184600480360381019061017f9190611a8f565b61041a565b6040516101919190611b3b565b60405180910390f35b6101b460048036038101906101af9190611cc6565b6104ae565b005b6101d060048036038101906101cb9190611d81565b6104c8565b005b6101ec60048036038101906101e79190611f13565b610570565b6040516101f99190612049565b60405180910390f35b61020a61067f565b005b6102266004803603810190610221919061206b565b610693565b005b6102306106ad565b60405161023d91906120fd565b60405180910390f35b610260600480360381019061025b9190612144565b6106d7565b005b61027c60048036038101906102779190612184565b6106ed565b60405161028991906118e5565b60405180910390f35b6102ac60048036038101906102a791906121c4565b610781565b005b6102c860048036038101906102c3919061225b565b610829565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103ef57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103ff57506103fe826108af565b5b9050919050565b61040e610919565b610417816109a0565b50565b606060028054610429906122b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610455906122b7565b80156104a25780601f10610477576101008083540402835291602001916104a2565b820191906000526020600020905b81548152906001019060200180831161048557829003601f168201915b50505050509050919050565b6104b6610919565b6104c2848484846109b3565b50505050565b60006104d2610a39565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610517575061051586826106ed565b155b1561055b5780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105529291906122e8565b60405180910390fd5b6105688686868686610a41565b505050505050565b606081518351146105bc57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016105b3929190612311565b60405180910390fd5b6000835167ffffffffffffffff8111156105d9576105d861191b565b5b6040519080825280602002602001820160405280156106075781602001602082028036833780820191505090505b50905060005b84518110156106745761064461062c8287610b3990919063ffffffff16565b61063f8387610b4d90919063ffffffff16565b6102ca565b8282815181106106575761065661233a565b5b6020026020010181815250508061066d90612398565b905061060d565b508091505092915050565b610687610919565b6106916000610b61565b565b61069b610919565b6106a784848484610c27565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6106e96106e2610a39565b8383610cc0565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600061078b610a39565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156107d057506107ce86826106ed565b155b156108145780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161080b9291906122e8565b60405180910390fd5b6108218686868686610e30565b505050505050565b610831610919565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108a35760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161089a91906120fd565b60405180910390fd5b6108ac81610b61565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610921610a39565b73ffffffffffffffffffffffffffffffffffffffff1661093f6106ad565b73ffffffffffffffffffffffffffffffffffffffff161461099e57610962610a39565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161099591906120fd565b60405180910390fd5b565b80600290816109af919061258c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a255760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610a1c91906120fd565b60405180910390fd5b610a33600085858585610f3b565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ab35760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610aaa91906120fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b255760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610b1c91906120fd565b60405180910390fd5b610b328585858585610f3b565b5050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c995760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610c9091906120fd565b60405180910390fd5b600080610ca68585610fed565b91509150610cb8600087848487610f3b565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d325760006040517fced3e100000000000000000000000000000000000000000000000000000000008152600401610d2991906120fd565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e2391906118e5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ea25760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610e9991906120fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610f145760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610f0b91906120fd565b60405180910390fd5b600080610f218585610fed565b91509150610f328787848487610f3b565b50505050505050565b610f478585858561101d565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610fe6576000610f85610a39565b90506001845103610fd5576000610fa6600086610b4d90919063ffffffff16565b90506000610fbe600086610b4d90919063ffffffff16565b9050610fce8389898585896113cb565b5050610fe4565b610fe381878787878761157f565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b805182511461106757815181516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161105e929190612311565b60405180910390fd5b6000611071610a39565b905060005b83518110156112865760006110948286610b4d90919063ffffffff16565b905060006110ab8386610b4d90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146111d857600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561118057888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611177949392919061265e565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611273578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461126b91906126a3565b925050819055505b50508061127f90612398565b9050611076565b5060018351036113455760006112a6600085610b4d90919063ffffffff16565b905060006112be600085610b4d90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611336929190612311565b60405180910390a450506113c4565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516113bb9291906126d7565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611577578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161142c959493929190612763565b6020604051808303816000875af192505050801561146857506040513d601f19601f8201168201806040525081019061146591906127d2565b60015b6114ec573d8060008114611498576040519150601f19603f3d011682016040523d82523d6000602084013e61149d565b606091505b5060008151036114e457846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114db91906120fd565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461157557846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161156c91906120fd565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b111561172b578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016115e09594939291906127ff565b6020604051808303816000875af192505050801561161c57506040513d601f19601f8201168201806040525081019061161991906127d2565b60015b6116a0573d806000811461164c576040519150601f19603f3d011682016040523d82523d6000602084013e611651565b606091505b50600081510361169857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161168f91906120fd565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461172957846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161172091906120fd565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061177282611747565b9050919050565b61178281611767565b811461178d57600080fd5b50565b60008135905061179f81611779565b92915050565b6000819050919050565b6117b8816117a5565b81146117c357600080fd5b50565b6000813590506117d5816117af565b92915050565b600080604083850312156117f2576117f161173d565b5b600061180085828601611790565b9250506020611811858286016117c6565b9150509250929050565b611824816117a5565b82525050565b600060208201905061183f600083018461181b565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61187a81611845565b811461188557600080fd5b50565b60008135905061189781611871565b92915050565b6000602082840312156118b3576118b261173d565b5b60006118c184828501611888565b91505092915050565b60008115159050919050565b6118df816118ca565b82525050565b60006020820190506118fa60008301846118d6565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6119538261190a565b810181811067ffffffffffffffff821117156119725761197161191b565b5b80604052505050565b6000611985611733565b9050611991828261194a565b919050565b600067ffffffffffffffff8211156119b1576119b061191b565b5b6119ba8261190a565b9050602081019050919050565b82818337600083830152505050565b60006119e96119e484611996565b61197b565b905082815260208101848484011115611a0557611a04611905565b5b611a108482856119c7565b509392505050565b600082601f830112611a2d57611a2c611900565b5b8135611a3d8482602086016119d6565b91505092915050565b600060208284031215611a5c57611a5b61173d565b5b600082013567ffffffffffffffff811115611a7a57611a79611742565b5b611a8684828501611a18565b91505092915050565b600060208284031215611aa557611aa461173d565b5b6000611ab3848285016117c6565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611af6578082015181840152602081019050611adb565b60008484015250505050565b6000611b0d82611abc565b611b178185611ac7565b9350611b27818560208601611ad8565b611b308161190a565b840191505092915050565b60006020820190508181036000830152611b558184611b02565b905092915050565b600067ffffffffffffffff821115611b7857611b7761191b565b5b602082029050602081019050919050565b600080fd5b6000611ba1611b9c84611b5d565b61197b565b90508083825260208201905060208402830185811115611bc457611bc3611b89565b5b835b81811015611bed5780611bd988826117c6565b845260208401935050602081019050611bc6565b5050509392505050565b600082601f830112611c0c57611c0b611900565b5b8135611c1c848260208601611b8e565b91505092915050565b600067ffffffffffffffff821115611c4057611c3f61191b565b5b611c498261190a565b9050602081019050919050565b6000611c69611c6484611c25565b61197b565b905082815260208101848484011115611c8557611c84611905565b5b611c908482856119c7565b509392505050565b600082601f830112611cad57611cac611900565b5b8135611cbd848260208601611c56565b91505092915050565b60008060008060808587031215611ce057611cdf61173d565b5b6000611cee87828801611790565b945050602085013567ffffffffffffffff811115611d0f57611d0e611742565b5b611d1b87828801611bf7565b935050604085013567ffffffffffffffff811115611d3c57611d3b611742565b5b611d4887828801611bf7565b925050606085013567ffffffffffffffff811115611d6957611d68611742565b5b611d7587828801611c98565b91505092959194509250565b600080600080600060a08688031215611d9d57611d9c61173d565b5b6000611dab88828901611790565b9550506020611dbc88828901611790565b945050604086013567ffffffffffffffff811115611ddd57611ddc611742565b5b611de988828901611bf7565b935050606086013567ffffffffffffffff811115611e0a57611e09611742565b5b611e1688828901611bf7565b925050608086013567ffffffffffffffff811115611e3757611e36611742565b5b611e4388828901611c98565b9150509295509295909350565b600067ffffffffffffffff821115611e6b57611e6a61191b565b5b602082029050602081019050919050565b6000611e8f611e8a84611e50565b61197b565b90508083825260208201905060208402830185811115611eb257611eb1611b89565b5b835b81811015611edb5780611ec78882611790565b845260208401935050602081019050611eb4565b5050509392505050565b600082601f830112611efa57611ef9611900565b5b8135611f0a848260208601611e7c565b91505092915050565b60008060408385031215611f2a57611f2961173d565b5b600083013567ffffffffffffffff811115611f4857611f47611742565b5b611f5485828601611ee5565b925050602083013567ffffffffffffffff811115611f7557611f74611742565b5b611f8185828601611bf7565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611fc0816117a5565b82525050565b6000611fd28383611fb7565b60208301905092915050565b6000602082019050919050565b6000611ff682611f8b565b6120008185611f96565b935061200b83611fa7565b8060005b8381101561203c5781516120238882611fc6565b975061202e83611fde565b92505060018101905061200f565b5085935050505092915050565b600060208201905081810360008301526120638184611feb565b905092915050565b600080600080608085870312156120855761208461173d565b5b600061209387828801611790565b94505060206120a4878288016117c6565b93505060406120b5878288016117c6565b925050606085013567ffffffffffffffff8111156120d6576120d5611742565b5b6120e287828801611c98565b91505092959194509250565b6120f781611767565b82525050565b600060208201905061211260008301846120ee565b92915050565b612121816118ca565b811461212c57600080fd5b50565b60008135905061213e81612118565b92915050565b6000806040838503121561215b5761215a61173d565b5b600061216985828601611790565b925050602061217a8582860161212f565b9150509250929050565b6000806040838503121561219b5761219a61173d565b5b60006121a985828601611790565b92505060206121ba85828601611790565b9150509250929050565b600080600080600060a086880312156121e0576121df61173d565b5b60006121ee88828901611790565b95505060206121ff88828901611790565b9450506040612210888289016117c6565b9350506060612221888289016117c6565b925050608086013567ffffffffffffffff81111561224257612241611742565b5b61224e88828901611c98565b9150509295509295909350565b6000602082840312156122715761227061173d565b5b600061227f84828501611790565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806122cf57607f821691505b6020821081036122e2576122e1612288565b5b50919050565b60006040820190506122fd60008301856120ee565b61230a60208301846120ee565b9392505050565b6000604082019050612326600083018561181b565b612333602083018461181b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123a3826117a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036123d5576123d4612369565b5b600182019050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026124427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612405565b61244c8683612405565b95508019841693508086168417925050509392505050565b6000819050919050565b600061248961248461247f846117a5565b612464565b6117a5565b9050919050565b6000819050919050565b6124a38361246e565b6124b76124af82612490565b848454612412565b825550505050565b600090565b6124cc6124bf565b6124d781848461249a565b505050565b5b818110156124fb576124f06000826124c4565b6001810190506124dd565b5050565b601f82111561254057612511816123e0565b61251a846123f5565b81016020851015612529578190505b61253d612535856123f5565b8301826124dc565b50505b505050565b600082821c905092915050565b600061256360001984600802612545565b1980831691505092915050565b600061257c8383612552565b9150826002028217905092915050565b61259582611abc565b67ffffffffffffffff8111156125ae576125ad61191b565b5b6125b882546122b7565b6125c38282856124ff565b600060209050601f8311600181146125f657600084156125e4578287015190505b6125ee8582612570565b865550612656565b601f198416612604866123e0565b60005b8281101561262c57848901518255600182019150602085019450602081019050612607565b868310156126495784890151612645601f891682612552565b8355505b6001600288020188555050505b505050505050565b600060808201905061267360008301876120ee565b612680602083018661181b565b61268d604083018561181b565b61269a606083018461181b565b95945050505050565b60006126ae826117a5565b91506126b9836117a5565b92508282019050808211156126d1576126d0612369565b5b92915050565b600060408201905081810360008301526126f18185611feb565b905081810360208301526127058184611feb565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006127358261270e565b61273f8185612719565b935061274f818560208601611ad8565b6127588161190a565b840191505092915050565b600060a08201905061277860008301886120ee565b61278560208301876120ee565b612792604083018661181b565b61279f606083018561181b565b81810360808301526127b1818461272a565b90509695505050505050565b6000815190506127cc81611871565b92915050565b6000602082840312156127e8576127e761173d565b5b60006127f6848285016127bd565b91505092915050565b600060a08201905061281460008301886120ee565b61282160208301876120ee565b81810360408301526128338186611feb565b905081810360608301526128478185611feb565b9050818103608083015261285b818461272a565b9050969550505050505056fea2646970667358221220af26ff71a8ef48f9837416b8208dc9a354ac1edb724da72ad53d3c040327e98364736f6c63430008140033",
575
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100e95760003560e01c8063715018a61161008c578063a22cb46511610066578063a22cb46514610246578063e985e9c514610262578063f242432a14610292578063f2fde38b146102ae576100e9565b8063715018a614610202578063731133e91461020c5780638da5cb5b14610228576100e9565b80630e89341c116100c85780630e89341c1461016a5780631f7fdffa1461019a5780632eb2c2d6146101b65780634e1273f4146101d2576100e9565b8062fdd58e146100ee57806301ffc9a71461011e57806302fe53051461014e575b600080fd5b610108600480360381019061010391906117db565b6102ca565b604051610115919061182a565b60405180910390f35b6101386004803603810190610133919061189d565b610324565b60405161014591906118e5565b60405180910390f35b61016860048036038101906101639190611a46565b610406565b005b610184600480360381019061017f9190611a8f565b61041a565b6040516101919190611b3b565b60405180910390f35b6101b460048036038101906101af9190611cc6565b6104ae565b005b6101d060048036038101906101cb9190611d81565b6104c8565b005b6101ec60048036038101906101e79190611f13565b610570565b6040516101f99190612049565b60405180910390f35b61020a61067f565b005b6102266004803603810190610221919061206b565b610693565b005b6102306106ad565b60405161023d91906120fd565b60405180910390f35b610260600480360381019061025b9190612144565b6106d7565b005b61027c60048036038101906102779190612184565b6106ed565b60405161028991906118e5565b60405180910390f35b6102ac60048036038101906102a791906121c4565b610781565b005b6102c860048036038101906102c3919061225b565b610829565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103ef57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103ff57506103fe826108af565b5b9050919050565b61040e610919565b610417816109a0565b50565b606060028054610429906122b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610455906122b7565b80156104a25780601f10610477576101008083540402835291602001916104a2565b820191906000526020600020905b81548152906001019060200180831161048557829003601f168201915b50505050509050919050565b6104b6610919565b6104c2848484846109b3565b50505050565b60006104d2610a39565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610517575061051586826106ed565b155b1561055b5780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105529291906122e8565b60405180910390fd5b6105688686868686610a41565b505050505050565b606081518351146105bc57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016105b3929190612311565b60405180910390fd5b6000835167ffffffffffffffff8111156105d9576105d861191b565b5b6040519080825280602002602001820160405280156106075781602001602082028036833780820191505090505b50905060005b84518110156106745761064461062c8287610b3990919063ffffffff16565b61063f8387610b4d90919063ffffffff16565b6102ca565b8282815181106106575761065661233a565b5b6020026020010181815250508061066d90612398565b905061060d565b508091505092915050565b610687610919565b6106916000610b61565b565b61069b610919565b6106a784848484610c27565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6106e96106e2610a39565b8383610cc0565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600061078b610a39565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156107d057506107ce86826106ed565b155b156108145780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161080b9291906122e8565b60405180910390fd5b6108218686868686610e30565b505050505050565b610831610919565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108a35760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161089a91906120fd565b60405180910390fd5b6108ac81610b61565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610921610a39565b73ffffffffffffffffffffffffffffffffffffffff1661093f6106ad565b73ffffffffffffffffffffffffffffffffffffffff161461099e57610962610a39565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161099591906120fd565b60405180910390fd5b565b80600290816109af919061258c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a255760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610a1c91906120fd565b60405180910390fd5b610a33600085858585610f3b565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ab35760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610aaa91906120fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b255760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610b1c91906120fd565b60405180910390fd5b610b328585858585610f3b565b5050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c995760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610c9091906120fd565b60405180910390fd5b600080610ca68585610fed565b91509150610cb8600087848487610f3b565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d325760006040517fced3e100000000000000000000000000000000000000000000000000000000008152600401610d2991906120fd565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e2391906118e5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ea25760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610e9991906120fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610f145760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610f0b91906120fd565b60405180910390fd5b600080610f218585610fed565b91509150610f328787848487610f3b565b50505050505050565b610f478585858561101d565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610fe6576000610f85610a39565b90506001845103610fd5576000610fa6600086610b4d90919063ffffffff16565b90506000610fbe600086610b4d90919063ffffffff16565b9050610fce8389898585896113cb565b5050610fe4565b610fe381878787878761157f565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b805182511461106757815181516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161105e929190612311565b60405180910390fd5b6000611071610a39565b905060005b83518110156112865760006110948286610b4d90919063ffffffff16565b905060006110ab8386610b4d90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146111d857600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561118057888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611177949392919061265e565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611273578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461126b91906126a3565b925050819055505b50508061127f90612398565b9050611076565b5060018351036113455760006112a6600085610b4d90919063ffffffff16565b905060006112be600085610b4d90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611336929190612311565b60405180910390a450506113c4565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516113bb9291906126d7565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611577578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161142c959493929190612763565b6020604051808303816000875af192505050801561146857506040513d601f19601f8201168201806040525081019061146591906127d2565b60015b6114ec573d8060008114611498576040519150601f19603f3d011682016040523d82523d6000602084013e61149d565b606091505b5060008151036114e457846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114db91906120fd565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461157557846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161156c91906120fd565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b111561172b578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016115e09594939291906127ff565b6020604051808303816000875af192505050801561161c57506040513d601f19601f8201168201806040525081019061161991906127d2565b60015b6116a0573d806000811461164c576040519150601f19603f3d011682016040523d82523d6000602084013e611651565b606091505b50600081510361169857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161168f91906120fd565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461172957846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161172091906120fd565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061177282611747565b9050919050565b61178281611767565b811461178d57600080fd5b50565b60008135905061179f81611779565b92915050565b6000819050919050565b6117b8816117a5565b81146117c357600080fd5b50565b6000813590506117d5816117af565b92915050565b600080604083850312156117f2576117f161173d565b5b600061180085828601611790565b9250506020611811858286016117c6565b9150509250929050565b611824816117a5565b82525050565b600060208201905061183f600083018461181b565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61187a81611845565b811461188557600080fd5b50565b60008135905061189781611871565b92915050565b6000602082840312156118b3576118b261173d565b5b60006118c184828501611888565b91505092915050565b60008115159050919050565b6118df816118ca565b82525050565b60006020820190506118fa60008301846118d6565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6119538261190a565b810181811067ffffffffffffffff821117156119725761197161191b565b5b80604052505050565b6000611985611733565b9050611991828261194a565b919050565b600067ffffffffffffffff8211156119b1576119b061191b565b5b6119ba8261190a565b9050602081019050919050565b82818337600083830152505050565b60006119e96119e484611996565b61197b565b905082815260208101848484011115611a0557611a04611905565b5b611a108482856119c7565b509392505050565b600082601f830112611a2d57611a2c611900565b5b8135611a3d8482602086016119d6565b91505092915050565b600060208284031215611a5c57611a5b61173d565b5b600082013567ffffffffffffffff811115611a7a57611a79611742565b5b611a8684828501611a18565b91505092915050565b600060208284031215611aa557611aa461173d565b5b6000611ab3848285016117c6565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611af6578082015181840152602081019050611adb565b60008484015250505050565b6000611b0d82611abc565b611b178185611ac7565b9350611b27818560208601611ad8565b611b308161190a565b840191505092915050565b60006020820190508181036000830152611b558184611b02565b905092915050565b600067ffffffffffffffff821115611b7857611b7761191b565b5b602082029050602081019050919050565b600080fd5b6000611ba1611b9c84611b5d565b61197b565b90508083825260208201905060208402830185811115611bc457611bc3611b89565b5b835b81811015611bed5780611bd988826117c6565b845260208401935050602081019050611bc6565b5050509392505050565b600082601f830112611c0c57611c0b611900565b5b8135611c1c848260208601611b8e565b91505092915050565b600067ffffffffffffffff821115611c4057611c3f61191b565b5b611c498261190a565b9050602081019050919050565b6000611c69611c6484611c25565b61197b565b905082815260208101848484011115611c8557611c84611905565b5b611c908482856119c7565b509392505050565b600082601f830112611cad57611cac611900565b5b8135611cbd848260208601611c56565b91505092915050565b60008060008060808587031215611ce057611cdf61173d565b5b6000611cee87828801611790565b945050602085013567ffffffffffffffff811115611d0f57611d0e611742565b5b611d1b87828801611bf7565b935050604085013567ffffffffffffffff811115611d3c57611d3b611742565b5b611d4887828801611bf7565b925050606085013567ffffffffffffffff811115611d6957611d68611742565b5b611d7587828801611c98565b91505092959194509250565b600080600080600060a08688031215611d9d57611d9c61173d565b5b6000611dab88828901611790565b9550506020611dbc88828901611790565b945050604086013567ffffffffffffffff811115611ddd57611ddc611742565b5b611de988828901611bf7565b935050606086013567ffffffffffffffff811115611e0a57611e09611742565b5b611e1688828901611bf7565b925050608086013567ffffffffffffffff811115611e3757611e36611742565b5b611e4388828901611c98565b9150509295509295909350565b600067ffffffffffffffff821115611e6b57611e6a61191b565b5b602082029050602081019050919050565b6000611e8f611e8a84611e50565b61197b565b90508083825260208201905060208402830185811115611eb257611eb1611b89565b5b835b81811015611edb5780611ec78882611790565b845260208401935050602081019050611eb4565b5050509392505050565b600082601f830112611efa57611ef9611900565b5b8135611f0a848260208601611e7c565b91505092915050565b60008060408385031215611f2a57611f2961173d565b5b600083013567ffffffffffffffff811115611f4857611f47611742565b5b611f5485828601611ee5565b925050602083013567ffffffffffffffff811115611f7557611f74611742565b5b611f8185828601611bf7565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611fc0816117a5565b82525050565b6000611fd28383611fb7565b60208301905092915050565b6000602082019050919050565b6000611ff682611f8b565b6120008185611f96565b935061200b83611fa7565b8060005b8381101561203c5781516120238882611fc6565b975061202e83611fde565b92505060018101905061200f565b5085935050505092915050565b600060208201905081810360008301526120638184611feb565b905092915050565b600080600080608085870312156120855761208461173d565b5b600061209387828801611790565b94505060206120a4878288016117c6565b93505060406120b5878288016117c6565b925050606085013567ffffffffffffffff8111156120d6576120d5611742565b5b6120e287828801611c98565b91505092959194509250565b6120f781611767565b82525050565b600060208201905061211260008301846120ee565b92915050565b612121816118ca565b811461212c57600080fd5b50565b60008135905061213e81612118565b92915050565b6000806040838503121561215b5761215a61173d565b5b600061216985828601611790565b925050602061217a8582860161212f565b9150509250929050565b6000806040838503121561219b5761219a61173d565b5b60006121a985828601611790565b92505060206121ba85828601611790565b9150509250929050565b600080600080600060a086880312156121e0576121df61173d565b5b60006121ee88828901611790565b95505060206121ff88828901611790565b9450506040612210888289016117c6565b9350506060612221888289016117c6565b925050608086013567ffffffffffffffff81111561224257612241611742565b5b61224e88828901611c98565b9150509295509295909350565b6000602082840312156122715761227061173d565b5b600061227f84828501611790565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806122cf57607f821691505b6020821081036122e2576122e1612288565b5b50919050565b60006040820190506122fd60008301856120ee565b61230a60208301846120ee565b9392505050565b6000604082019050612326600083018561181b565b612333602083018461181b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123a3826117a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036123d5576123d4612369565b5b600182019050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026124427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612405565b61244c8683612405565b95508019841693508086168417925050509392505050565b6000819050919050565b600061248961248461247f846117a5565b612464565b6117a5565b9050919050565b6000819050919050565b6124a38361246e565b6124b76124af82612490565b848454612412565b825550505050565b600090565b6124cc6124bf565b6124d781848461249a565b505050565b5b818110156124fb576124f06000826124c4565b6001810190506124dd565b5050565b601f82111561254057612511816123e0565b61251a846123f5565b81016020851015612529578190505b61253d612535856123f5565b8301826124dc565b50505b505050565b600082821c905092915050565b600061256360001984600802612545565b1980831691505092915050565b600061257c8383612552565b9150826002028217905092915050565b61259582611abc565b67ffffffffffffffff8111156125ae576125ad61191b565b5b6125b882546122b7565b6125c38282856124ff565b600060209050601f8311600181146125f657600084156125e4578287015190505b6125ee8582612570565b865550612656565b601f198416612604866123e0565b60005b8281101561262c57848901518255600182019150602085019450602081019050612607565b868310156126495784890151612645601f891682612552565b8355505b6001600288020188555050505b505050505050565b600060808201905061267360008301876120ee565b612680602083018661181b565b61268d604083018561181b565b61269a606083018461181b565b95945050505050565b60006126ae826117a5565b91506126b9836117a5565b92508282019050808211156126d1576126d0612369565b5b92915050565b600060408201905081810360008301526126f18185611feb565b905081810360208301526127058184611feb565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006127358261270e565b61273f8185612719565b935061274f818560208601611ad8565b6127588161190a565b840191505092915050565b600060a08201905061277860008301886120ee565b61278560208301876120ee565b612792604083018661181b565b61279f606083018561181b565b81810360808301526127b1818461272a565b90509695505050505050565b6000815190506127cc81611871565b92915050565b6000602082840312156127e8576127e761173d565b5b60006127f6848285016127bd565b91505092915050565b600060a08201905061281460008301886120ee565b61282160208301876120ee565b81810360408301526128338186611feb565b905081810360608301526128478185611feb565b9050818103608083015261285b818461272a565b9050969550505050505056fea2646970667358221220af26ff71a8ef48f9837416b8208dc9a354ac1edb724da72ad53d3c040327e98364736f6c63430008140033",
574
+ "bytecode": "0x60806040523480156200001157600080fd5b5060405162002e9b38038062002e9b83398181016040528101906200003791906200022d565b80604051806020016040528060008152506200005981620000e860201b60201c565b50600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000cf5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000c6919062000270565b60405180910390fd5b620000e081620000fd60201b60201c565b5050620005ee565b8060029081620000f9919062000507565b5050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001f582620001c8565b9050919050565b6200020781620001e8565b81146200021357600080fd5b50565b6000815190506200022781620001fc565b92915050565b600060208284031215620002465762000245620001c3565b5b6000620002568482850162000216565b91505092915050565b6200026a81620001e8565b82525050565b60006020820190506200028760008301846200025f565b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200030f57607f821691505b602082108103620003255762000324620002c7565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200038f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000350565b6200039b868362000350565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003e8620003e2620003dc84620003b3565b620003bd565b620003b3565b9050919050565b6000819050919050565b6200040483620003c7565b6200041c6200041382620003ef565b8484546200035d565b825550505050565b600090565b6200043362000424565b62000440818484620003f9565b505050565b5b8181101562000468576200045c60008262000429565b60018101905062000446565b5050565b601f821115620004b75762000481816200032b565b6200048c8462000340565b810160208510156200049c578190505b620004b4620004ab8562000340565b83018262000445565b50505b505050565b600082821c905092915050565b6000620004dc60001984600802620004bc565b1980831691505092915050565b6000620004f78383620004c9565b9150826002028217905092915050565b62000512826200028d565b67ffffffffffffffff8111156200052e576200052d62000298565b5b6200053a8254620002f6565b620005478282856200046c565b600060209050601f8311600181146200057f57600084156200056a578287015190505b620005768582620004e9565b865550620005e6565b601f1984166200058f866200032b565b60005b82811015620005b95784890151825560018201915060208501945060208101905062000592565b86831015620005d95784890151620005d5601f891682620004c9565b8355505b6001600288020188555050505b505050505050565b61289d80620005fe6000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c8063715018a61161008c578063a22cb46511610066578063a22cb46514610246578063e985e9c514610262578063f242432a14610292578063f2fde38b146102ae576100e9565b8063715018a614610202578063731133e91461020c5780638da5cb5b14610228576100e9565b80630e89341c116100c85780630e89341c1461016a5780631f7fdffa1461019a5780632eb2c2d6146101b65780634e1273f4146101d2576100e9565b8062fdd58e146100ee57806301ffc9a71461011e57806302fe53051461014e575b600080fd5b610108600480360381019061010391906117db565b6102ca565b604051610115919061182a565b60405180910390f35b6101386004803603810190610133919061189d565b610324565b60405161014591906118e5565b60405180910390f35b61016860048036038101906101639190611a46565b610406565b005b610184600480360381019061017f9190611a8f565b61041a565b6040516101919190611b3b565b60405180910390f35b6101b460048036038101906101af9190611cc6565b6104ae565b005b6101d060048036038101906101cb9190611d81565b6104c8565b005b6101ec60048036038101906101e79190611f13565b610570565b6040516101f99190612049565b60405180910390f35b61020a61067f565b005b6102266004803603810190610221919061206b565b610693565b005b6102306106ad565b60405161023d91906120fd565b60405180910390f35b610260600480360381019061025b9190612144565b6106d7565b005b61027c60048036038101906102779190612184565b6106ed565b60405161028991906118e5565b60405180910390f35b6102ac60048036038101906102a791906121c4565b610781565b005b6102c860048036038101906102c3919061225b565b610829565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103ef57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103ff57506103fe826108af565b5b9050919050565b61040e610919565b610417816109a0565b50565b606060028054610429906122b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610455906122b7565b80156104a25780601f10610477576101008083540402835291602001916104a2565b820191906000526020600020905b81548152906001019060200180831161048557829003601f168201915b50505050509050919050565b6104b6610919565b6104c2848484846109b3565b50505050565b60006104d2610a39565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610517575061051586826106ed565b155b1561055b5780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105529291906122e8565b60405180910390fd5b6105688686868686610a41565b505050505050565b606081518351146105bc57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016105b3929190612311565b60405180910390fd5b6000835167ffffffffffffffff8111156105d9576105d861191b565b5b6040519080825280602002602001820160405280156106075781602001602082028036833780820191505090505b50905060005b84518110156106745761064461062c8287610b3990919063ffffffff16565b61063f8387610b4d90919063ffffffff16565b6102ca565b8282815181106106575761065661233a565b5b6020026020010181815250508061066d90612398565b905061060d565b508091505092915050565b610687610919565b6106916000610b61565b565b61069b610919565b6106a784848484610c27565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6106e96106e2610a39565b8383610cc0565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600061078b610a39565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156107d057506107ce86826106ed565b155b156108145780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161080b9291906122e8565b60405180910390fd5b6108218686868686610e30565b505050505050565b610831610919565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108a35760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161089a91906120fd565b60405180910390fd5b6108ac81610b61565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610921610a39565b73ffffffffffffffffffffffffffffffffffffffff1661093f6106ad565b73ffffffffffffffffffffffffffffffffffffffff161461099e57610962610a39565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161099591906120fd565b60405180910390fd5b565b80600290816109af919061258c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a255760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610a1c91906120fd565b60405180910390fd5b610a33600085858585610f3b565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ab35760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610aaa91906120fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b255760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610b1c91906120fd565b60405180910390fd5b610b328585858585610f3b565b5050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c995760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610c9091906120fd565b60405180910390fd5b600080610ca68585610fed565b91509150610cb8600087848487610f3b565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d325760006040517fced3e100000000000000000000000000000000000000000000000000000000008152600401610d2991906120fd565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e2391906118e5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ea25760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610e9991906120fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610f145760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610f0b91906120fd565b60405180910390fd5b600080610f218585610fed565b91509150610f328787848487610f3b565b50505050505050565b610f478585858561101d565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610fe6576000610f85610a39565b90506001845103610fd5576000610fa6600086610b4d90919063ffffffff16565b90506000610fbe600086610b4d90919063ffffffff16565b9050610fce8389898585896113cb565b5050610fe4565b610fe381878787878761157f565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b805182511461106757815181516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161105e929190612311565b60405180910390fd5b6000611071610a39565b905060005b83518110156112865760006110948286610b4d90919063ffffffff16565b905060006110ab8386610b4d90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146111d857600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561118057888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611177949392919061265e565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611273578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461126b91906126a3565b925050819055505b50508061127f90612398565b9050611076565b5060018351036113455760006112a6600085610b4d90919063ffffffff16565b905060006112be600085610b4d90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611336929190612311565b60405180910390a450506113c4565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516113bb9291906126d7565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611577578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161142c959493929190612763565b6020604051808303816000875af192505050801561146857506040513d601f19601f8201168201806040525081019061146591906127d2565b60015b6114ec573d8060008114611498576040519150601f19603f3d011682016040523d82523d6000602084013e61149d565b606091505b5060008151036114e457846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114db91906120fd565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461157557846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161156c91906120fd565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b111561172b578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016115e09594939291906127ff565b6020604051808303816000875af192505050801561161c57506040513d601f19601f8201168201806040525081019061161991906127d2565b60015b6116a0573d806000811461164c576040519150601f19603f3d011682016040523d82523d6000602084013e611651565b606091505b50600081510361169857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161168f91906120fd565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461172957846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161172091906120fd565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061177282611747565b9050919050565b61178281611767565b811461178d57600080fd5b50565b60008135905061179f81611779565b92915050565b6000819050919050565b6117b8816117a5565b81146117c357600080fd5b50565b6000813590506117d5816117af565b92915050565b600080604083850312156117f2576117f161173d565b5b600061180085828601611790565b9250506020611811858286016117c6565b9150509250929050565b611824816117a5565b82525050565b600060208201905061183f600083018461181b565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61187a81611845565b811461188557600080fd5b50565b60008135905061189781611871565b92915050565b6000602082840312156118b3576118b261173d565b5b60006118c184828501611888565b91505092915050565b60008115159050919050565b6118df816118ca565b82525050565b60006020820190506118fa60008301846118d6565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6119538261190a565b810181811067ffffffffffffffff821117156119725761197161191b565b5b80604052505050565b6000611985611733565b9050611991828261194a565b919050565b600067ffffffffffffffff8211156119b1576119b061191b565b5b6119ba8261190a565b9050602081019050919050565b82818337600083830152505050565b60006119e96119e484611996565b61197b565b905082815260208101848484011115611a0557611a04611905565b5b611a108482856119c7565b509392505050565b600082601f830112611a2d57611a2c611900565b5b8135611a3d8482602086016119d6565b91505092915050565b600060208284031215611a5c57611a5b61173d565b5b600082013567ffffffffffffffff811115611a7a57611a79611742565b5b611a8684828501611a18565b91505092915050565b600060208284031215611aa557611aa461173d565b5b6000611ab3848285016117c6565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611af6578082015181840152602081019050611adb565b60008484015250505050565b6000611b0d82611abc565b611b178185611ac7565b9350611b27818560208601611ad8565b611b308161190a565b840191505092915050565b60006020820190508181036000830152611b558184611b02565b905092915050565b600067ffffffffffffffff821115611b7857611b7761191b565b5b602082029050602081019050919050565b600080fd5b6000611ba1611b9c84611b5d565b61197b565b90508083825260208201905060208402830185811115611bc457611bc3611b89565b5b835b81811015611bed5780611bd988826117c6565b845260208401935050602081019050611bc6565b5050509392505050565b600082601f830112611c0c57611c0b611900565b5b8135611c1c848260208601611b8e565b91505092915050565b600067ffffffffffffffff821115611c4057611c3f61191b565b5b611c498261190a565b9050602081019050919050565b6000611c69611c6484611c25565b61197b565b905082815260208101848484011115611c8557611c84611905565b5b611c908482856119c7565b509392505050565b600082601f830112611cad57611cac611900565b5b8135611cbd848260208601611c56565b91505092915050565b60008060008060808587031215611ce057611cdf61173d565b5b6000611cee87828801611790565b945050602085013567ffffffffffffffff811115611d0f57611d0e611742565b5b611d1b87828801611bf7565b935050604085013567ffffffffffffffff811115611d3c57611d3b611742565b5b611d4887828801611bf7565b925050606085013567ffffffffffffffff811115611d6957611d68611742565b5b611d7587828801611c98565b91505092959194509250565b600080600080600060a08688031215611d9d57611d9c61173d565b5b6000611dab88828901611790565b9550506020611dbc88828901611790565b945050604086013567ffffffffffffffff811115611ddd57611ddc611742565b5b611de988828901611bf7565b935050606086013567ffffffffffffffff811115611e0a57611e09611742565b5b611e1688828901611bf7565b925050608086013567ffffffffffffffff811115611e3757611e36611742565b5b611e4388828901611c98565b9150509295509295909350565b600067ffffffffffffffff821115611e6b57611e6a61191b565b5b602082029050602081019050919050565b6000611e8f611e8a84611e50565b61197b565b90508083825260208201905060208402830185811115611eb257611eb1611b89565b5b835b81811015611edb5780611ec78882611790565b845260208401935050602081019050611eb4565b5050509392505050565b600082601f830112611efa57611ef9611900565b5b8135611f0a848260208601611e7c565b91505092915050565b60008060408385031215611f2a57611f2961173d565b5b600083013567ffffffffffffffff811115611f4857611f47611742565b5b611f5485828601611ee5565b925050602083013567ffffffffffffffff811115611f7557611f74611742565b5b611f8185828601611bf7565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611fc0816117a5565b82525050565b6000611fd28383611fb7565b60208301905092915050565b6000602082019050919050565b6000611ff682611f8b565b6120008185611f96565b935061200b83611fa7565b8060005b8381101561203c5781516120238882611fc6565b975061202e83611fde565b92505060018101905061200f565b5085935050505092915050565b600060208201905081810360008301526120638184611feb565b905092915050565b600080600080608085870312156120855761208461173d565b5b600061209387828801611790565b94505060206120a4878288016117c6565b93505060406120b5878288016117c6565b925050606085013567ffffffffffffffff8111156120d6576120d5611742565b5b6120e287828801611c98565b91505092959194509250565b6120f781611767565b82525050565b600060208201905061211260008301846120ee565b92915050565b612121816118ca565b811461212c57600080fd5b50565b60008135905061213e81612118565b92915050565b6000806040838503121561215b5761215a61173d565b5b600061216985828601611790565b925050602061217a8582860161212f565b9150509250929050565b6000806040838503121561219b5761219a61173d565b5b60006121a985828601611790565b92505060206121ba85828601611790565b9150509250929050565b600080600080600060a086880312156121e0576121df61173d565b5b60006121ee88828901611790565b95505060206121ff88828901611790565b9450506040612210888289016117c6565b9350506060612221888289016117c6565b925050608086013567ffffffffffffffff81111561224257612241611742565b5b61224e88828901611c98565b9150509295509295909350565b6000602082840312156122715761227061173d565b5b600061227f84828501611790565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806122cf57607f821691505b6020821081036122e2576122e1612288565b5b50919050565b60006040820190506122fd60008301856120ee565b61230a60208301846120ee565b9392505050565b6000604082019050612326600083018561181b565b612333602083018461181b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123a3826117a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036123d5576123d4612369565b5b600182019050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026124427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612405565b61244c8683612405565b95508019841693508086168417925050509392505050565b6000819050919050565b600061248961248461247f846117a5565b612464565b6117a5565b9050919050565b6000819050919050565b6124a38361246e565b6124b76124af82612490565b848454612412565b825550505050565b600090565b6124cc6124bf565b6124d781848461249a565b505050565b5b818110156124fb576124f06000826124c4565b6001810190506124dd565b5050565b601f82111561254057612511816123e0565b61251a846123f5565b81016020851015612529578190505b61253d612535856123f5565b8301826124dc565b50505b505050565b600082821c905092915050565b600061256360001984600802612545565b1980831691505092915050565b600061257c8383612552565b9150826002028217905092915050565b61259582611abc565b67ffffffffffffffff8111156125ae576125ad61191b565b5b6125b882546122b7565b6125c38282856124ff565b600060209050601f8311600181146125f657600084156125e4578287015190505b6125ee8582612570565b865550612656565b601f198416612604866123e0565b60005b8281101561262c57848901518255600182019150602085019450602081019050612607565b868310156126495784890151612645601f891682612552565b8355505b6001600288020188555050505b505050505050565b600060808201905061267360008301876120ee565b612680602083018661181b565b61268d604083018561181b565b61269a606083018461181b565b95945050505050565b60006126ae826117a5565b91506126b9836117a5565b92508282019050808211156126d1576126d0612369565b5b92915050565b600060408201905081810360008301526126f18185611feb565b905081810360208301526127058184611feb565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006127358261270e565b61273f8185612719565b935061274f818560208601611ad8565b6127588161190a565b840191505092915050565b600060a08201905061277860008301886120ee565b61278560208301876120ee565b612792604083018661181b565b61279f606083018561181b565b81810360808301526127b1818461272a565b90509695505050505050565b6000815190506127cc81611871565b92915050565b6000602082840312156127e8576127e761173d565b5b60006127f6848285016127bd565b91505092915050565b600060a08201905061281460008301886120ee565b61282160208301876120ee565b81810360408301526128338186611feb565b905081810360608301526128478185611feb565b9050818103608083015261285b818461272a565b9050969550505050505056fea26469706673582212209dd9d3880587148a804743a90aecbe4b4df008ec4dd6a5cd9009a2cb4810505064736f6c63430008140033",
575
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100e95760003560e01c8063715018a61161008c578063a22cb46511610066578063a22cb46514610246578063e985e9c514610262578063f242432a14610292578063f2fde38b146102ae576100e9565b8063715018a614610202578063731133e91461020c5780638da5cb5b14610228576100e9565b80630e89341c116100c85780630e89341c1461016a5780631f7fdffa1461019a5780632eb2c2d6146101b65780634e1273f4146101d2576100e9565b8062fdd58e146100ee57806301ffc9a71461011e57806302fe53051461014e575b600080fd5b610108600480360381019061010391906117db565b6102ca565b604051610115919061182a565b60405180910390f35b6101386004803603810190610133919061189d565b610324565b60405161014591906118e5565b60405180910390f35b61016860048036038101906101639190611a46565b610406565b005b610184600480360381019061017f9190611a8f565b61041a565b6040516101919190611b3b565b60405180910390f35b6101b460048036038101906101af9190611cc6565b6104ae565b005b6101d060048036038101906101cb9190611d81565b6104c8565b005b6101ec60048036038101906101e79190611f13565b610570565b6040516101f99190612049565b60405180910390f35b61020a61067f565b005b6102266004803603810190610221919061206b565b610693565b005b6102306106ad565b60405161023d91906120fd565b60405180910390f35b610260600480360381019061025b9190612144565b6106d7565b005b61027c60048036038101906102779190612184565b6106ed565b60405161028991906118e5565b60405180910390f35b6102ac60048036038101906102a791906121c4565b610781565b005b6102c860048036038101906102c3919061225b565b610829565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103ef57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103ff57506103fe826108af565b5b9050919050565b61040e610919565b610417816109a0565b50565b606060028054610429906122b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610455906122b7565b80156104a25780601f10610477576101008083540402835291602001916104a2565b820191906000526020600020905b81548152906001019060200180831161048557829003601f168201915b50505050509050919050565b6104b6610919565b6104c2848484846109b3565b50505050565b60006104d2610a39565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610517575061051586826106ed565b155b1561055b5780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105529291906122e8565b60405180910390fd5b6105688686868686610a41565b505050505050565b606081518351146105bc57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016105b3929190612311565b60405180910390fd5b6000835167ffffffffffffffff8111156105d9576105d861191b565b5b6040519080825280602002602001820160405280156106075781602001602082028036833780820191505090505b50905060005b84518110156106745761064461062c8287610b3990919063ffffffff16565b61063f8387610b4d90919063ffffffff16565b6102ca565b8282815181106106575761065661233a565b5b6020026020010181815250508061066d90612398565b905061060d565b508091505092915050565b610687610919565b6106916000610b61565b565b61069b610919565b6106a784848484610c27565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6106e96106e2610a39565b8383610cc0565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600061078b610a39565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156107d057506107ce86826106ed565b155b156108145780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161080b9291906122e8565b60405180910390fd5b6108218686868686610e30565b505050505050565b610831610919565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108a35760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161089a91906120fd565b60405180910390fd5b6108ac81610b61565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610921610a39565b73ffffffffffffffffffffffffffffffffffffffff1661093f6106ad565b73ffffffffffffffffffffffffffffffffffffffff161461099e57610962610a39565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161099591906120fd565b60405180910390fd5b565b80600290816109af919061258c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610a255760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610a1c91906120fd565b60405180910390fd5b610a33600085858585610f3b565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ab35760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610aaa91906120fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b255760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610b1c91906120fd565b60405180910390fd5b610b328585858585610f3b565b5050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c995760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610c9091906120fd565b60405180910390fd5b600080610ca68585610fed565b91509150610cb8600087848487610f3b565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d325760006040517fced3e100000000000000000000000000000000000000000000000000000000008152600401610d2991906120fd565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e2391906118e5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610ea25760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610e9991906120fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610f145760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610f0b91906120fd565b60405180910390fd5b600080610f218585610fed565b91509150610f328787848487610f3b565b50505050505050565b610f478585858561101d565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610fe6576000610f85610a39565b90506001845103610fd5576000610fa6600086610b4d90919063ffffffff16565b90506000610fbe600086610b4d90919063ffffffff16565b9050610fce8389898585896113cb565b5050610fe4565b610fe381878787878761157f565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b805182511461106757815181516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161105e929190612311565b60405180910390fd5b6000611071610a39565b905060005b83518110156112865760006110948286610b4d90919063ffffffff16565b905060006110ab8386610b4d90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146111d857600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561118057888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611177949392919061265e565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611273578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461126b91906126a3565b925050819055505b50508061127f90612398565b9050611076565b5060018351036113455760006112a6600085610b4d90919063ffffffff16565b905060006112be600085610b4d90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611336929190612311565b60405180910390a450506113c4565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516113bb9291906126d7565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611577578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161142c959493929190612763565b6020604051808303816000875af192505050801561146857506040513d601f19601f8201168201806040525081019061146591906127d2565b60015b6114ec573d8060008114611498576040519150601f19603f3d011682016040523d82523d6000602084013e61149d565b606091505b5060008151036114e457846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016114db91906120fd565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461157557846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161156c91906120fd565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b111561172b578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016115e09594939291906127ff565b6020604051808303816000875af192505050801561161c57506040513d601f19601f8201168201806040525081019061161991906127d2565b60015b6116a0573d806000811461164c576040519150601f19603f3d011682016040523d82523d6000602084013e611651565b606091505b50600081510361169857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161168f91906120fd565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461172957846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161172091906120fd565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061177282611747565b9050919050565b61178281611767565b811461178d57600080fd5b50565b60008135905061179f81611779565b92915050565b6000819050919050565b6117b8816117a5565b81146117c357600080fd5b50565b6000813590506117d5816117af565b92915050565b600080604083850312156117f2576117f161173d565b5b600061180085828601611790565b9250506020611811858286016117c6565b9150509250929050565b611824816117a5565b82525050565b600060208201905061183f600083018461181b565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61187a81611845565b811461188557600080fd5b50565b60008135905061189781611871565b92915050565b6000602082840312156118b3576118b261173d565b5b60006118c184828501611888565b91505092915050565b60008115159050919050565b6118df816118ca565b82525050565b60006020820190506118fa60008301846118d6565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6119538261190a565b810181811067ffffffffffffffff821117156119725761197161191b565b5b80604052505050565b6000611985611733565b9050611991828261194a565b919050565b600067ffffffffffffffff8211156119b1576119b061191b565b5b6119ba8261190a565b9050602081019050919050565b82818337600083830152505050565b60006119e96119e484611996565b61197b565b905082815260208101848484011115611a0557611a04611905565b5b611a108482856119c7565b509392505050565b600082601f830112611a2d57611a2c611900565b5b8135611a3d8482602086016119d6565b91505092915050565b600060208284031215611a5c57611a5b61173d565b5b600082013567ffffffffffffffff811115611a7a57611a79611742565b5b611a8684828501611a18565b91505092915050565b600060208284031215611aa557611aa461173d565b5b6000611ab3848285016117c6565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611af6578082015181840152602081019050611adb565b60008484015250505050565b6000611b0d82611abc565b611b178185611ac7565b9350611b27818560208601611ad8565b611b308161190a565b840191505092915050565b60006020820190508181036000830152611b558184611b02565b905092915050565b600067ffffffffffffffff821115611b7857611b7761191b565b5b602082029050602081019050919050565b600080fd5b6000611ba1611b9c84611b5d565b61197b565b90508083825260208201905060208402830185811115611bc457611bc3611b89565b5b835b81811015611bed5780611bd988826117c6565b845260208401935050602081019050611bc6565b5050509392505050565b600082601f830112611c0c57611c0b611900565b5b8135611c1c848260208601611b8e565b91505092915050565b600067ffffffffffffffff821115611c4057611c3f61191b565b5b611c498261190a565b9050602081019050919050565b6000611c69611c6484611c25565b61197b565b905082815260208101848484011115611c8557611c84611905565b5b611c908482856119c7565b509392505050565b600082601f830112611cad57611cac611900565b5b8135611cbd848260208601611c56565b91505092915050565b60008060008060808587031215611ce057611cdf61173d565b5b6000611cee87828801611790565b945050602085013567ffffffffffffffff811115611d0f57611d0e611742565b5b611d1b87828801611bf7565b935050604085013567ffffffffffffffff811115611d3c57611d3b611742565b5b611d4887828801611bf7565b925050606085013567ffffffffffffffff811115611d6957611d68611742565b5b611d7587828801611c98565b91505092959194509250565b600080600080600060a08688031215611d9d57611d9c61173d565b5b6000611dab88828901611790565b9550506020611dbc88828901611790565b945050604086013567ffffffffffffffff811115611ddd57611ddc611742565b5b611de988828901611bf7565b935050606086013567ffffffffffffffff811115611e0a57611e09611742565b5b611e1688828901611bf7565b925050608086013567ffffffffffffffff811115611e3757611e36611742565b5b611e4388828901611c98565b9150509295509295909350565b600067ffffffffffffffff821115611e6b57611e6a61191b565b5b602082029050602081019050919050565b6000611e8f611e8a84611e50565b61197b565b90508083825260208201905060208402830185811115611eb257611eb1611b89565b5b835b81811015611edb5780611ec78882611790565b845260208401935050602081019050611eb4565b5050509392505050565b600082601f830112611efa57611ef9611900565b5b8135611f0a848260208601611e7c565b91505092915050565b60008060408385031215611f2a57611f2961173d565b5b600083013567ffffffffffffffff811115611f4857611f47611742565b5b611f5485828601611ee5565b925050602083013567ffffffffffffffff811115611f7557611f74611742565b5b611f8185828601611bf7565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611fc0816117a5565b82525050565b6000611fd28383611fb7565b60208301905092915050565b6000602082019050919050565b6000611ff682611f8b565b6120008185611f96565b935061200b83611fa7565b8060005b8381101561203c5781516120238882611fc6565b975061202e83611fde565b92505060018101905061200f565b5085935050505092915050565b600060208201905081810360008301526120638184611feb565b905092915050565b600080600080608085870312156120855761208461173d565b5b600061209387828801611790565b94505060206120a4878288016117c6565b93505060406120b5878288016117c6565b925050606085013567ffffffffffffffff8111156120d6576120d5611742565b5b6120e287828801611c98565b91505092959194509250565b6120f781611767565b82525050565b600060208201905061211260008301846120ee565b92915050565b612121816118ca565b811461212c57600080fd5b50565b60008135905061213e81612118565b92915050565b6000806040838503121561215b5761215a61173d565b5b600061216985828601611790565b925050602061217a8582860161212f565b9150509250929050565b6000806040838503121561219b5761219a61173d565b5b60006121a985828601611790565b92505060206121ba85828601611790565b9150509250929050565b600080600080600060a086880312156121e0576121df61173d565b5b60006121ee88828901611790565b95505060206121ff88828901611790565b9450506040612210888289016117c6565b9350506060612221888289016117c6565b925050608086013567ffffffffffffffff81111561224257612241611742565b5b61224e88828901611c98565b9150509295509295909350565b6000602082840312156122715761227061173d565b5b600061227f84828501611790565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806122cf57607f821691505b6020821081036122e2576122e1612288565b5b50919050565b60006040820190506122fd60008301856120ee565b61230a60208301846120ee565b9392505050565b6000604082019050612326600083018561181b565b612333602083018461181b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123a3826117a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036123d5576123d4612369565b5b600182019050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026124427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612405565b61244c8683612405565b95508019841693508086168417925050509392505050565b6000819050919050565b600061248961248461247f846117a5565b612464565b6117a5565b9050919050565b6000819050919050565b6124a38361246e565b6124b76124af82612490565b848454612412565b825550505050565b600090565b6124cc6124bf565b6124d781848461249a565b505050565b5b818110156124fb576124f06000826124c4565b6001810190506124dd565b5050565b601f82111561254057612511816123e0565b61251a846123f5565b81016020851015612529578190505b61253d612535856123f5565b8301826124dc565b50505b505050565b600082821c905092915050565b600061256360001984600802612545565b1980831691505092915050565b600061257c8383612552565b9150826002028217905092915050565b61259582611abc565b67ffffffffffffffff8111156125ae576125ad61191b565b5b6125b882546122b7565b6125c38282856124ff565b600060209050601f8311600181146125f657600084156125e4578287015190505b6125ee8582612570565b865550612656565b601f198416612604866123e0565b60005b8281101561262c57848901518255600182019150602085019450602081019050612607565b868310156126495784890151612645601f891682612552565b8355505b6001600288020188555050505b505050505050565b600060808201905061267360008301876120ee565b612680602083018661181b565b61268d604083018561181b565b61269a606083018461181b565b95945050505050565b60006126ae826117a5565b91506126b9836117a5565b92508282019050808211156126d1576126d0612369565b5b92915050565b600060408201905081810360008301526126f18185611feb565b905081810360208301526127058184611feb565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006127358261270e565b61273f8185612719565b935061274f818560208601611ad8565b6127588161190a565b840191505092915050565b600060a08201905061277860008301886120ee565b61278560208301876120ee565b612792604083018661181b565b61279f606083018561181b565b81810360808301526127b1818461272a565b90509695505050505050565b6000815190506127cc81611871565b92915050565b6000602082840312156127e8576127e761173d565b5b60006127f6848285016127bd565b91505092915050565b600060a08201905061281460008301886120ee565b61282160208301876120ee565b81810360408301526128338186611feb565b905081810360608301526128478185611feb565b9050818103608083015261285b818461272a565b9050969550505050505056fea26469706673582212209dd9d3880587148a804743a90aecbe4b4df008ec4dd6a5cd9009a2cb4810505064736f6c63430008140033",
576
576
  "linkReferences": {},
577
577
  "deployedLinkReferences": {},
578
578
  "devdoc": {
@@ -696,7 +696,7 @@
696
696
  "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
697
697
  },
698
698
  "uri(uint256)": {
699
- "details": "See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\{id\\}` substring with the actual token type ID."
699
+ "details": "See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC]. Clients calling this function must replace the `\\{id\\}` substring with the actual token type ID."
700
700
  }
701
701
  },
702
702
  "version": 1
@@ -576,8 +576,8 @@
576
576
  "type": "function"
577
577
  }
578
578
  ],
579
- "bytecode": "0x60806040523480156200001157600080fd5b5060405162002c5838038062002c58833981810160405281019062000037919062000288565b806040518060400160405280600781526020017f546573744e4654000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f53554e4e000000000000000000000000000000000000000000000000000000008152508160009081620000b5919062000534565b508060019081620000c7919062000534565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200013f5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200013691906200062c565b60405180910390fd5b62000150816200015860201b60201c565b505062000649565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002508262000223565b9050919050565b620002628162000243565b81146200026e57600080fd5b50565b600081519050620002828162000257565b92915050565b600060208284031215620002a157620002a06200021e565b5b6000620002b18482850162000271565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200033c57607f821691505b602082108103620003525762000351620002f4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200037d565b620003c886836200037d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004156200040f6200040984620003e0565b620003ea565b620003e0565b9050919050565b6000819050919050565b6200043183620003f4565b6200044962000440826200041c565b8484546200038a565b825550505050565b600090565b6200046062000451565b6200046d81848462000426565b505050565b5b8181101562000495576200048960008262000456565b60018101905062000473565b5050565b601f821115620004e457620004ae8162000358565b620004b9846200036d565b81016020851015620004c9578190505b620004e1620004d8856200036d565b83018262000472565b50505b505050565b600082821c905092915050565b60006200050960001984600802620004e9565b1980831691505092915050565b6000620005248383620004f6565b9150826002028217905092915050565b6200053f82620002ba565b67ffffffffffffffff8111156200055b576200055a620002c5565b5b62000567825462000323565b6200057482828562000499565b600060209050601f831160018114620005ac576000841562000597578287015190505b620005a3858262000516565b86555062000613565b601f198416620005bc8662000358565b60005b82811015620005e657848901518255600182019150602085019450602081019050620005bf565b8683101562000606578489015162000602601f891682620004f6565b8355505b6001600288020188555050505b505050505050565b620006268162000243565b82525050565b60006020820190506200064360008301846200061b565b92915050565b6125ff80620006596000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063b88d4fde11610071578063b88d4fde146102a4578063c87b56dd146102c0578063cd279c7c146102f0578063e985e9c51461030c578063f2fde38b1461033c5761010b565b8063715018a6146102425780638da5cb5b1461024c57806395d89b411461026a578063a22cb465146102885761010b565b806323b872dd116100de57806323b872dd146101aa57806342842e0e146101c65780636352211e146101e257806370a08231146102125761010b565b806301ffc9a71461011057806306fdde0314610140578063081812fc1461015e578063095ea7b31461018e575b600080fd5b61012a60048036038101906101259190611abb565b610358565b6040516101379190611b03565b60405180910390f35b61014861036a565b6040516101559190611bae565b60405180910390f35b61017860048036038101906101739190611c06565b6103fc565b6040516101859190611c74565b60405180910390f35b6101a860048036038101906101a39190611cbb565b610418565b005b6101c460048036038101906101bf9190611cfb565b61042e565b005b6101e060048036038101906101db9190611cfb565b610530565b005b6101fc60048036038101906101f79190611c06565b610550565b6040516102099190611c74565b60405180910390f35b61022c60048036038101906102279190611d4e565b610562565b6040516102399190611d8a565b60405180910390f35b61024a61061c565b005b610254610630565b6040516102619190611c74565b60405180910390f35b61027261065a565b60405161027f9190611bae565b60405180910390f35b6102a2600480360381019061029d9190611dd1565b6106ec565b005b6102be60048036038101906102b99190611f46565b610702565b005b6102da60048036038101906102d59190611c06565b61071f565b6040516102e79190611bae565b60405180910390f35b61030a6004803603810190610305919061206a565b610731565b005b610326600480360381019061032191906120d9565b610752565b6040516103339190611b03565b60405180910390f35b61035660048036038101906103519190611d4e565b6107e6565b005b60006103638261086c565b9050919050565b60606000805461037990612148565b80601f01602080910402602001604051908101604052809291908181526020018280546103a590612148565b80156103f25780601f106103c7576101008083540402835291602001916103f2565b820191906000526020600020905b8154815290600101906020018083116103d557829003601f168201915b5050505050905090565b6000610407826108cd565b5061041182610955565b9050919050565b61042a8282610425610992565b61099a565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104a05760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104979190611c74565b60405180910390fd5b60006104b483836104af610992565b6109ac565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461052a578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161052193929190612179565b60405180910390fd5b50505050565b61054b83838360405180602001604052806000815250610702565b505050565b600061055b826108cd565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105d55760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016105cc9190611c74565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610624610bc6565b61062e6000610c4d565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461066990612148565b80601f016020809104026020016040519081016040528092919081815260200182805461069590612148565b80156106e25780601f106106b7576101008083540402835291602001916106e2565b820191906000526020600020905b8154815290600101906020018083116106c557829003601f168201915b5050505050905090565b6106fe6106f7610992565b8383610d13565b5050565b61070d84848461042e565b61071984848484610e82565b50505050565b606061072a82611039565b9050919050565b610739610bc6565b610743838361114c565b61074d828261116a565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6107ee610bc6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108605760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016108579190611c74565b60405180910390fd5b61086981610c4d565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108c657506108c5826111c6565b5b9050919050565b6000806108d9836112a8565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361094c57826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016109439190611d8a565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6109a783838360016112e5565b505050565b6000806109b8846112a8565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146109fa576109f98184866114aa565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a8b57610a3c6000856000806112e5565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b0e576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b610bce610992565b73ffffffffffffffffffffffffffffffffffffffff16610bec610630565b73ffffffffffffffffffffffffffffffffffffffff1614610c4b57610c0f610992565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610c429190611c74565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d8457816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610d7b9190611c74565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e759190611b03565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611033578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02610ec6610992565b8685856040518563ffffffff1660e01b8152600401610ee89493929190612205565b6020604051808303816000875af1925050508015610f2457506040513d601f19601f82011682018060405250810190610f219190612266565b60015b610fa8573d8060008114610f54576040519150601f19603f3d011682016040523d82523d6000602084013e610f59565b606091505b506000815103610fa057836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f979190611c74565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461103157836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016110289190611c74565b60405180910390fd5b505b50505050565b6060611044826108cd565b50600060066000848152602001908152602001600020805461106590612148565b80601f016020809104026020016040519081016040528092919081815260200182805461109190612148565b80156110de5780601f106110b3576101008083540402835291602001916110de565b820191906000526020600020905b8154815290600101906020018083116110c157829003601f168201915b5050505050905060006110ef61156e565b90506000815103611104578192505050611147565b6000825111156111395780826040516020016111219291906122cf565b60405160208183030381529060405292505050611147565b61114284611585565b925050505b919050565b6111668282604051806020016040528060008152506115ee565b5050565b8060066000848152602001908152602001600020908161118a919061249f565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516111ba9190611d8a565b60405180910390a15050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061129157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806112a157506112a08261160a565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061131e5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561145257600061132e846108cd565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561139957508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156113ac57506113aa8184610752565b155b156113ee57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016113e59190611c74565b60405180910390fd5b811561145057838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6114b5838383611674565b61156957600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361152a57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016115219190611d8a565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611560929190612571565b60405180910390fd5b505050565b606060405180602001604052806000815250905090565b6060611590826108cd565b50600061159b61156e565b905060008151116115bb57604051806020016040528060008152506115e6565b806115c584611735565b6040516020016115d69291906122cf565b6040516020818303038152906040525b915050919050565b6115f88383611803565b6116056000848484610e82565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172c57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806116ed57506116ec8484610752565b5b8061172b57508273ffffffffffffffffffffffffffffffffffffffff1661171383610955565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b606060006001611744846118fc565b01905060008167ffffffffffffffff81111561176357611762611e1b565b5b6040519080825280601f01601f1916602001820160405280156117955781602001600182028036833780820191505090505b509050600082602001820190505b6001156117f8578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816117ec576117eb61259a565b5b049450600085036117a3575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118755760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161186c9190611c74565b60405180910390fd5b6000611883838360006109ac565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146118f75760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016118ee9190611c74565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061195a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816119505761194f61259a565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611997576d04ee2d6d415b85acef8100000000838161198d5761198c61259a565b5b0492506020810190505b662386f26fc1000083106119c657662386f26fc1000083816119bc576119bb61259a565b5b0492506010810190505b6305f5e10083106119ef576305f5e10083816119e5576119e461259a565b5b0492506008810190505b6127108310611a14576127108381611a0a57611a0961259a565b5b0492506004810190505b60648310611a375760648381611a2d57611a2c61259a565b5b0492506002810190505b600a8310611a46576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611a9881611a63565b8114611aa357600080fd5b50565b600081359050611ab581611a8f565b92915050565b600060208284031215611ad157611ad0611a59565b5b6000611adf84828501611aa6565b91505092915050565b60008115159050919050565b611afd81611ae8565b82525050565b6000602082019050611b186000830184611af4565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b58578082015181840152602081019050611b3d565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b8082611b1e565b611b8a8185611b29565b9350611b9a818560208601611b3a565b611ba381611b64565b840191505092915050565b60006020820190508181036000830152611bc88184611b75565b905092915050565b6000819050919050565b611be381611bd0565b8114611bee57600080fd5b50565b600081359050611c0081611bda565b92915050565b600060208284031215611c1c57611c1b611a59565b5b6000611c2a84828501611bf1565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c5e82611c33565b9050919050565b611c6e81611c53565b82525050565b6000602082019050611c896000830184611c65565b92915050565b611c9881611c53565b8114611ca357600080fd5b50565b600081359050611cb581611c8f565b92915050565b60008060408385031215611cd257611cd1611a59565b5b6000611ce085828601611ca6565b9250506020611cf185828601611bf1565b9150509250929050565b600080600060608486031215611d1457611d13611a59565b5b6000611d2286828701611ca6565b9350506020611d3386828701611ca6565b9250506040611d4486828701611bf1565b9150509250925092565b600060208284031215611d6457611d63611a59565b5b6000611d7284828501611ca6565b91505092915050565b611d8481611bd0565b82525050565b6000602082019050611d9f6000830184611d7b565b92915050565b611dae81611ae8565b8114611db957600080fd5b50565b600081359050611dcb81611da5565b92915050565b60008060408385031215611de857611de7611a59565b5b6000611df685828601611ca6565b9250506020611e0785828601611dbc565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611e5382611b64565b810181811067ffffffffffffffff82111715611e7257611e71611e1b565b5b80604052505050565b6000611e85611a4f565b9050611e918282611e4a565b919050565b600067ffffffffffffffff821115611eb157611eb0611e1b565b5b611eba82611b64565b9050602081019050919050565b82818337600083830152505050565b6000611ee9611ee484611e96565b611e7b565b905082815260208101848484011115611f0557611f04611e16565b5b611f10848285611ec7565b509392505050565b600082601f830112611f2d57611f2c611e11565b5b8135611f3d848260208601611ed6565b91505092915050565b60008060008060808587031215611f6057611f5f611a59565b5b6000611f6e87828801611ca6565b9450506020611f7f87828801611ca6565b9350506040611f9087828801611bf1565b925050606085013567ffffffffffffffff811115611fb157611fb0611a5e565b5b611fbd87828801611f18565b91505092959194509250565b600067ffffffffffffffff821115611fe457611fe3611e1b565b5b611fed82611b64565b9050602081019050919050565b600061200d61200884611fc9565b611e7b565b90508281526020810184848401111561202957612028611e16565b5b612034848285611ec7565b509392505050565b600082601f83011261205157612050611e11565b5b8135612061848260208601611ffa565b91505092915050565b60008060006060848603121561208357612082611a59565b5b600061209186828701611ca6565b93505060206120a286828701611bf1565b925050604084013567ffffffffffffffff8111156120c3576120c2611a5e565b5b6120cf8682870161203c565b9150509250925092565b600080604083850312156120f0576120ef611a59565b5b60006120fe85828601611ca6565b925050602061210f85828601611ca6565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061216057607f821691505b60208210810361217357612172612119565b5b50919050565b600060608201905061218e6000830186611c65565b61219b6020830185611d7b565b6121a86040830184611c65565b949350505050565b600081519050919050565b600082825260208201905092915050565b60006121d7826121b0565b6121e181856121bb565b93506121f1818560208601611b3a565b6121fa81611b64565b840191505092915050565b600060808201905061221a6000830187611c65565b6122276020830186611c65565b6122346040830185611d7b565b818103606083015261224681846121cc565b905095945050505050565b60008151905061226081611a8f565b92915050565b60006020828403121561227c5761227b611a59565b5b600061228a84828501612251565b91505092915050565b600081905092915050565b60006122a982611b1e565b6122b38185612293565b93506122c3818560208601611b3a565b80840191505092915050565b60006122db828561229e565b91506122e7828461229e565b91508190509392505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026123557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612318565b61235f8683612318565b95508019841693508086168417925050509392505050565b6000819050919050565b600061239c61239761239284611bd0565b612377565b611bd0565b9050919050565b6000819050919050565b6123b683612381565b6123ca6123c2826123a3565b848454612325565b825550505050565b600090565b6123df6123d2565b6123ea8184846123ad565b505050565b5b8181101561240e576124036000826123d7565b6001810190506123f0565b5050565b601f82111561245357612424816122f3565b61242d84612308565b8101602085101561243c578190505b61245061244885612308565b8301826123ef565b50505b505050565b600082821c905092915050565b600061247660001984600802612458565b1980831691505092915050565b600061248f8383612465565b9150826002028217905092915050565b6124a882611b1e565b67ffffffffffffffff8111156124c1576124c0611e1b565b5b6124cb8254612148565b6124d6828285612412565b600060209050601f83116001811461250957600084156124f7578287015190505b6125018582612483565b865550612569565b601f198416612517866122f3565b60005b8281101561253f5784890151825560018201915060208501945060208101905061251a565b8683101561255c5784890151612558601f891682612465565b8355505b6001600288020188555050505b505050505050565b60006040820190506125866000830185611c65565b6125936020830184611d7b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220431a442985cc5ddc149bdc0e4b6946e8aeafcb66d2a3e5f292a0bbc8b940a50164736f6c63430008140033",
580
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063b88d4fde11610071578063b88d4fde146102a4578063c87b56dd146102c0578063cd279c7c146102f0578063e985e9c51461030c578063f2fde38b1461033c5761010b565b8063715018a6146102425780638da5cb5b1461024c57806395d89b411461026a578063a22cb465146102885761010b565b806323b872dd116100de57806323b872dd146101aa57806342842e0e146101c65780636352211e146101e257806370a08231146102125761010b565b806301ffc9a71461011057806306fdde0314610140578063081812fc1461015e578063095ea7b31461018e575b600080fd5b61012a60048036038101906101259190611abb565b610358565b6040516101379190611b03565b60405180910390f35b61014861036a565b6040516101559190611bae565b60405180910390f35b61017860048036038101906101739190611c06565b6103fc565b6040516101859190611c74565b60405180910390f35b6101a860048036038101906101a39190611cbb565b610418565b005b6101c460048036038101906101bf9190611cfb565b61042e565b005b6101e060048036038101906101db9190611cfb565b610530565b005b6101fc60048036038101906101f79190611c06565b610550565b6040516102099190611c74565b60405180910390f35b61022c60048036038101906102279190611d4e565b610562565b6040516102399190611d8a565b60405180910390f35b61024a61061c565b005b610254610630565b6040516102619190611c74565b60405180910390f35b61027261065a565b60405161027f9190611bae565b60405180910390f35b6102a2600480360381019061029d9190611dd1565b6106ec565b005b6102be60048036038101906102b99190611f46565b610702565b005b6102da60048036038101906102d59190611c06565b61071f565b6040516102e79190611bae565b60405180910390f35b61030a6004803603810190610305919061206a565b610731565b005b610326600480360381019061032191906120d9565b610752565b6040516103339190611b03565b60405180910390f35b61035660048036038101906103519190611d4e565b6107e6565b005b60006103638261086c565b9050919050565b60606000805461037990612148565b80601f01602080910402602001604051908101604052809291908181526020018280546103a590612148565b80156103f25780601f106103c7576101008083540402835291602001916103f2565b820191906000526020600020905b8154815290600101906020018083116103d557829003601f168201915b5050505050905090565b6000610407826108cd565b5061041182610955565b9050919050565b61042a8282610425610992565b61099a565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104a05760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104979190611c74565b60405180910390fd5b60006104b483836104af610992565b6109ac565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461052a578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161052193929190612179565b60405180910390fd5b50505050565b61054b83838360405180602001604052806000815250610702565b505050565b600061055b826108cd565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105d55760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016105cc9190611c74565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610624610bc6565b61062e6000610c4d565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461066990612148565b80601f016020809104026020016040519081016040528092919081815260200182805461069590612148565b80156106e25780601f106106b7576101008083540402835291602001916106e2565b820191906000526020600020905b8154815290600101906020018083116106c557829003601f168201915b5050505050905090565b6106fe6106f7610992565b8383610d13565b5050565b61070d84848461042e565b61071984848484610e82565b50505050565b606061072a82611039565b9050919050565b610739610bc6565b610743838361114c565b61074d828261116a565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6107ee610bc6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108605760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016108579190611c74565b60405180910390fd5b61086981610c4d565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108c657506108c5826111c6565b5b9050919050565b6000806108d9836112a8565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361094c57826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016109439190611d8a565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6109a783838360016112e5565b505050565b6000806109b8846112a8565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146109fa576109f98184866114aa565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a8b57610a3c6000856000806112e5565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b0e576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b610bce610992565b73ffffffffffffffffffffffffffffffffffffffff16610bec610630565b73ffffffffffffffffffffffffffffffffffffffff1614610c4b57610c0f610992565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610c429190611c74565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d8457816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610d7b9190611c74565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e759190611b03565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611033578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02610ec6610992565b8685856040518563ffffffff1660e01b8152600401610ee89493929190612205565b6020604051808303816000875af1925050508015610f2457506040513d601f19601f82011682018060405250810190610f219190612266565b60015b610fa8573d8060008114610f54576040519150601f19603f3d011682016040523d82523d6000602084013e610f59565b606091505b506000815103610fa057836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f979190611c74565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461103157836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016110289190611c74565b60405180910390fd5b505b50505050565b6060611044826108cd565b50600060066000848152602001908152602001600020805461106590612148565b80601f016020809104026020016040519081016040528092919081815260200182805461109190612148565b80156110de5780601f106110b3576101008083540402835291602001916110de565b820191906000526020600020905b8154815290600101906020018083116110c157829003601f168201915b5050505050905060006110ef61156e565b90506000815103611104578192505050611147565b6000825111156111395780826040516020016111219291906122cf565b60405160208183030381529060405292505050611147565b61114284611585565b925050505b919050565b6111668282604051806020016040528060008152506115ee565b5050565b8060066000848152602001908152602001600020908161118a919061249f565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516111ba9190611d8a565b60405180910390a15050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061129157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806112a157506112a08261160a565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061131e5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561145257600061132e846108cd565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561139957508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156113ac57506113aa8184610752565b155b156113ee57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016113e59190611c74565b60405180910390fd5b811561145057838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6114b5838383611674565b61156957600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361152a57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016115219190611d8a565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611560929190612571565b60405180910390fd5b505050565b606060405180602001604052806000815250905090565b6060611590826108cd565b50600061159b61156e565b905060008151116115bb57604051806020016040528060008152506115e6565b806115c584611735565b6040516020016115d69291906122cf565b6040516020818303038152906040525b915050919050565b6115f88383611803565b6116056000848484610e82565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172c57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806116ed57506116ec8484610752565b5b8061172b57508273ffffffffffffffffffffffffffffffffffffffff1661171383610955565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b606060006001611744846118fc565b01905060008167ffffffffffffffff81111561176357611762611e1b565b5b6040519080825280601f01601f1916602001820160405280156117955781602001600182028036833780820191505090505b509050600082602001820190505b6001156117f8578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816117ec576117eb61259a565b5b049450600085036117a3575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118755760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161186c9190611c74565b60405180910390fd5b6000611883838360006109ac565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146118f75760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016118ee9190611c74565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061195a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816119505761194f61259a565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611997576d04ee2d6d415b85acef8100000000838161198d5761198c61259a565b5b0492506020810190505b662386f26fc1000083106119c657662386f26fc1000083816119bc576119bb61259a565b5b0492506010810190505b6305f5e10083106119ef576305f5e10083816119e5576119e461259a565b5b0492506008810190505b6127108310611a14576127108381611a0a57611a0961259a565b5b0492506004810190505b60648310611a375760648381611a2d57611a2c61259a565b5b0492506002810190505b600a8310611a46576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611a9881611a63565b8114611aa357600080fd5b50565b600081359050611ab581611a8f565b92915050565b600060208284031215611ad157611ad0611a59565b5b6000611adf84828501611aa6565b91505092915050565b60008115159050919050565b611afd81611ae8565b82525050565b6000602082019050611b186000830184611af4565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b58578082015181840152602081019050611b3d565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b8082611b1e565b611b8a8185611b29565b9350611b9a818560208601611b3a565b611ba381611b64565b840191505092915050565b60006020820190508181036000830152611bc88184611b75565b905092915050565b6000819050919050565b611be381611bd0565b8114611bee57600080fd5b50565b600081359050611c0081611bda565b92915050565b600060208284031215611c1c57611c1b611a59565b5b6000611c2a84828501611bf1565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c5e82611c33565b9050919050565b611c6e81611c53565b82525050565b6000602082019050611c896000830184611c65565b92915050565b611c9881611c53565b8114611ca357600080fd5b50565b600081359050611cb581611c8f565b92915050565b60008060408385031215611cd257611cd1611a59565b5b6000611ce085828601611ca6565b9250506020611cf185828601611bf1565b9150509250929050565b600080600060608486031215611d1457611d13611a59565b5b6000611d2286828701611ca6565b9350506020611d3386828701611ca6565b9250506040611d4486828701611bf1565b9150509250925092565b600060208284031215611d6457611d63611a59565b5b6000611d7284828501611ca6565b91505092915050565b611d8481611bd0565b82525050565b6000602082019050611d9f6000830184611d7b565b92915050565b611dae81611ae8565b8114611db957600080fd5b50565b600081359050611dcb81611da5565b92915050565b60008060408385031215611de857611de7611a59565b5b6000611df685828601611ca6565b9250506020611e0785828601611dbc565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611e5382611b64565b810181811067ffffffffffffffff82111715611e7257611e71611e1b565b5b80604052505050565b6000611e85611a4f565b9050611e918282611e4a565b919050565b600067ffffffffffffffff821115611eb157611eb0611e1b565b5b611eba82611b64565b9050602081019050919050565b82818337600083830152505050565b6000611ee9611ee484611e96565b611e7b565b905082815260208101848484011115611f0557611f04611e16565b5b611f10848285611ec7565b509392505050565b600082601f830112611f2d57611f2c611e11565b5b8135611f3d848260208601611ed6565b91505092915050565b60008060008060808587031215611f6057611f5f611a59565b5b6000611f6e87828801611ca6565b9450506020611f7f87828801611ca6565b9350506040611f9087828801611bf1565b925050606085013567ffffffffffffffff811115611fb157611fb0611a5e565b5b611fbd87828801611f18565b91505092959194509250565b600067ffffffffffffffff821115611fe457611fe3611e1b565b5b611fed82611b64565b9050602081019050919050565b600061200d61200884611fc9565b611e7b565b90508281526020810184848401111561202957612028611e16565b5b612034848285611ec7565b509392505050565b600082601f83011261205157612050611e11565b5b8135612061848260208601611ffa565b91505092915050565b60008060006060848603121561208357612082611a59565b5b600061209186828701611ca6565b93505060206120a286828701611bf1565b925050604084013567ffffffffffffffff8111156120c3576120c2611a5e565b5b6120cf8682870161203c565b9150509250925092565b600080604083850312156120f0576120ef611a59565b5b60006120fe85828601611ca6565b925050602061210f85828601611ca6565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061216057607f821691505b60208210810361217357612172612119565b5b50919050565b600060608201905061218e6000830186611c65565b61219b6020830185611d7b565b6121a86040830184611c65565b949350505050565b600081519050919050565b600082825260208201905092915050565b60006121d7826121b0565b6121e181856121bb565b93506121f1818560208601611b3a565b6121fa81611b64565b840191505092915050565b600060808201905061221a6000830187611c65565b6122276020830186611c65565b6122346040830185611d7b565b818103606083015261224681846121cc565b905095945050505050565b60008151905061226081611a8f565b92915050565b60006020828403121561227c5761227b611a59565b5b600061228a84828501612251565b91505092915050565b600081905092915050565b60006122a982611b1e565b6122b38185612293565b93506122c3818560208601611b3a565b80840191505092915050565b60006122db828561229e565b91506122e7828461229e565b91508190509392505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026123557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612318565b61235f8683612318565b95508019841693508086168417925050509392505050565b6000819050919050565b600061239c61239761239284611bd0565b612377565b611bd0565b9050919050565b6000819050919050565b6123b683612381565b6123ca6123c2826123a3565b848454612325565b825550505050565b600090565b6123df6123d2565b6123ea8184846123ad565b505050565b5b8181101561240e576124036000826123d7565b6001810190506123f0565b5050565b601f82111561245357612424816122f3565b61242d84612308565b8101602085101561243c578190505b61245061244885612308565b8301826123ef565b50505b505050565b600082821c905092915050565b600061247660001984600802612458565b1980831691505092915050565b600061248f8383612465565b9150826002028217905092915050565b6124a882611b1e565b67ffffffffffffffff8111156124c1576124c0611e1b565b5b6124cb8254612148565b6124d6828285612412565b600060209050601f83116001811461250957600084156124f7578287015190505b6125018582612483565b865550612569565b601f198416612517866122f3565b60005b8281101561253f5784890151825560018201915060208501945060208101905061251a565b8683101561255c5784890151612558601f891682612465565b8355505b6001600288020188555050505b505050505050565b60006040820190506125866000830185611c65565b6125936020830184611d7b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220431a442985cc5ddc149bdc0e4b6946e8aeafcb66d2a3e5f292a0bbc8b940a50164736f6c63430008140033",
579
+ "bytecode": "0x60806040523480156200001157600080fd5b5060405162002c6238038062002c62833981810160405281019062000037919062000288565b806040518060400160405280600781526020017f546573744e4654000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f53554e4e000000000000000000000000000000000000000000000000000000008152508160009081620000b5919062000534565b508060019081620000c7919062000534565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200013f5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200013691906200062c565b60405180910390fd5b62000150816200015860201b60201c565b505062000649565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002508262000223565b9050919050565b620002628162000243565b81146200026e57600080fd5b50565b600081519050620002828162000257565b92915050565b600060208284031215620002a157620002a06200021e565b5b6000620002b18482850162000271565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200033c57607f821691505b602082108103620003525762000351620002f4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200037d565b620003c886836200037d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004156200040f6200040984620003e0565b620003ea565b620003e0565b9050919050565b6000819050919050565b6200043183620003f4565b6200044962000440826200041c565b8484546200038a565b825550505050565b600090565b6200046062000451565b6200046d81848462000426565b505050565b5b8181101562000495576200048960008262000456565b60018101905062000473565b5050565b601f821115620004e457620004ae8162000358565b620004b9846200036d565b81016020851015620004c9578190505b620004e1620004d8856200036d565b83018262000472565b50505b505050565b600082821c905092915050565b60006200050960001984600802620004e9565b1980831691505092915050565b6000620005248383620004f6565b9150826002028217905092915050565b6200053f82620002ba565b67ffffffffffffffff8111156200055b576200055a620002c5565b5b62000567825462000323565b6200057482828562000499565b600060209050601f831160018114620005ac576000841562000597578287015190505b620005a3858262000516565b86555062000613565b601f198416620005bc8662000358565b60005b82811015620005e657848901518255600182019150602085019450602081019050620005bf565b8683101562000606578489015162000602601f891682620004f6565b8355505b6001600288020188555050505b505050505050565b620006268162000243565b82525050565b60006020820190506200064360008301846200061b565b92915050565b61260980620006596000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063b88d4fde11610071578063b88d4fde146102a4578063c87b56dd146102c0578063cd279c7c146102f0578063e985e9c51461030c578063f2fde38b1461033c5761010b565b8063715018a6146102425780638da5cb5b1461024c57806395d89b411461026a578063a22cb465146102885761010b565b806323b872dd116100de57806323b872dd146101aa57806342842e0e146101c65780636352211e146101e257806370a08231146102125761010b565b806301ffc9a71461011057806306fdde0314610140578063081812fc1461015e578063095ea7b31461018e575b600080fd5b61012a60048036038101906101259190611ac5565b610358565b6040516101379190611b0d565b60405180910390f35b61014861036a565b6040516101559190611bb8565b60405180910390f35b61017860048036038101906101739190611c10565b6103fc565b6040516101859190611c7e565b60405180910390f35b6101a860048036038101906101a39190611cc5565b610418565b005b6101c460048036038101906101bf9190611d05565b61042e565b005b6101e060048036038101906101db9190611d05565b610530565b005b6101fc60048036038101906101f79190611c10565b610550565b6040516102099190611c7e565b60405180910390f35b61022c60048036038101906102279190611d58565b610562565b6040516102399190611d94565b60405180910390f35b61024a61061c565b005b610254610630565b6040516102619190611c7e565b60405180910390f35b61027261065a565b60405161027f9190611bb8565b60405180910390f35b6102a2600480360381019061029d9190611ddb565b6106ec565b005b6102be60048036038101906102b99190611f50565b610702565b005b6102da60048036038101906102d59190611c10565b610727565b6040516102e79190611bb8565b60405180910390f35b61030a60048036038101906103059190612074565b610739565b005b610326600480360381019061032191906120e3565b61075a565b6040516103339190611b0d565b60405180910390f35b61035660048036038101906103519190611d58565b6107ee565b005b600061036382610874565b9050919050565b60606000805461037990612152565b80601f01602080910402602001604051908101604052809291908181526020018280546103a590612152565b80156103f25780601f106103c7576101008083540402835291602001916103f2565b820191906000526020600020905b8154815290600101906020018083116103d557829003601f168201915b5050505050905090565b6000610407826108d5565b506104118261095d565b9050919050565b61042a828261042561099a565b6109a2565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104a05760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104979190611c7e565b60405180910390fd5b60006104b483836104af61099a565b6109b4565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461052a578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161052193929190612183565b60405180910390fd5b50505050565b61054b83838360405180602001604052806000815250610702565b505050565b600061055b826108d5565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105d55760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016105cc9190611c7e565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610624610bce565b61062e6000610c55565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461066990612152565b80601f016020809104026020016040519081016040528092919081815260200182805461069590612152565b80156106e25780601f106106b7576101008083540402835291602001916106e2565b820191906000526020600020905b8154815290600101906020018083116106c557829003601f168201915b5050505050905090565b6106fe6106f761099a565b8383610d1b565b5050565b61070d84848461042e565b61072161071861099a565b85858585610e8a565b50505050565b60606107328261103b565b9050919050565b610741610bce565b61074b838361114e565b610755828261116c565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6107f6610bce565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108685760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161085f9190611c7e565b60405180910390fd5b61087181610c55565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108ce57506108cd826111c8565b5b9050919050565b6000806108e1836112aa565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361095457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161094b9190611d94565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6109af83838360016112e7565b505050565b6000806109c0846112aa565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a0257610a018184866114ac565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a9357610a446000856000806112e7565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b16576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b610bd661099a565b73ffffffffffffffffffffffffffffffffffffffff16610bf4610630565b73ffffffffffffffffffffffffffffffffffffffff1614610c5357610c1761099a565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610c4a9190611c7e565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d8c57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610d839190611c7e565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e7d9190611b0d565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611034578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610ee9949392919061220f565b6020604051808303816000875af1925050508015610f2557506040513d601f19601f82011682018060405250810190610f229190612270565b60015b610fa9573d8060008114610f55576040519150601f19603f3d011682016040523d82523d6000602084013e610f5a565b606091505b506000815103610fa157836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f989190611c7e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461103257836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016110299190611c7e565b60405180910390fd5b505b5050505050565b6060611046826108d5565b50600060066000848152602001908152602001600020805461106790612152565b80601f016020809104026020016040519081016040528092919081815260200182805461109390612152565b80156110e05780601f106110b5576101008083540402835291602001916110e0565b820191906000526020600020905b8154815290600101906020018083116110c357829003601f168201915b5050505050905060006110f1611570565b90506000815103611106578192505050611149565b60008251111561113b5780826040516020016111239291906122d9565b60405160208183030381529060405292505050611149565b61114484611587565b925050505b919050565b6111688282604051806020016040528060008152506115f0565b5050565b8060066000848152602001908152602001600020908161118c91906124a9565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516111bc9190611d94565b60405180910390a15050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061129357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806112a357506112a282611614565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806113205750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611454576000611330846108d5565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561139b57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156113ae57506113ac818461075a565b155b156113f057826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016113e79190611c7e565b60405180910390fd5b811561145257838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6114b783838361167e565b61156b57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361152c57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016115239190611d94565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161156292919061257b565b60405180910390fd5b505050565b606060405180602001604052806000815250905090565b6060611592826108d5565b50600061159d611570565b905060008151116115bd57604051806020016040528060008152506115e8565b806115c78461173f565b6040516020016115d89291906122d9565b6040516020818303038152906040525b915050919050565b6115fa838361180d565b61160f61160561099a565b6000858585610e8a565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561173657508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806116f757506116f6848461075a565b5b8061173557508273ffffffffffffffffffffffffffffffffffffffff1661171d8361095d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b60606000600161174e84611906565b01905060008167ffffffffffffffff81111561176d5761176c611e25565b5b6040519080825280601f01601f19166020018201604052801561179f5781602001600182028036833780820191505090505b509050600082602001820190505b600115611802578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816117f6576117f56125a4565b5b049450600085036117ad575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187f5760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118769190611c7e565b60405180910390fd5b600061188d838360006109b4565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146119015760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016118f89190611c7e565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611964577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161195a576119596125a4565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106119a1576d04ee2d6d415b85acef81000000008381611997576119966125a4565b5b0492506020810190505b662386f26fc1000083106119d057662386f26fc1000083816119c6576119c56125a4565b5b0492506010810190505b6305f5e10083106119f9576305f5e10083816119ef576119ee6125a4565b5b0492506008810190505b6127108310611a1e576127108381611a1457611a136125a4565b5b0492506004810190505b60648310611a415760648381611a3757611a366125a4565b5b0492506002810190505b600a8310611a50576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611aa281611a6d565b8114611aad57600080fd5b50565b600081359050611abf81611a99565b92915050565b600060208284031215611adb57611ada611a63565b5b6000611ae984828501611ab0565b91505092915050565b60008115159050919050565b611b0781611af2565b82525050565b6000602082019050611b226000830184611afe565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b62578082015181840152602081019050611b47565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b8a82611b28565b611b948185611b33565b9350611ba4818560208601611b44565b611bad81611b6e565b840191505092915050565b60006020820190508181036000830152611bd28184611b7f565b905092915050565b6000819050919050565b611bed81611bda565b8114611bf857600080fd5b50565b600081359050611c0a81611be4565b92915050565b600060208284031215611c2657611c25611a63565b5b6000611c3484828501611bfb565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c6882611c3d565b9050919050565b611c7881611c5d565b82525050565b6000602082019050611c936000830184611c6f565b92915050565b611ca281611c5d565b8114611cad57600080fd5b50565b600081359050611cbf81611c99565b92915050565b60008060408385031215611cdc57611cdb611a63565b5b6000611cea85828601611cb0565b9250506020611cfb85828601611bfb565b9150509250929050565b600080600060608486031215611d1e57611d1d611a63565b5b6000611d2c86828701611cb0565b9350506020611d3d86828701611cb0565b9250506040611d4e86828701611bfb565b9150509250925092565b600060208284031215611d6e57611d6d611a63565b5b6000611d7c84828501611cb0565b91505092915050565b611d8e81611bda565b82525050565b6000602082019050611da96000830184611d85565b92915050565b611db881611af2565b8114611dc357600080fd5b50565b600081359050611dd581611daf565b92915050565b60008060408385031215611df257611df1611a63565b5b6000611e0085828601611cb0565b9250506020611e1185828601611dc6565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611e5d82611b6e565b810181811067ffffffffffffffff82111715611e7c57611e7b611e25565b5b80604052505050565b6000611e8f611a59565b9050611e9b8282611e54565b919050565b600067ffffffffffffffff821115611ebb57611eba611e25565b5b611ec482611b6e565b9050602081019050919050565b82818337600083830152505050565b6000611ef3611eee84611ea0565b611e85565b905082815260208101848484011115611f0f57611f0e611e20565b5b611f1a848285611ed1565b509392505050565b600082601f830112611f3757611f36611e1b565b5b8135611f47848260208601611ee0565b91505092915050565b60008060008060808587031215611f6a57611f69611a63565b5b6000611f7887828801611cb0565b9450506020611f8987828801611cb0565b9350506040611f9a87828801611bfb565b925050606085013567ffffffffffffffff811115611fbb57611fba611a68565b5b611fc787828801611f22565b91505092959194509250565b600067ffffffffffffffff821115611fee57611fed611e25565b5b611ff782611b6e565b9050602081019050919050565b600061201761201284611fd3565b611e85565b90508281526020810184848401111561203357612032611e20565b5b61203e848285611ed1565b509392505050565b600082601f83011261205b5761205a611e1b565b5b813561206b848260208601612004565b91505092915050565b60008060006060848603121561208d5761208c611a63565b5b600061209b86828701611cb0565b93505060206120ac86828701611bfb565b925050604084013567ffffffffffffffff8111156120cd576120cc611a68565b5b6120d986828701612046565b9150509250925092565b600080604083850312156120fa576120f9611a63565b5b600061210885828601611cb0565b925050602061211985828601611cb0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061216a57607f821691505b60208210810361217d5761217c612123565b5b50919050565b60006060820190506121986000830186611c6f565b6121a56020830185611d85565b6121b26040830184611c6f565b949350505050565b600081519050919050565b600082825260208201905092915050565b60006121e1826121ba565b6121eb81856121c5565b93506121fb818560208601611b44565b61220481611b6e565b840191505092915050565b60006080820190506122246000830187611c6f565b6122316020830186611c6f565b61223e6040830185611d85565b818103606083015261225081846121d6565b905095945050505050565b60008151905061226a81611a99565b92915050565b60006020828403121561228657612285611a63565b5b60006122948482850161225b565b91505092915050565b600081905092915050565b60006122b382611b28565b6122bd818561229d565b93506122cd818560208601611b44565b80840191505092915050565b60006122e582856122a8565b91506122f182846122a8565b91508190509392505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261235f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612322565b6123698683612322565b95508019841693508086168417925050509392505050565b6000819050919050565b60006123a66123a161239c84611bda565b612381565b611bda565b9050919050565b6000819050919050565b6123c08361238b565b6123d46123cc826123ad565b84845461232f565b825550505050565b600090565b6123e96123dc565b6123f48184846123b7565b505050565b5b818110156124185761240d6000826123e1565b6001810190506123fa565b5050565b601f82111561245d5761242e816122fd565b61243784612312565b81016020851015612446578190505b61245a61245285612312565b8301826123f9565b50505b505050565b600082821c905092915050565b600061248060001984600802612462565b1980831691505092915050565b6000612499838361246f565b9150826002028217905092915050565b6124b282611b28565b67ffffffffffffffff8111156124cb576124ca611e25565b5b6124d58254612152565b6124e082828561241c565b600060209050601f8311600181146125135760008415612501578287015190505b61250b858261248d565b865550612573565b601f198416612521866122fd565b60005b8281101561254957848901518255600182019150602085019450602081019050612524565b868310156125665784890151612562601f89168261246f565b8355505b6001600288020188555050505b505050505050565b60006040820190506125906000830185611c6f565b61259d6020830184611d85565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220241a7f646a7ada294f06958046f9a11d2a9b45c6d99103759e3a45e841e1390a64736f6c63430008140033",
580
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063b88d4fde11610071578063b88d4fde146102a4578063c87b56dd146102c0578063cd279c7c146102f0578063e985e9c51461030c578063f2fde38b1461033c5761010b565b8063715018a6146102425780638da5cb5b1461024c57806395d89b411461026a578063a22cb465146102885761010b565b806323b872dd116100de57806323b872dd146101aa57806342842e0e146101c65780636352211e146101e257806370a08231146102125761010b565b806301ffc9a71461011057806306fdde0314610140578063081812fc1461015e578063095ea7b31461018e575b600080fd5b61012a60048036038101906101259190611ac5565b610358565b6040516101379190611b0d565b60405180910390f35b61014861036a565b6040516101559190611bb8565b60405180910390f35b61017860048036038101906101739190611c10565b6103fc565b6040516101859190611c7e565b60405180910390f35b6101a860048036038101906101a39190611cc5565b610418565b005b6101c460048036038101906101bf9190611d05565b61042e565b005b6101e060048036038101906101db9190611d05565b610530565b005b6101fc60048036038101906101f79190611c10565b610550565b6040516102099190611c7e565b60405180910390f35b61022c60048036038101906102279190611d58565b610562565b6040516102399190611d94565b60405180910390f35b61024a61061c565b005b610254610630565b6040516102619190611c7e565b60405180910390f35b61027261065a565b60405161027f9190611bb8565b60405180910390f35b6102a2600480360381019061029d9190611ddb565b6106ec565b005b6102be60048036038101906102b99190611f50565b610702565b005b6102da60048036038101906102d59190611c10565b610727565b6040516102e79190611bb8565b60405180910390f35b61030a60048036038101906103059190612074565b610739565b005b610326600480360381019061032191906120e3565b61075a565b6040516103339190611b0d565b60405180910390f35b61035660048036038101906103519190611d58565b6107ee565b005b600061036382610874565b9050919050565b60606000805461037990612152565b80601f01602080910402602001604051908101604052809291908181526020018280546103a590612152565b80156103f25780601f106103c7576101008083540402835291602001916103f2565b820191906000526020600020905b8154815290600101906020018083116103d557829003601f168201915b5050505050905090565b6000610407826108d5565b506104118261095d565b9050919050565b61042a828261042561099a565b6109a2565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036104a05760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016104979190611c7e565b60405180910390fd5b60006104b483836104af61099a565b6109b4565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461052a578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161052193929190612183565b60405180910390fd5b50505050565b61054b83838360405180602001604052806000815250610702565b505050565b600061055b826108d5565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105d55760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016105cc9190611c7e565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610624610bce565b61062e6000610c55565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461066990612152565b80601f016020809104026020016040519081016040528092919081815260200182805461069590612152565b80156106e25780601f106106b7576101008083540402835291602001916106e2565b820191906000526020600020905b8154815290600101906020018083116106c557829003601f168201915b5050505050905090565b6106fe6106f761099a565b8383610d1b565b5050565b61070d84848461042e565b61072161071861099a565b85858585610e8a565b50505050565b60606107328261103b565b9050919050565b610741610bce565b61074b838361114e565b610755828261116c565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6107f6610bce565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108685760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161085f9190611c7e565b60405180910390fd5b61087181610c55565b50565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108ce57506108cd826111c8565b5b9050919050565b6000806108e1836112aa565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361095457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161094b9190611d94565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6109af83838360016112e7565b505050565b6000806109c0846112aa565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a0257610a018184866114ac565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a9357610a446000856000806112e7565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b16576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b610bd661099a565b73ffffffffffffffffffffffffffffffffffffffff16610bf4610630565b73ffffffffffffffffffffffffffffffffffffffff1614610c5357610c1761099a565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610c4a9190611c7e565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d8c57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610d839190611c7e565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e7d9190611b0d565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611034578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401610ee9949392919061220f565b6020604051808303816000875af1925050508015610f2557506040513d601f19601f82011682018060405250810190610f229190612270565b60015b610fa9573d8060008114610f55576040519150601f19603f3d011682016040523d82523d6000602084013e610f5a565b606091505b506000815103610fa157836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610f989190611c7e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461103257836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016110299190611c7e565b60405180910390fd5b505b5050505050565b6060611046826108d5565b50600060066000848152602001908152602001600020805461106790612152565b80601f016020809104026020016040519081016040528092919081815260200182805461109390612152565b80156110e05780601f106110b5576101008083540402835291602001916110e0565b820191906000526020600020905b8154815290600101906020018083116110c357829003601f168201915b5050505050905060006110f1611570565b90506000815103611106578192505050611149565b60008251111561113b5780826040516020016111239291906122d9565b60405160208183030381529060405292505050611149565b61114484611587565b925050505b919050565b6111688282604051806020016040528060008152506115f0565b5050565b8060066000848152602001908152602001600020908161118c91906124a9565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516111bc9190611d94565b60405180910390a15050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061129357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806112a357506112a282611614565b5b9050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806113205750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611454576000611330846108d5565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561139b57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156113ae57506113ac818461075a565b155b156113f057826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016113e79190611c7e565b60405180910390fd5b811561145257838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6114b783838361167e565b61156b57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361152c57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016115239190611d94565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161156292919061257b565b60405180910390fd5b505050565b606060405180602001604052806000815250905090565b6060611592826108d5565b50600061159d611570565b905060008151116115bd57604051806020016040528060008152506115e8565b806115c78461173f565b6040516020016115d89291906122d9565b6040516020818303038152906040525b915050919050565b6115fa838361180d565b61160f61160561099a565b6000858585610e8a565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561173657508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806116f757506116f6848461075a565b5b8061173557508273ffffffffffffffffffffffffffffffffffffffff1661171d8361095d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b60606000600161174e84611906565b01905060008167ffffffffffffffff81111561176d5761176c611e25565b5b6040519080825280601f01601f19166020018201604052801561179f5781602001600182028036833780820191505090505b509050600082602001820190505b600115611802578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816117f6576117f56125a4565b5b049450600085036117ad575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187f5760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016118769190611c7e565b60405180910390fd5b600061188d838360006109b4565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146119015760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016118f89190611c7e565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611964577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161195a576119596125a4565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106119a1576d04ee2d6d415b85acef81000000008381611997576119966125a4565b5b0492506020810190505b662386f26fc1000083106119d057662386f26fc1000083816119c6576119c56125a4565b5b0492506010810190505b6305f5e10083106119f9576305f5e10083816119ef576119ee6125a4565b5b0492506008810190505b6127108310611a1e576127108381611a1457611a136125a4565b5b0492506004810190505b60648310611a415760648381611a3757611a366125a4565b5b0492506002810190505b600a8310611a50576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611aa281611a6d565b8114611aad57600080fd5b50565b600081359050611abf81611a99565b92915050565b600060208284031215611adb57611ada611a63565b5b6000611ae984828501611ab0565b91505092915050565b60008115159050919050565b611b0781611af2565b82525050565b6000602082019050611b226000830184611afe565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b62578082015181840152602081019050611b47565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b8a82611b28565b611b948185611b33565b9350611ba4818560208601611b44565b611bad81611b6e565b840191505092915050565b60006020820190508181036000830152611bd28184611b7f565b905092915050565b6000819050919050565b611bed81611bda565b8114611bf857600080fd5b50565b600081359050611c0a81611be4565b92915050565b600060208284031215611c2657611c25611a63565b5b6000611c3484828501611bfb565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c6882611c3d565b9050919050565b611c7881611c5d565b82525050565b6000602082019050611c936000830184611c6f565b92915050565b611ca281611c5d565b8114611cad57600080fd5b50565b600081359050611cbf81611c99565b92915050565b60008060408385031215611cdc57611cdb611a63565b5b6000611cea85828601611cb0565b9250506020611cfb85828601611bfb565b9150509250929050565b600080600060608486031215611d1e57611d1d611a63565b5b6000611d2c86828701611cb0565b9350506020611d3d86828701611cb0565b9250506040611d4e86828701611bfb565b9150509250925092565b600060208284031215611d6e57611d6d611a63565b5b6000611d7c84828501611cb0565b91505092915050565b611d8e81611bda565b82525050565b6000602082019050611da96000830184611d85565b92915050565b611db881611af2565b8114611dc357600080fd5b50565b600081359050611dd581611daf565b92915050565b60008060408385031215611df257611df1611a63565b5b6000611e0085828601611cb0565b9250506020611e1185828601611dc6565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611e5d82611b6e565b810181811067ffffffffffffffff82111715611e7c57611e7b611e25565b5b80604052505050565b6000611e8f611a59565b9050611e9b8282611e54565b919050565b600067ffffffffffffffff821115611ebb57611eba611e25565b5b611ec482611b6e565b9050602081019050919050565b82818337600083830152505050565b6000611ef3611eee84611ea0565b611e85565b905082815260208101848484011115611f0f57611f0e611e20565b5b611f1a848285611ed1565b509392505050565b600082601f830112611f3757611f36611e1b565b5b8135611f47848260208601611ee0565b91505092915050565b60008060008060808587031215611f6a57611f69611a63565b5b6000611f7887828801611cb0565b9450506020611f8987828801611cb0565b9350506040611f9a87828801611bfb565b925050606085013567ffffffffffffffff811115611fbb57611fba611a68565b5b611fc787828801611f22565b91505092959194509250565b600067ffffffffffffffff821115611fee57611fed611e25565b5b611ff782611b6e565b9050602081019050919050565b600061201761201284611fd3565b611e85565b90508281526020810184848401111561203357612032611e20565b5b61203e848285611ed1565b509392505050565b600082601f83011261205b5761205a611e1b565b5b813561206b848260208601612004565b91505092915050565b60008060006060848603121561208d5761208c611a63565b5b600061209b86828701611cb0565b93505060206120ac86828701611bfb565b925050604084013567ffffffffffffffff8111156120cd576120cc611a68565b5b6120d986828701612046565b9150509250925092565b600080604083850312156120fa576120f9611a63565b5b600061210885828601611cb0565b925050602061211985828601611cb0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061216a57607f821691505b60208210810361217d5761217c612123565b5b50919050565b60006060820190506121986000830186611c6f565b6121a56020830185611d85565b6121b26040830184611c6f565b949350505050565b600081519050919050565b600082825260208201905092915050565b60006121e1826121ba565b6121eb81856121c5565b93506121fb818560208601611b44565b61220481611b6e565b840191505092915050565b60006080820190506122246000830187611c6f565b6122316020830186611c6f565b61223e6040830185611d85565b818103606083015261225081846121d6565b905095945050505050565b60008151905061226a81611a99565b92915050565b60006020828403121561228657612285611a63565b5b60006122948482850161225b565b91505092915050565b600081905092915050565b60006122b382611b28565b6122bd818561229d565b93506122cd818560208601611b44565b80840191505092915050565b60006122e582856122a8565b91506122f182846122a8565b91508190509392505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261235f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612322565b6123698683612322565b95508019841693508086168417925050509392505050565b6000819050919050565b60006123a66123a161239c84611bda565b612381565b611bda565b9050919050565b6000819050919050565b6123c08361238b565b6123d46123cc826123ad565b84845461232f565b825550505050565b600090565b6123e96123dc565b6123f48184846123b7565b505050565b5b818110156124185761240d6000826123e1565b6001810190506123fa565b5050565b601f82111561245d5761242e816122fd565b61243784612312565b81016020851015612446578190505b61245a61245285612312565b8301826123f9565b50505b505050565b600082821c905092915050565b600061248060001984600802612462565b1980831691505092915050565b6000612499838361246f565b9150826002028217905092915050565b6124b282611b28565b67ffffffffffffffff8111156124cb576124ca611e25565b5b6124d58254612152565b6124e082828561241c565b600060209050601f8311600181146125135760008415612501578287015190505b61250b858261248d565b865550612573565b601f198416612521866122fd565b60005b8281101561254957848901518255600182019150602085019450602081019050612524565b868310156125665784890151612562601f89168261246f565b8355505b6001600288020188555050505b505050505050565b60006040820190506125906000830185611c6f565b61259d6020830184611d85565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220241a7f646a7ada294f06958046f9a11d2a9b45c6d99103759e3a45e841e1390a64736f6c63430008140033",
581
581
  "linkReferences": {},
582
582
  "deployedLinkReferences": {},
583
583
  "devdoc": {
@@ -619,7 +619,7 @@
619
619
  ],
620
620
  "ERC721InvalidOwner(address)": [
621
621
  {
622
- "details": "Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.",
622
+ "details": "Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.",
623
623
  "params": {
624
624
  "owner": "Address of the current owner of a token."
625
625
  }
@@ -732,7 +732,7 @@
732
732
  "evm": {
733
733
  "gasEstimates": {
734
734
  "creation": {
735
- "codeDepositCost": "1945400",
735
+ "codeDepositCost": "1947400",
736
736
  "executionCost": "infinite",
737
737
  "totalCost": "infinite"
738
738
  },