diff --git a/src/artifacts/contracts/interfaces/IERC2981.sol/IERC2981.json b/src/artifacts/contracts/interfaces/IERC2981.sol/IERC2981.json new file mode 100644 index 0000000..710a742 --- /dev/null +++ b/src/artifacts/contracts/interfaces/IERC2981.sol/IERC2981.json @@ -0,0 +1,59 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC2981", + "sourceName": "contracts/interfaces/IERC2981.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_saleCost", + "type": "uint256" + } + ], + "name": "royaltyInfo", + "outputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "royaltyAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/src/artifacts/contracts/mocks/ERC1155MetaMintBurnMock.sol/ERC1155MetaMintBurnMock.json b/src/artifacts/contracts/mocks/ERC1155MetaMintBurnMock.sol/ERC1155MetaMintBurnMock.json index bbb229c..d91b026 100644 --- a/src/artifacts/contracts/mocks/ERC1155MetaMintBurnMock.sol/ERC1155MetaMintBurnMock.json +++ b/src/artifacts/contracts/mocks/ERC1155MetaMintBurnMock.sol/ERC1155MetaMintBurnMock.json @@ -3,6 +3,22 @@ "contractName": "ERC1155MetaMintBurnMock", "sourceName": "contracts/mocks/ERC1155MetaMintBurnMock.sol", "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_baseURI", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, { "anonymous": false, "inputs": [ @@ -192,6 +208,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "baseURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -480,6 +509,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -603,8 +645,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50613fc7806100206000396000f3fe608060405234801561001057600080fd5b506004361061011a5760003560e01c8063a3d4926e116100b2578063d7a0ad9011610081578063f242432a11610066578063f242432a1461029e578063f5d4c820146102b1578063fa4e12d7146102c45761011a565b8063d7a0ad9014610278578063e985e9c51461028b5761011a565b8063a3d4926e1461022c578063a3f091f51461023f578063bd7a6c4114610252578063ce0b514b146102655761011a565b80632eb2c2d6116100ee5780632eb2c2d6146101d1578063437ecbe9146101e65780634e1273f4146101f9578063a22cb465146102195761011a565b8062fdd58e1461015557806301ffc9a71461017e5780630e89341c1461019e5780632d0335ab146101be575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613958565b60405180910390fd5b6101686101633660046133cd565b6102d7565b6040516101759190613b29565b60405180910390f35b61019161018c366004613560565b61030a565b60405161017591906137c5565b6101b16101ac36600461365f565b61031d565b604051610175919061384d565b6101686101cc366004612ef7565b610470565b6101e46101df366004613051565b610498565b005b6101e46101f43660046133f8565b6105a3565b61020c610207366004613481565b6105b3565b6040516101759190613781565b6101e4610227366004613351565b6106ff565b6101e461023a366004612f94565b610798565b6101e461024d36600461342c565b61090c565b6101e4610260366004613247565b61091e565b6101e4610273366004613174565b610929565b6101e46102863660046132ba565b610a08565b610191610299366004612f5c565b610a14565b6101e46102ac3660046131ec565b610a4f565b6101e46102bf3660046130fb565b610b53565b6101916102d236600461337e565b610c83565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b600061031582611464565b90505b919050565b6060600361032a836114c1565b60405160200180838054600181600116156101000203166002900480156103885780601f10610366576101008083540402835291820191610388565b820191906000526020600020905b815481529060010190602001808311610374575b5050825160208401908083835b602083106103d257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610395565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff861614806104c157506104c18533610a14565b610516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613e3b602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610582576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613d7c6030913960400191505060405180910390fd5b61058e858585856115ed565b61059c858585855a86611941565b5050505050565b6105ae838383611bae565b505050565b6060815183511461060f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613ddc602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561062957600080fd5b50604051908082528060200260200182016040528015610653578160200160208202803683370190505b50905060005b84518110156106f75760008086838151811061067157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106106c157fe5b60200260200101518152602001908152602001600020548282815181106106e457fe5b6020908102919091010152600101610659565b509392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff85166107e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613a12565b60606107ef612d28565b60606108a289857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c60405160200161082d9190613677565b604051602081830303815290604052805190602001208c6040516020016108549190613677565b604051602081830303815290604052805190602001208c610876576000610879565b60015b60405160200161088e969594939291906137d0565b604051602081830303815290604052611c59565b90506108b0898989896115ed565b84156108f357808060200190518101906108ca919061362a565b80945081935050506108e489898989866020015188611941565b6108ee8983611e28565b610901565b610901898989895a86611941565b505050505050505050565b610918848484846120d1565b50505050565b6105ae838383612186565b73ffffffffffffffffffffffffffffffffffffffff8516610976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c9061389e565b6060610980612d28565b60606109b889857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c610876576000610879565b90506109c6898989896123c6565b84156109fa57808060200190518101906109e0919061362a565b80945081935050506108e4898989898660200151886124c9565b610901898989895a866124c9565b610918848484846126ba565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610a785750610a788533610a14565b610acd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613c76602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610b39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613c14602b913960400191505060405180910390fd5b610b45858585856123c6565b61059c858585855a866124c9565b6060610baf86837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610b89576000610b8c565b60015b89610b98576000610b9b565b60015b60405160200161088e959493929190613811565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610c439088906137c5565b60405180910390a38215610c7b57610c59612d28565b81806020019051810190610c6d91906135f7565b9050610c798782611e28565b505b505050505050565b600080825111610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613e6a6043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180613e086033913960400191505060405180910390fd5b6000610d5583612904565b60f81c905060058110610db3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cd5603a913960400191505060405180910390fd5b60008160ff166005811115610dc457fe5b9050600080808080856005811115610dd857fe5b1415610e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180613d0f6036913960400191505060405180910390fd5b6001856005811115610e3d57fe5b1415610f80578751606114610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613d456037913960400191505060405180910390fd5b610ea88860006129c1565b9250610eb58860206129c1565b915087604081518110610ec457fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610f2e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d8116911614975061145c9650505050505050565b6002856005811115610f8e57fe5b14156110de578751606114610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613d456037913960400191505060405180910390fd5b610ff98860006129c1565b92506110068860206129c1565b91508760408151811061101557fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610f2e573d6000803e3d6000fd5b60038560058111156110ec57fe5b14156112a457604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b8381101561117a578181015183820152602001611162565b50505050905090810190601f1680156111a75780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156111da5781810151838201526020016111c2565b50505050905090810190601f1680156112075780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561122657600080fd5b505afa15801561123a573d6000803e3d6000fd5b505050506040513d602081101561125057600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b0000000000000000000000000000000000000000000000000000000014965061145c95505050505050565b60048560058111156112b257fe5b141561140b57604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b8381101561134257818101518382015260200161132a565b50505050905090810190601f16801561136f5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561138d57600080fd5b505afa1580156113a1573d6000803e3d6000fd5b505050506040513d60208110156113b757600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014965061145c95505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cd5603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156114b857506001610318565b61031582612a29565b606081611502575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610318565b818060005b821561151b57600101600a83049250611507565b60608167ffffffffffffffff8111801561153457600080fd5b506040519080825280601f01601f19166020018201604052801561155f576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b83156115e357600a840660300160f81b828280600190039350815181106115a957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611586565b5095945050505050565b8051825114611647576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180613ca06035913960400191505060405180910390fd5b815160005b81811015611839576116dc83828151811061166357fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116b757fe5b6020026020010151815260200190815260200160002054612a8690919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061172857fe5b60200260200101518152602001908152602001600020819055506117ca83828151811061175157fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106117a557fe5b6020026020010151815260200190815260200160002054612afd90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061181657fe5b60209081029190910181015182528101919091526040016000205560010161164c565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156118e65781810151838201526020016118ce565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561192557818101518382015260200161190d565b5050505090500194505050505060405180910390a45050505050565b6119608573ffffffffffffffffffffffffffffffffffffffff16612b78565b15610c7b5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611a18578181015183820152602001611a00565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611a57578181015183820152602001611a3f565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611a93578181015183820152602001611a7b565b50505050905090810190601f168015611ac05780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611ae557600080fd5b5087f1158015611af9573d6000803e3d6000fd5b50505050506040513d6020811015611b1057600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610c79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180613edd603f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611be79082612a86565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b60608083806020019051810190611c7091906135a0565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611ca88360416129c1565b9050818110801590611cbc57508160640181105b611cf2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613a6f565b6000611d2e86838780519060200120604051602001611d13939291906136ad565b60405160208183030381529060405280519060200120612baf565b90506060868387604051602001611d47939291906136d4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf5991611dd291613b29565b60405180910390a2611de689838388610c83565b611e1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c906138fb565b50505050509392505050565b6000611e378260600151612904565b60f81c905060028110611e76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613acc565b60008160ff166002811115611e8757fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff1615611ebd578660400151611ebf565b335b92506000856002811115611ecf57fe5b1415611fce578660600151806020019051810190611eed9190612f2f565b909450915073ffffffffffffffffffffffffffffffffffffffff8416301415611f3e57611f1c888484846123c6565b611f398884845a85604051806020016040528060008152506124c9565b611fc9565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a90611f96908b9087908790879060040161373c565b600060405180830381600087803b158015611fb057600080fd5b505af1158015611fc4573d6000803e3d6000fd5b505050505b6120c7565b8660600151806020019051810190611fe69190612f13565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd9061203f908b908790869060040161370b565b602060405180830381600087803b15801561205957600080fd5b505af115801561206d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120919190613544565b6120c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c906139b5565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915290205461210a9083612afd565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461091860008585855a866124c9565b8151815181146121e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613dac6030913960400191505060405180910390fd5b60005b818110156122be5761224f8382815181106121fb57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116b757fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061229b57fe5b6020908102919091018101518252810191909152604001600020556001016121e4565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561236c578181015183820152602001612354565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156123ab578181015183820152602001612393565b5050505090500194505050505060405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208584529091529020546123ff9082612a86565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152602081815260408083208784528252808320949094559186168152808252828120858252909152205461244f9082612afd565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6124e88573ffffffffffffffffffffffffffffffffffffffff16612b78565b15610c7b5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156125a1578181015183820152602001612589565b50505050905090810190601f1680156125ce5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156125f157600080fd5b5087f1158015612605573d6000803e3d6000fd5b50505050506040513d602081101561261c57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610c79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613f1c603a913960400191505060405180910390fd5b8151835114612714576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613ead6030913960400191505060405180910390fd5b825160005b818110156127f35761278484828151811061273057fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008885815181106117a557fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008784815181106127d057fe5b602090810291909101810151825281019190915260400160002055600101612719565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156128a1578181015183820152602001612889565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156128e05781810151838201526020016128c8565b5050505090500194505050505060405180910390a461059c60008686865a87611941565b60008082511161295f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613c3f6037913960400191505060405180910390fd5b8160018351038151811061296f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612a20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180613f56603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612a7d57506001610318565b61031582612cde565b600082821115612af757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015612b7157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590612b7157507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612c7c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612c3f565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f830112612d76578081fd5b8135612d89612d8482613b56565b613b32565b818152915060208083019084810181840286018201871015612daa57600080fd5b60005b84811015612dc957813584529282019290820190600101612dad565b505050505092915050565b600082601f830112612de4578081fd5b8135612df2612d8482613b74565b9150808252836020828501011115612e0957600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112612e32578081fd5b8151612e40612d8482613b74565b9150808252836020828501011115612e5757600080fd5b612e68816020840160208601613bb4565b5092915050565b600060808284031215612e80578081fd5b6040516080810167ffffffffffffffff8282108183111715612e9e57fe5b81604052829350845183526020850151602084015260408501519150612ec382613be0565b8160408401526060850151915080821115612edd57600080fd5b50612eea85828601612e22565b6060830152505092915050565b600060208284031215612f08578081fd5b8135612b7181613be0565b600060208284031215612f24578081fd5b8151612b7181613be0565b60008060408385031215612f41578081fd5b8251612f4c81613be0565b6020939093015192949293505050565b60008060408385031215612f6e578182fd5b8235612f7981613be0565b91506020830135612f8981613be0565b809150509250929050565b60008060008060008060c08789031215612fac578182fd5b8635612fb781613be0565b95506020870135612fc781613be0565b9450604087013567ffffffffffffffff80821115612fe3578384fd5b612fef8a838b01612d66565b95506060890135915080821115613004578384fd5b6130108a838b01612d66565b94506080890135915061302282613c05565b90925060a08801359080821115613037578283fd5b5061304489828a01612dd4565b9150509295509295509295565b600080600080600060a08688031215613068578081fd5b853561307381613be0565b9450602086013561308381613be0565b9350604086013567ffffffffffffffff8082111561309f578283fd5b6130ab89838a01612d66565b945060608801359150808211156130c0578283fd5b6130cc89838a01612d66565b935060808801359150808211156130e1578283fd5b506130ee88828901612dd4565b9150509295509295909350565b600080600080600060a08688031215613112578081fd5b853561311d81613be0565b9450602086013561312d81613be0565b9350604086013561313d81613c05565b9250606086013561314d81613c05565b9150608086013567ffffffffffffffff811115613168578182fd5b6130ee88828901612dd4565b60008060008060008060c0878903121561318c578384fd5b863561319781613be0565b955060208701356131a781613be0565b9450604087013593506060870135925060808701356131c581613c05565b915060a087013567ffffffffffffffff8111156131e0578182fd5b61304489828a01612dd4565b600080600080600060a08688031215613203578283fd5b853561320e81613be0565b9450602086013561321e81613be0565b93506040860135925060608601359150608086013567ffffffffffffffff811115613168578182fd5b60008060006060848603121561325b578081fd5b833561326681613be0565b9250602084013567ffffffffffffffff80821115613282578283fd5b61328e87838801612d66565b935060408601359150808211156132a3578283fd5b506132b086828701612d66565b9150509250925092565b600080600080608085870312156132cf578182fd5b84356132da81613be0565b9350602085013567ffffffffffffffff808211156132f6578384fd5b61330288838901612d66565b94506040870135915080821115613317578384fd5b61332388838901612d66565b93506060870135915080821115613338578283fd5b5061334587828801612dd4565b91505092959194509250565b60008060408385031215613363578182fd5b823561336e81613be0565b91506020830135612f8981613c05565b60008060008060808587031215613393578182fd5b843561339e81613be0565b935060208501359250604085013567ffffffffffffffff808211156133c1578384fd5b61332388838901612dd4565b600080604083850312156133df578182fd5b82356133ea81613be0565b946020939093013593505050565b60008060006060848603121561340c578081fd5b833561341781613be0565b95602085013595506040909401359392505050565b60008060008060808587031215613441578182fd5b843561344c81613be0565b93506020850135925060408501359150606085013567ffffffffffffffff811115613475578182fd5b61334587828801612dd4565b60008060408385031215613493578182fd5b823567ffffffffffffffff808211156134aa578384fd5b818501915085601f8301126134bd578384fd5b81356134cb612d8482613b56565b80828252602080830192508086018a8283870289010111156134eb578889fd5b8896505b8487101561351657803561350281613be0565b8452600196909601959281019281016134ef565b50909650870135935050508082111561352d578283fd5b5061353a85828601612d66565b9150509250929050565b600060208284031215613555578081fd5b8151612b7181613c05565b600060208284031215613571578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612b71578182fd5b600080604083850312156135b2578182fd5b825167ffffffffffffffff808211156135c9578384fd5b6135d586838701612e22565b935060208501519150808211156135ea578283fd5b5061353a85828601612e22565b600060208284031215613608578081fd5b815167ffffffffffffffff81111561361e578182fd5b61145c84828501612e6f565b6000806040838503121561363c578182fd5b825167ffffffffffffffff80821115613653578384fd5b6135d586838701612e6f565b600060208284031215613670578081fd5b5035919050565b815160009082906020808601845b838110156136a157815185529382019390820190600101613685565b50929695505050505050565b600084516136bf818460208901613bb4565b91909101928352506020820152604001919050565b600084516136e6818460208901613bb4565b820184815283516136fe816020808501908801613bb4565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b818110156137b95783518352928401929184019160010161379d565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b600060208252825180602084015261386c816040850160208701613bb4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526033908201527f455243313135354d657461236d657461536166655472616e7366657246726f6d60408201527f3a20494e56414c49445f524543495049454e5400000000000000000000000000606082015260800190565b60208082526033908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f5349474e415455524500000000000000000000000000606082015260800190565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f455243313135354d657461235f7472616e736665724761734665653a2045524360408201527f32305f5452414e534645525f4641494c45440000000000000000000000000000606082015260800190565b60208082526038908201527f455243313135354d657461236d6574615361666542617463685472616e73666560408201527f7246726f6d3a20494e56414c49445f524543495049454e540000000000000000606082015260800190565b6020808252602f908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f4e4f4e43450000000000000000000000000000000000606082015260800190565b6020808252602e908201527f455243313135354d657461235f7472616e736665724761734665653a20554e5360408201527f5550504f525445445f544f4b454e000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715613b4e57fe5b604052919050565b600067ffffffffffffffff821115613b6a57fe5b5060209081020190565b600067ffffffffffffffff821115613b8857fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015613bcf578181015183820152602001613bb7565b838111156109185750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114613c0257600080fd5b50565b8015158114613c0257600080fdfe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f52455155495245444552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f524551554952454445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e455245524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147454c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544a264697066735822122008b77ff76016e14115160846edef46ef1b7acff27d7339eaf2a92266ce99c33d64736f6c63430007040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061011a5760003560e01c8063a3d4926e116100b2578063d7a0ad9011610081578063f242432a11610066578063f242432a1461029e578063f5d4c820146102b1578063fa4e12d7146102c45761011a565b8063d7a0ad9014610278578063e985e9c51461028b5761011a565b8063a3d4926e1461022c578063a3f091f51461023f578063bd7a6c4114610252578063ce0b514b146102655761011a565b80632eb2c2d6116100ee5780632eb2c2d6146101d1578063437ecbe9146101e65780634e1273f4146101f9578063a22cb465146102195761011a565b8062fdd58e1461015557806301ffc9a71461017e5780630e89341c1461019e5780632d0335ab146101be575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613958565b60405180910390fd5b6101686101633660046133cd565b6102d7565b6040516101759190613b29565b60405180910390f35b61019161018c366004613560565b61030a565b60405161017591906137c5565b6101b16101ac36600461365f565b61031d565b604051610175919061384d565b6101686101cc366004612ef7565b610470565b6101e46101df366004613051565b610498565b005b6101e46101f43660046133f8565b6105a3565b61020c610207366004613481565b6105b3565b6040516101759190613781565b6101e4610227366004613351565b6106ff565b6101e461023a366004612f94565b610798565b6101e461024d36600461342c565b61090c565b6101e4610260366004613247565b61091e565b6101e4610273366004613174565b610929565b6101e46102863660046132ba565b610a08565b610191610299366004612f5c565b610a14565b6101e46102ac3660046131ec565b610a4f565b6101e46102bf3660046130fb565b610b53565b6101916102d236600461337e565b610c83565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b600061031582611464565b90505b919050565b6060600361032a836114c1565b60405160200180838054600181600116156101000203166002900480156103885780601f10610366576101008083540402835291820191610388565b820191906000526020600020905b815481529060010190602001808311610374575b5050825160208401908083835b602083106103d257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610395565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff861614806104c157506104c18533610a14565b610516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613e3b602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610582576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613d7c6030913960400191505060405180910390fd5b61058e858585856115ed565b61059c858585855a86611941565b5050505050565b6105ae838383611bae565b505050565b6060815183511461060f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613ddc602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561062957600080fd5b50604051908082528060200260200182016040528015610653578160200160208202803683370190505b50905060005b84518110156106f75760008086838151811061067157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106106c157fe5b60200260200101518152602001908152602001600020548282815181106106e457fe5b6020908102919091010152600101610659565b509392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff85166107e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613a12565b60606107ef612d28565b60606108a289857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c60405160200161082d9190613677565b604051602081830303815290604052805190602001208c6040516020016108549190613677565b604051602081830303815290604052805190602001208c610876576000610879565b60015b60405160200161088e969594939291906137d0565b604051602081830303815290604052611c59565b90506108b0898989896115ed565b84156108f357808060200190518101906108ca919061362a565b80945081935050506108e489898989866020015188611941565b6108ee8983611e28565b610901565b610901898989895a86611941565b505050505050505050565b610918848484846120d1565b50505050565b6105ae838383612186565b73ffffffffffffffffffffffffffffffffffffffff8516610976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c9061389e565b6060610980612d28565b60606109b889857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c610876576000610879565b90506109c6898989896123c6565b84156109fa57808060200190518101906109e0919061362a565b80945081935050506108e4898989898660200151886124c9565b610901898989895a866124c9565b610918848484846126ba565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610a785750610a788533610a14565b610acd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613c76602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610b39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613c14602b913960400191505060405180910390fd5b610b45858585856123c6565b61059c858585855a866124c9565b6060610baf86837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610b89576000610b8c565b60015b89610b98576000610b9b565b60015b60405160200161088e959493929190613811565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610c439088906137c5565b60405180910390a38215610c7b57610c59612d28565b81806020019051810190610c6d91906135f7565b9050610c798782611e28565b505b505050505050565b600080825111610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613e6a6043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180613e086033913960400191505060405180910390fd5b6000610d5583612904565b60f81c905060058110610db3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cd5603a913960400191505060405180910390fd5b60008160ff166005811115610dc457fe5b9050600080808080856005811115610dd857fe5b1415610e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180613d0f6036913960400191505060405180910390fd5b6001856005811115610e3d57fe5b1415610f80578751606114610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613d456037913960400191505060405180910390fd5b610ea88860006129c1565b9250610eb58860206129c1565b915087604081518110610ec457fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610f2e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d8116911614975061145c9650505050505050565b6002856005811115610f8e57fe5b14156110de578751606114610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613d456037913960400191505060405180910390fd5b610ff98860006129c1565b92506110068860206129c1565b91508760408151811061101557fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610f2e573d6000803e3d6000fd5b60038560058111156110ec57fe5b14156112a457604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b8381101561117a578181015183820152602001611162565b50505050905090810190601f1680156111a75780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156111da5781810151838201526020016111c2565b50505050905090810190601f1680156112075780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561122657600080fd5b505afa15801561123a573d6000803e3d6000fd5b505050506040513d602081101561125057600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b0000000000000000000000000000000000000000000000000000000014965061145c95505050505050565b60048560058111156112b257fe5b141561140b57604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b8381101561134257818101518382015260200161132a565b50505050905090810190601f16801561136f5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561138d57600080fd5b505afa1580156113a1573d6000803e3d6000fd5b505050506040513d60208110156113b757600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014965061145c95505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cd5603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156114b857506001610318565b61031582612a29565b606081611502575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610318565b818060005b821561151b57600101600a83049250611507565b60608167ffffffffffffffff8111801561153457600080fd5b506040519080825280601f01601f19166020018201604052801561155f576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b83156115e357600a840660300160f81b828280600190039350815181106115a957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611586565b5095945050505050565b8051825114611647576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180613ca06035913960400191505060405180910390fd5b815160005b81811015611839576116dc83828151811061166357fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116b757fe5b6020026020010151815260200190815260200160002054612a8690919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061172857fe5b60200260200101518152602001908152602001600020819055506117ca83828151811061175157fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106117a557fe5b6020026020010151815260200190815260200160002054612afd90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061181657fe5b60209081029190910181015182528101919091526040016000205560010161164c565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156118e65781810151838201526020016118ce565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561192557818101518382015260200161190d565b5050505090500194505050505060405180910390a45050505050565b6119608573ffffffffffffffffffffffffffffffffffffffff16612b78565b15610c7b5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611a18578181015183820152602001611a00565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611a57578181015183820152602001611a3f565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611a93578181015183820152602001611a7b565b50505050905090810190601f168015611ac05780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611ae557600080fd5b5087f1158015611af9573d6000803e3d6000fd5b50505050506040513d6020811015611b1057600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610c79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180613edd603f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611be79082612a86565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b60608083806020019051810190611c7091906135a0565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611ca88360416129c1565b9050818110801590611cbc57508160640181105b611cf2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613a6f565b6000611d2e86838780519060200120604051602001611d13939291906136ad565b60405160208183030381529060405280519060200120612baf565b90506060868387604051602001611d47939291906136d4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf5991611dd291613b29565b60405180910390a2611de689838388610c83565b611e1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c906138fb565b50505050509392505050565b6000611e378260600151612904565b60f81c905060028110611e76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613acc565b60008160ff166002811115611e8757fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff1615611ebd578660400151611ebf565b335b92506000856002811115611ecf57fe5b1415611fce578660600151806020019051810190611eed9190612f2f565b909450915073ffffffffffffffffffffffffffffffffffffffff8416301415611f3e57611f1c888484846123c6565b611f398884845a85604051806020016040528060008152506124c9565b611fc9565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a90611f96908b9087908790879060040161373c565b600060405180830381600087803b158015611fb057600080fd5b505af1158015611fc4573d6000803e3d6000fd5b505050505b6120c7565b8660600151806020019051810190611fe69190612f13565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd9061203f908b908790869060040161370b565b602060405180830381600087803b15801561205957600080fd5b505af115801561206d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120919190613544565b6120c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c906139b5565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915290205461210a9083612afd565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461091860008585855a866124c9565b8151815181146121e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613dac6030913960400191505060405180910390fd5b60005b818110156122be5761224f8382815181106121fb57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116b757fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061229b57fe5b6020908102919091018101518252810191909152604001600020556001016121e4565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561236c578181015183820152602001612354565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156123ab578181015183820152602001612393565b5050505090500194505050505060405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208584529091529020546123ff9082612a86565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152602081815260408083208784528252808320949094559186168152808252828120858252909152205461244f9082612afd565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6124e88573ffffffffffffffffffffffffffffffffffffffff16612b78565b15610c7b5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156125a1578181015183820152602001612589565b50505050905090810190601f1680156125ce5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156125f157600080fd5b5087f1158015612605573d6000803e3d6000fd5b50505050506040513d602081101561261c57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610c79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613f1c603a913960400191505060405180910390fd5b8151835114612714576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613ead6030913960400191505060405180910390fd5b825160005b818110156127f35761278484828151811061273057fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008885815181106117a557fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008784815181106127d057fe5b602090810291909101810151825281019190915260400160002055600101612719565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156128a1578181015183820152602001612889565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156128e05781810151838201526020016128c8565b5050505090500194505050505060405180910390a461059c60008686865a87611941565b60008082511161295f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613c3f6037913960400191505060405180910390fd5b8160018351038151811061296f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612a20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180613f56603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612a7d57506001610318565b61031582612cde565b600082821115612af757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015612b7157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590612b7157507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612c7c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612c3f565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f830112612d76578081fd5b8135612d89612d8482613b56565b613b32565b818152915060208083019084810181840286018201871015612daa57600080fd5b60005b84811015612dc957813584529282019290820190600101612dad565b505050505092915050565b600082601f830112612de4578081fd5b8135612df2612d8482613b74565b9150808252836020828501011115612e0957600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112612e32578081fd5b8151612e40612d8482613b74565b9150808252836020828501011115612e5757600080fd5b612e68816020840160208601613bb4565b5092915050565b600060808284031215612e80578081fd5b6040516080810167ffffffffffffffff8282108183111715612e9e57fe5b81604052829350845183526020850151602084015260408501519150612ec382613be0565b8160408401526060850151915080821115612edd57600080fd5b50612eea85828601612e22565b6060830152505092915050565b600060208284031215612f08578081fd5b8135612b7181613be0565b600060208284031215612f24578081fd5b8151612b7181613be0565b60008060408385031215612f41578081fd5b8251612f4c81613be0565b6020939093015192949293505050565b60008060408385031215612f6e578182fd5b8235612f7981613be0565b91506020830135612f8981613be0565b809150509250929050565b60008060008060008060c08789031215612fac578182fd5b8635612fb781613be0565b95506020870135612fc781613be0565b9450604087013567ffffffffffffffff80821115612fe3578384fd5b612fef8a838b01612d66565b95506060890135915080821115613004578384fd5b6130108a838b01612d66565b94506080890135915061302282613c05565b90925060a08801359080821115613037578283fd5b5061304489828a01612dd4565b9150509295509295509295565b600080600080600060a08688031215613068578081fd5b853561307381613be0565b9450602086013561308381613be0565b9350604086013567ffffffffffffffff8082111561309f578283fd5b6130ab89838a01612d66565b945060608801359150808211156130c0578283fd5b6130cc89838a01612d66565b935060808801359150808211156130e1578283fd5b506130ee88828901612dd4565b9150509295509295909350565b600080600080600060a08688031215613112578081fd5b853561311d81613be0565b9450602086013561312d81613be0565b9350604086013561313d81613c05565b9250606086013561314d81613c05565b9150608086013567ffffffffffffffff811115613168578182fd5b6130ee88828901612dd4565b60008060008060008060c0878903121561318c578384fd5b863561319781613be0565b955060208701356131a781613be0565b9450604087013593506060870135925060808701356131c581613c05565b915060a087013567ffffffffffffffff8111156131e0578182fd5b61304489828a01612dd4565b600080600080600060a08688031215613203578283fd5b853561320e81613be0565b9450602086013561321e81613be0565b93506040860135925060608601359150608086013567ffffffffffffffff811115613168578182fd5b60008060006060848603121561325b578081fd5b833561326681613be0565b9250602084013567ffffffffffffffff80821115613282578283fd5b61328e87838801612d66565b935060408601359150808211156132a3578283fd5b506132b086828701612d66565b9150509250925092565b600080600080608085870312156132cf578182fd5b84356132da81613be0565b9350602085013567ffffffffffffffff808211156132f6578384fd5b61330288838901612d66565b94506040870135915080821115613317578384fd5b61332388838901612d66565b93506060870135915080821115613338578283fd5b5061334587828801612dd4565b91505092959194509250565b60008060408385031215613363578182fd5b823561336e81613be0565b91506020830135612f8981613c05565b60008060008060808587031215613393578182fd5b843561339e81613be0565b935060208501359250604085013567ffffffffffffffff808211156133c1578384fd5b61332388838901612dd4565b600080604083850312156133df578182fd5b82356133ea81613be0565b946020939093013593505050565b60008060006060848603121561340c578081fd5b833561341781613be0565b95602085013595506040909401359392505050565b60008060008060808587031215613441578182fd5b843561344c81613be0565b93506020850135925060408501359150606085013567ffffffffffffffff811115613475578182fd5b61334587828801612dd4565b60008060408385031215613493578182fd5b823567ffffffffffffffff808211156134aa578384fd5b818501915085601f8301126134bd578384fd5b81356134cb612d8482613b56565b80828252602080830192508086018a8283870289010111156134eb578889fd5b8896505b8487101561351657803561350281613be0565b8452600196909601959281019281016134ef565b50909650870135935050508082111561352d578283fd5b5061353a85828601612d66565b9150509250929050565b600060208284031215613555578081fd5b8151612b7181613c05565b600060208284031215613571578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612b71578182fd5b600080604083850312156135b2578182fd5b825167ffffffffffffffff808211156135c9578384fd5b6135d586838701612e22565b935060208501519150808211156135ea578283fd5b5061353a85828601612e22565b600060208284031215613608578081fd5b815167ffffffffffffffff81111561361e578182fd5b61145c84828501612e6f565b6000806040838503121561363c578182fd5b825167ffffffffffffffff80821115613653578384fd5b6135d586838701612e6f565b600060208284031215613670578081fd5b5035919050565b815160009082906020808601845b838110156136a157815185529382019390820190600101613685565b50929695505050505050565b600084516136bf818460208901613bb4565b91909101928352506020820152604001919050565b600084516136e6818460208901613bb4565b820184815283516136fe816020808501908801613bb4565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b818110156137b95783518352928401929184019160010161379d565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b600060208252825180602084015261386c816040850160208701613bb4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526033908201527f455243313135354d657461236d657461536166655472616e7366657246726f6d60408201527f3a20494e56414c49445f524543495049454e5400000000000000000000000000606082015260800190565b60208082526033908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f5349474e415455524500000000000000000000000000606082015260800190565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f455243313135354d657461235f7472616e736665724761734665653a2045524360408201527f32305f5452414e534645525f4641494c45440000000000000000000000000000606082015260800190565b60208082526038908201527f455243313135354d657461236d6574615361666542617463685472616e73666560408201527f7246726f6d3a20494e56414c49445f524543495049454e540000000000000000606082015260800190565b6020808252602f908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f4e4f4e43450000000000000000000000000000000000606082015260800190565b6020808252602e908201527f455243313135354d657461235f7472616e736665724761734665653a20554e5360408201527f5550504f525445445f544f4b454e000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715613b4e57fe5b604052919050565b600067ffffffffffffffff821115613b6a57fe5b5060209081020190565b600067ffffffffffffffff821115613b8857fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015613bcf578181015183820152602001613bb7565b838111156109185750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114613c0257600080fd5b50565b8015158114613c0257600080fdfe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f52455155495245444552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f524551554952454445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e455245524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147454c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544a264697066735822122008b77ff76016e14115160846edef46ef1b7acff27d7339eaf2a92266ce99c33d64736f6c63430007040033", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162004386380380620043868339810160408190526200003491620001dc565b8151829082906200004d9060049060208501906200006e565b508051620000639060039060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b61413280620002546000396000f3fe608060405234801561001057600080fd5b50600436106101505760003560e01c8063a22cb465116100cd578063d7a0ad9011610081578063f242432a11610066578063f242432a146102e4578063f5d4c820146102f7578063fa4e12d71461030a57610150565b8063d7a0ad90146102be578063e985e9c5146102d157610150565b8063a3f091f5116100b2578063a3f091f514610285578063bd7a6c4114610298578063ce0b514b146102ab57610150565b8063a22cb4651461025f578063a3d4926e1461027257610150565b80632d0335ab11610124578063437ecbe911610109578063437ecbe9146102245780634e1273f4146102375780636c0360eb1461025757610150565b80632d0335ab146101fc5780632eb2c2d61461020f57610150565b8062fdd58e1461018b57806301ffc9a7146101b457806306fdde03146101d45780630e89341c146101e9575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613ac3565b60405180910390fd5b61019e610199366004613538565b61031d565b6040516101ab9190613c94565b60405180910390f35b6101c76101c23660046136cb565b610350565b6040516101ab9190613930565b6101dc610363565b6040516101ab91906139b8565b6101dc6101f73660046137ca565b61040f565b61019e61020a366004613062565b610562565b61022261021d3660046131bc565b61058a565b005b610222610232366004613563565b610695565b61024a6102453660046135ec565b6106a5565b6040516101ab91906138ec565b6101dc6107f1565b61022261026d3660046134bc565b61086a565b6102226102803660046130ff565b610903565b610222610293366004613597565b610a77565b6102226102a63660046133b2565b610a89565b6102226102b93660046132df565b610a94565b6102226102cc366004613425565b610b73565b6101c76102df3660046130c7565b610b7f565b6102226102f2366004613357565b610bba565b610222610305366004613266565b610cbe565b6101c76103183660046134e9565b610dee565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b600061035b826115cf565b90505b919050565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104075780601f106103dc57610100808354040283529160200191610407565b820191906000526020600020905b8154815290600101906020018083116103ea57829003601f168201915b505050505081565b6060600361041c8361162c565b604051602001808380546001816001161561010002031660029004801561047a5780601f1061045857610100808354040283529182019161047a565b820191906000526020600020905b815481529060010190602001808311610466575b5050825160208401908083835b602083106104c457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610487565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff861614806105b357506105b38533610b7f565b610608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613fa6602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610674576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613ee76030913960400191505060405180910390fd5b61068085858585611758565b61068e858585855a86611aac565b5050505050565b6106a0838383611d19565b505050565b60608151835114610701576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613f47602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561071b57600080fd5b50604051908082528060200260200182016040528015610745578160200160208202803683370190505b50905060005b84518110156107e95760008086838151811061076357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106107b357fe5b60200260200101518152602001908152602001600020548282815181106107d657fe5b602090810291909101015260010161074b565b509392505050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104075780601f106103dc57610100808354040283529160200191610407565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8516610950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613b7d565b606061095a612e93565b6060610a0d89857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c60405160200161099891906137e2565b604051602081830303815290604052805190602001208c6040516020016109bf91906137e2565b604051602081830303815290604052805190602001208c6109e15760006109e4565b60015b6040516020016109f99695949392919061393b565b604051602081830303815290604052611dc4565b9050610a1b89898989611758565b8415610a5e5780806020019051810190610a359190613795565b8094508193505050610a4f89898989866020015188611aac565b610a598983611f93565b610a6c565b610a6c898989895a86611aac565b505050505050505050565b610a838484848461223c565b50505050565b6106a08383836122f1565b73ffffffffffffffffffffffffffffffffffffffff8516610ae1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613a09565b6060610aeb612e93565b6060610b2389857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c6109e15760006109e4565b9050610b3189898989612531565b8415610b655780806020019051810190610b4b9190613795565b8094508193505050610a4f89898989866020015188612634565b610a6c898989895a86612634565b610a8384848484612825565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610be35750610be38533610b7f565b610c38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613de1602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610ca4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613d7f602b913960400191505060405180910390fd5b610cb085858585612531565b61068e858585855a86612634565b6060610d1a86837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610cf4576000610cf7565b60015b89610d03576000610d06565b60015b6040516020016109f995949392919061397c565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610dae908890613930565b60405180910390a38215610de657610dc4612e93565b81806020019051810190610dd89190613762565b9050610de48782611f93565b505b505050505050565b600080825111610e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613fd56043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180613f736033913960400191505060405180910390fd5b6000610ec083612a6f565b60f81c905060058110610f1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613e40603a913960400191505060405180910390fd5b60008160ff166005811115610f2f57fe5b9050600080808080856005811115610f4357fe5b1415610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180613e7a6036913960400191505060405180910390fd5b6001856005811115610fa857fe5b14156110eb578751606114611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613eb06037913960400191505060405180910390fd5b611013886000612b2c565b9250611020886020612b2c565b91508760408151811061102f57fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611099573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d811691161497506115c79650505050505050565b60028560058111156110f957fe5b1415611249578751606114611159576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613eb06037913960400191505060405180910390fd5b611164886000612b2c565b9250611171886020612b2c565b91508760408151811061118057fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611099573d6000803e3d6000fd5b600385600581111561125757fe5b141561140f57604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b838110156112e55781810151838201526020016112cd565b50505050905090810190601f1680156113125780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561134557818101518382015260200161132d565b50505050905090810190601f1680156113725780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561139157600080fd5b505afa1580156113a5573d6000803e3d6000fd5b505050506040513d60208110156113bb57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b000000000000000000000000000000000000000000000000000000001496506115c795505050505050565b600485600581111561141d57fe5b141561157657604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b838110156114ad578181015183820152602001611495565b50505050905090810190601f1680156114da5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156114f857600080fd5b505afa15801561150c573d6000803e3d6000fd5b505050506040513d602081101561152257600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e000000000000000000000000000000000000000000000000000000001496506115c795505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613e40603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156116235750600161035e565b61035b82612b94565b60608161166d575060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015261035e565b818060005b821561168657600101600a83049250611672565b60608167ffffffffffffffff8111801561169f57600080fd5b506040519080825280601f01601f1916602001820160405280156116ca576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561174e57600a840660300160f81b8282806001900393508151811061171457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506116f1565b5095945050505050565b80518251146117b2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180613e0b6035913960400191505060405180910390fd5b815160005b818110156119a4576118478382815181106117ce57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087858151811061182257fe5b6020026020010151815260200190815260200160002054612bf190919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061189357fe5b60200260200101518152602001908152602001600020819055506119358382815181106118bc57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087858151811061191057fe5b6020026020010151815260200190815260200160002054612c6890919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061198157fe5b6020908102919091018101518252810191909152604001600020556001016117b7565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611a51578181015183820152602001611a39565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611a90578181015183820152602001611a78565b5050505090500194505050505060405180910390a45050505050565b611acb8573ffffffffffffffffffffffffffffffffffffffff16612ce3565b15610de65760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611b83578181015183820152602001611b6b565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611bc2578181015183820152602001611baa565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611bfe578181015183820152602001611be6565b50505050905090810190601f168015611c2b5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611c5057600080fd5b5087f1158015611c64573d6000803e3d6000fd5b50505050506040513d6020811015611c7b57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610de4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180614048603f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611d529082612bf1565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b60608083806020019051810190611ddb919061370b565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611e13836041612b2c565b9050818110801590611e2757508160640181105b611e5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613bda565b6000611e9986838780519060200120604051602001611e7e93929190613818565b60405160208183030381529060405280519060200120612d1a565b90506060868387604051602001611eb29392919061383f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf5991611f3d91613c94565b60405180910390a2611f5189838388610dee565b611f87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613a66565b50505050509392505050565b6000611fa28260600151612a6f565b60f81c905060028110611fe1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613c37565b60008160ff166002811115611ff257fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff161561202857866040015161202a565b335b9250600085600281111561203a57fe5b1415612139578660600151806020019051810190612058919061309a565b909450915073ffffffffffffffffffffffffffffffffffffffff84163014156120a95761208788848484612531565b6120a48884845a8560405180602001604052806000815250612634565b612134565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a90612101908b908790879087906004016138a7565b600060405180830381600087803b15801561211b57600080fd5b505af115801561212f573d6000803e3d6000fd5b505050505b612232565b8660600151806020019051810190612151919061307e565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd906121aa908b9087908690600401613876565b602060405180830381600087803b1580156121c457600080fd5b505af11580156121d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121fc91906136af565b612232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613b20565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208684529091529020546122759083612c68565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a4610a8360008585855a86612634565b81518151811461234c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613f176030913960400191505060405180910390fd5b60005b81811015612429576123ba83828151811061236657fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087858151811061182257fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061240657fe5b60209081029190910181015182528101919091526040016000205560010161234f565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156124d75781810151838201526020016124bf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156125165781810151838201526020016124fe565b5050505090500194505050505060405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832085845290915290205461256a9082612bf1565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546125ba9082612c68565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6126538573ffffffffffffffffffffffffffffffffffffffff16612ce3565b15610de65760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561270c5781810151838201526020016126f4565b50505050905090810190601f1680156127395780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561275c57600080fd5b5087f1158015612770573d6000803e3d6000fd5b50505050506040513d602081101561278757600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610de4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614087603a913960400191505060405180910390fd5b815183511461287f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806140186030913960400191505060405180910390fd5b825160005b8181101561295e576128ef84828151811061289b57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088858151811061191057fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087848151811061293b57fe5b602090810291909101810151825281019190915260400160002055600101612884565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612a0c5781810151838201526020016129f4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612a4b578181015183820152602001612a33565b5050505090500194505050505060405180910390a461068e60008686865a87611aac565b600080825111612aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613daa6037913960400191505060405180910390fd5b81600183510381518110612ada57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612b8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806140c1603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612be85750600161035e565b61035b82612e49565b600082821115612c6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015612cdc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590612cdc57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612de757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612daa565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f830112612ee1578081fd5b8135612ef4612eef82613cc1565b613c9d565b818152915060208083019084810181840286018201871015612f1557600080fd5b60005b84811015612f3457813584529282019290820190600101612f18565b505050505092915050565b600082601f830112612f4f578081fd5b8135612f5d612eef82613cdf565b9150808252836020828501011115612f7457600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112612f9d578081fd5b8151612fab612eef82613cdf565b9150808252836020828501011115612fc257600080fd5b612fd3816020840160208601613d1f565b5092915050565b600060808284031215612feb578081fd5b6040516080810167ffffffffffffffff828210818311171561300957fe5b8160405282935084518352602085015160208401526040850151915061302e82613d4b565b816040840152606085015191508082111561304857600080fd5b5061305585828601612f8d565b6060830152505092915050565b600060208284031215613073578081fd5b8135612cdc81613d4b565b60006020828403121561308f578081fd5b8151612cdc81613d4b565b600080604083850312156130ac578081fd5b82516130b781613d4b565b6020939093015192949293505050565b600080604083850312156130d9578182fd5b82356130e481613d4b565b915060208301356130f481613d4b565b809150509250929050565b60008060008060008060c08789031215613117578182fd5b863561312281613d4b565b9550602087013561313281613d4b565b9450604087013567ffffffffffffffff8082111561314e578384fd5b61315a8a838b01612ed1565b9550606089013591508082111561316f578384fd5b61317b8a838b01612ed1565b94506080890135915061318d82613d70565b90925060a088013590808211156131a2578283fd5b506131af89828a01612f3f565b9150509295509295509295565b600080600080600060a086880312156131d3578081fd5b85356131de81613d4b565b945060208601356131ee81613d4b565b9350604086013567ffffffffffffffff8082111561320a578283fd5b61321689838a01612ed1565b9450606088013591508082111561322b578283fd5b61323789838a01612ed1565b9350608088013591508082111561324c578283fd5b5061325988828901612f3f565b9150509295509295909350565b600080600080600060a0868803121561327d578081fd5b853561328881613d4b565b9450602086013561329881613d4b565b935060408601356132a881613d70565b925060608601356132b881613d70565b9150608086013567ffffffffffffffff8111156132d3578182fd5b61325988828901612f3f565b60008060008060008060c087890312156132f7578384fd5b863561330281613d4b565b9550602087013561331281613d4b565b94506040870135935060608701359250608087013561333081613d70565b915060a087013567ffffffffffffffff81111561334b578182fd5b6131af89828a01612f3f565b600080600080600060a0868803121561336e578283fd5b853561337981613d4b565b9450602086013561338981613d4b565b93506040860135925060608601359150608086013567ffffffffffffffff8111156132d3578182fd5b6000806000606084860312156133c6578081fd5b83356133d181613d4b565b9250602084013567ffffffffffffffff808211156133ed578283fd5b6133f987838801612ed1565b9350604086013591508082111561340e578283fd5b5061341b86828701612ed1565b9150509250925092565b6000806000806080858703121561343a578182fd5b843561344581613d4b565b9350602085013567ffffffffffffffff80821115613461578384fd5b61346d88838901612ed1565b94506040870135915080821115613482578384fd5b61348e88838901612ed1565b935060608701359150808211156134a3578283fd5b506134b087828801612f3f565b91505092959194509250565b600080604083850312156134ce578182fd5b82356134d981613d4b565b915060208301356130f481613d70565b600080600080608085870312156134fe578182fd5b843561350981613d4b565b935060208501359250604085013567ffffffffffffffff8082111561352c578384fd5b61348e88838901612f3f565b6000806040838503121561354a578182fd5b823561355581613d4b565b946020939093013593505050565b600080600060608486031215613577578081fd5b833561358281613d4b565b95602085013595506040909401359392505050565b600080600080608085870312156135ac578182fd5b84356135b781613d4b565b93506020850135925060408501359150606085013567ffffffffffffffff8111156135e0578182fd5b6134b087828801612f3f565b600080604083850312156135fe578182fd5b823567ffffffffffffffff80821115613615578384fd5b818501915085601f830112613628578384fd5b8135613636612eef82613cc1565b80828252602080830192508086018a828387028901011115613656578889fd5b8896505b8487101561368157803561366d81613d4b565b84526001969096019592810192810161365a565b509096508701359350505080821115613698578283fd5b506136a585828601612ed1565b9150509250929050565b6000602082840312156136c0578081fd5b8151612cdc81613d70565b6000602082840312156136dc578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612cdc578182fd5b6000806040838503121561371d578182fd5b825167ffffffffffffffff80821115613734578384fd5b61374086838701612f8d565b93506020850151915080821115613755578283fd5b506136a585828601612f8d565b600060208284031215613773578081fd5b815167ffffffffffffffff811115613789578182fd5b6115c784828501612fda565b600080604083850312156137a7578182fd5b825167ffffffffffffffff808211156137be578384fd5b61374086838701612fda565b6000602082840312156137db578081fd5b5035919050565b815160009082906020808601845b8381101561380c578151855293820193908201906001016137f0565b50929695505050505050565b6000845161382a818460208901613d1f565b91909101928352506020820152604001919050565b60008451613851818460208901613d1f565b82018481528351613869816020808501908801613d1f565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b8181101561392457835183529284019291840191600101613908565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b60006020825282518060208401526139d7816040850160208701613d1f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526033908201527f455243313135354d657461236d657461536166655472616e7366657246726f6d60408201527f3a20494e56414c49445f524543495049454e5400000000000000000000000000606082015260800190565b60208082526033908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f5349474e415455524500000000000000000000000000606082015260800190565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f455243313135354d657461235f7472616e736665724761734665653a2045524360408201527f32305f5452414e534645525f4641494c45440000000000000000000000000000606082015260800190565b60208082526038908201527f455243313135354d657461236d6574615361666542617463685472616e73666560408201527f7246726f6d3a20494e56414c49445f524543495049454e540000000000000000606082015260800190565b6020808252602f908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f4e4f4e43450000000000000000000000000000000000606082015260800190565b6020808252602e908201527f455243313135354d657461235f7472616e736665724761734665653a20554e5360408201527f5550504f525445445f544f4b454e000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715613cb957fe5b604052919050565b600067ffffffffffffffff821115613cd557fe5b5060209081020190565b600067ffffffffffffffff821115613cf357fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015613d3a578181015183820152602001613d22565b83811115610a835750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114613d6d57600080fd5b50565b8015158114613d6d57600080fdfe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f52455155495245444552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f524551554952454445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e455245524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147454c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544a2646970667358221220afda31fa355189ce453c48dd07cb0cbe445eb5385f57ff43407dbf58083ff66764736f6c63430007040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101505760003560e01c8063a22cb465116100cd578063d7a0ad9011610081578063f242432a11610066578063f242432a146102e4578063f5d4c820146102f7578063fa4e12d71461030a57610150565b8063d7a0ad90146102be578063e985e9c5146102d157610150565b8063a3f091f5116100b2578063a3f091f514610285578063bd7a6c4114610298578063ce0b514b146102ab57610150565b8063a22cb4651461025f578063a3d4926e1461027257610150565b80632d0335ab11610124578063437ecbe911610109578063437ecbe9146102245780634e1273f4146102375780636c0360eb1461025757610150565b80632d0335ab146101fc5780632eb2c2d61461020f57610150565b8062fdd58e1461018b57806301ffc9a7146101b457806306fdde03146101d45780630e89341c146101e9575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613ac3565b60405180910390fd5b61019e610199366004613538565b61031d565b6040516101ab9190613c94565b60405180910390f35b6101c76101c23660046136cb565b610350565b6040516101ab9190613930565b6101dc610363565b6040516101ab91906139b8565b6101dc6101f73660046137ca565b61040f565b61019e61020a366004613062565b610562565b61022261021d3660046131bc565b61058a565b005b610222610232366004613563565b610695565b61024a6102453660046135ec565b6106a5565b6040516101ab91906138ec565b6101dc6107f1565b61022261026d3660046134bc565b61086a565b6102226102803660046130ff565b610903565b610222610293366004613597565b610a77565b6102226102a63660046133b2565b610a89565b6102226102b93660046132df565b610a94565b6102226102cc366004613425565b610b73565b6101c76102df3660046130c7565b610b7f565b6102226102f2366004613357565b610bba565b610222610305366004613266565b610cbe565b6101c76103183660046134e9565b610dee565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b600061035b826115cf565b90505b919050565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104075780601f106103dc57610100808354040283529160200191610407565b820191906000526020600020905b8154815290600101906020018083116103ea57829003601f168201915b505050505081565b6060600361041c8361162c565b604051602001808380546001816001161561010002031660029004801561047a5780601f1061045857610100808354040283529182019161047a565b820191906000526020600020905b815481529060010190602001808311610466575b5050825160208401908083835b602083106104c457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610487565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff861614806105b357506105b38533610b7f565b610608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613fa6602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610674576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613ee76030913960400191505060405180910390fd5b61068085858585611758565b61068e858585855a86611aac565b5050505050565b6106a0838383611d19565b505050565b60608151835114610701576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613f47602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561071b57600080fd5b50604051908082528060200260200182016040528015610745578160200160208202803683370190505b50905060005b84518110156107e95760008086838151811061076357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106107b357fe5b60200260200101518152602001908152602001600020548282815181106107d657fe5b602090810291909101015260010161074b565b509392505050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104075780601f106103dc57610100808354040283529160200191610407565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8516610950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613b7d565b606061095a612e93565b6060610a0d89857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c60405160200161099891906137e2565b604051602081830303815290604052805190602001208c6040516020016109bf91906137e2565b604051602081830303815290604052805190602001208c6109e15760006109e4565b60015b6040516020016109f99695949392919061393b565b604051602081830303815290604052611dc4565b9050610a1b89898989611758565b8415610a5e5780806020019051810190610a359190613795565b8094508193505050610a4f89898989866020015188611aac565b610a598983611f93565b610a6c565b610a6c898989895a86611aac565b505050505050505050565b610a838484848461223c565b50505050565b6106a08383836122f1565b73ffffffffffffffffffffffffffffffffffffffff8516610ae1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613a09565b6060610aeb612e93565b6060610b2389857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c6109e15760006109e4565b9050610b3189898989612531565b8415610b655780806020019051810190610b4b9190613795565b8094508193505050610a4f89898989866020015188612634565b610a6c898989895a86612634565b610a8384848484612825565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610be35750610be38533610b7f565b610c38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613de1602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610ca4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613d7f602b913960400191505060405180910390fd5b610cb085858585612531565b61068e858585855a86612634565b6060610d1a86837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610cf4576000610cf7565b60015b89610d03576000610d06565b60015b6040516020016109f995949392919061397c565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610dae908890613930565b60405180910390a38215610de657610dc4612e93565b81806020019051810190610dd89190613762565b9050610de48782611f93565b505b505050505050565b600080825111610e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613fd56043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180613f736033913960400191505060405180910390fd5b6000610ec083612a6f565b60f81c905060058110610f1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613e40603a913960400191505060405180910390fd5b60008160ff166005811115610f2f57fe5b9050600080808080856005811115610f4357fe5b1415610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180613e7a6036913960400191505060405180910390fd5b6001856005811115610fa857fe5b14156110eb578751606114611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613eb06037913960400191505060405180910390fd5b611013886000612b2c565b9250611020886020612b2c565b91508760408151811061102f57fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611099573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d811691161497506115c79650505050505050565b60028560058111156110f957fe5b1415611249578751606114611159576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613eb06037913960400191505060405180910390fd5b611164886000612b2c565b9250611171886020612b2c565b91508760408151811061118057fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611099573d6000803e3d6000fd5b600385600581111561125757fe5b141561140f57604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b838110156112e55781810151838201526020016112cd565b50505050905090810190601f1680156113125780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561134557818101518382015260200161132d565b50505050905090810190601f1680156113725780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561139157600080fd5b505afa1580156113a5573d6000803e3d6000fd5b505050506040513d60208110156113bb57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b000000000000000000000000000000000000000000000000000000001496506115c795505050505050565b600485600581111561141d57fe5b141561157657604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b838110156114ad578181015183820152602001611495565b50505050905090810190601f1680156114da5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156114f857600080fd5b505afa15801561150c573d6000803e3d6000fd5b505050506040513d602081101561152257600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e000000000000000000000000000000000000000000000000000000001496506115c795505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613e40603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156116235750600161035e565b61035b82612b94565b60608161166d575060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015261035e565b818060005b821561168657600101600a83049250611672565b60608167ffffffffffffffff8111801561169f57600080fd5b506040519080825280601f01601f1916602001820160405280156116ca576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561174e57600a840660300160f81b8282806001900393508151811061171457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506116f1565b5095945050505050565b80518251146117b2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180613e0b6035913960400191505060405180910390fd5b815160005b818110156119a4576118478382815181106117ce57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087858151811061182257fe5b6020026020010151815260200190815260200160002054612bf190919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061189357fe5b60200260200101518152602001908152602001600020819055506119358382815181106118bc57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087858151811061191057fe5b6020026020010151815260200190815260200160002054612c6890919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061198157fe5b6020908102919091018101518252810191909152604001600020556001016117b7565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611a51578181015183820152602001611a39565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611a90578181015183820152602001611a78565b5050505090500194505050505060405180910390a45050505050565b611acb8573ffffffffffffffffffffffffffffffffffffffff16612ce3565b15610de65760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611b83578181015183820152602001611b6b565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611bc2578181015183820152602001611baa565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611bfe578181015183820152602001611be6565b50505050905090810190601f168015611c2b5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611c5057600080fd5b5087f1158015611c64573d6000803e3d6000fd5b50505050506040513d6020811015611c7b57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610de4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180614048603f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611d529082612bf1565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b60608083806020019051810190611ddb919061370b565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611e13836041612b2c565b9050818110801590611e2757508160640181105b611e5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613bda565b6000611e9986838780519060200120604051602001611e7e93929190613818565b60405160208183030381529060405280519060200120612d1a565b90506060868387604051602001611eb29392919061383f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf5991611f3d91613c94565b60405180910390a2611f5189838388610dee565b611f87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613a66565b50505050509392505050565b6000611fa28260600151612a6f565b60f81c905060028110611fe1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613c37565b60008160ff166002811115611ff257fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff161561202857866040015161202a565b335b9250600085600281111561203a57fe5b1415612139578660600151806020019051810190612058919061309a565b909450915073ffffffffffffffffffffffffffffffffffffffff84163014156120a95761208788848484612531565b6120a48884845a8560405180602001604052806000815250612634565b612134565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a90612101908b908790879087906004016138a7565b600060405180830381600087803b15801561211b57600080fd5b505af115801561212f573d6000803e3d6000fd5b505050505b612232565b8660600151806020019051810190612151919061307e565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd906121aa908b9087908690600401613876565b602060405180830381600087803b1580156121c457600080fd5b505af11580156121d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121fc91906136af565b612232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613b20565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208684529091529020546122759083612c68565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a4610a8360008585855a86612634565b81518151811461234c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613f176030913960400191505060405180910390fd5b60005b81811015612429576123ba83828151811061236657fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087858151811061182257fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061240657fe5b60209081029190910181015182528101919091526040016000205560010161234f565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156124d75781810151838201526020016124bf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156125165781810151838201526020016124fe565b5050505090500194505050505060405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832085845290915290205461256a9082612bf1565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546125ba9082612c68565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6126538573ffffffffffffffffffffffffffffffffffffffff16612ce3565b15610de65760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561270c5781810151838201526020016126f4565b50505050905090810190601f1680156127395780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561275c57600080fd5b5087f1158015612770573d6000803e3d6000fd5b50505050506040513d602081101561278757600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610de4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614087603a913960400191505060405180910390fd5b815183511461287f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806140186030913960400191505060405180910390fd5b825160005b8181101561295e576128ef84828151811061289b57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088858151811061191057fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087848151811061293b57fe5b602090810291909101810151825281019190915260400160002055600101612884565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612a0c5781810151838201526020016129f4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612a4b578181015183820152602001612a33565b5050505090500194505050505060405180910390a461068e60008686865a87611aac565b600080825111612aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613daa6037913960400191505060405180910390fd5b81600183510381518110612ada57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612b8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806140c1603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612be85750600161035e565b61035b82612e49565b600082821115612c6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015612cdc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590612cdc57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612de757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612daa565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f830112612ee1578081fd5b8135612ef4612eef82613cc1565b613c9d565b818152915060208083019084810181840286018201871015612f1557600080fd5b60005b84811015612f3457813584529282019290820190600101612f18565b505050505092915050565b600082601f830112612f4f578081fd5b8135612f5d612eef82613cdf565b9150808252836020828501011115612f7457600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112612f9d578081fd5b8151612fab612eef82613cdf565b9150808252836020828501011115612fc257600080fd5b612fd3816020840160208601613d1f565b5092915050565b600060808284031215612feb578081fd5b6040516080810167ffffffffffffffff828210818311171561300957fe5b8160405282935084518352602085015160208401526040850151915061302e82613d4b565b816040840152606085015191508082111561304857600080fd5b5061305585828601612f8d565b6060830152505092915050565b600060208284031215613073578081fd5b8135612cdc81613d4b565b60006020828403121561308f578081fd5b8151612cdc81613d4b565b600080604083850312156130ac578081fd5b82516130b781613d4b565b6020939093015192949293505050565b600080604083850312156130d9578182fd5b82356130e481613d4b565b915060208301356130f481613d4b565b809150509250929050565b60008060008060008060c08789031215613117578182fd5b863561312281613d4b565b9550602087013561313281613d4b565b9450604087013567ffffffffffffffff8082111561314e578384fd5b61315a8a838b01612ed1565b9550606089013591508082111561316f578384fd5b61317b8a838b01612ed1565b94506080890135915061318d82613d70565b90925060a088013590808211156131a2578283fd5b506131af89828a01612f3f565b9150509295509295509295565b600080600080600060a086880312156131d3578081fd5b85356131de81613d4b565b945060208601356131ee81613d4b565b9350604086013567ffffffffffffffff8082111561320a578283fd5b61321689838a01612ed1565b9450606088013591508082111561322b578283fd5b61323789838a01612ed1565b9350608088013591508082111561324c578283fd5b5061325988828901612f3f565b9150509295509295909350565b600080600080600060a0868803121561327d578081fd5b853561328881613d4b565b9450602086013561329881613d4b565b935060408601356132a881613d70565b925060608601356132b881613d70565b9150608086013567ffffffffffffffff8111156132d3578182fd5b61325988828901612f3f565b60008060008060008060c087890312156132f7578384fd5b863561330281613d4b565b9550602087013561331281613d4b565b94506040870135935060608701359250608087013561333081613d70565b915060a087013567ffffffffffffffff81111561334b578182fd5b6131af89828a01612f3f565b600080600080600060a0868803121561336e578283fd5b853561337981613d4b565b9450602086013561338981613d4b565b93506040860135925060608601359150608086013567ffffffffffffffff8111156132d3578182fd5b6000806000606084860312156133c6578081fd5b83356133d181613d4b565b9250602084013567ffffffffffffffff808211156133ed578283fd5b6133f987838801612ed1565b9350604086013591508082111561340e578283fd5b5061341b86828701612ed1565b9150509250925092565b6000806000806080858703121561343a578182fd5b843561344581613d4b565b9350602085013567ffffffffffffffff80821115613461578384fd5b61346d88838901612ed1565b94506040870135915080821115613482578384fd5b61348e88838901612ed1565b935060608701359150808211156134a3578283fd5b506134b087828801612f3f565b91505092959194509250565b600080604083850312156134ce578182fd5b82356134d981613d4b565b915060208301356130f481613d70565b600080600080608085870312156134fe578182fd5b843561350981613d4b565b935060208501359250604085013567ffffffffffffffff8082111561352c578384fd5b61348e88838901612f3f565b6000806040838503121561354a578182fd5b823561355581613d4b565b946020939093013593505050565b600080600060608486031215613577578081fd5b833561358281613d4b565b95602085013595506040909401359392505050565b600080600080608085870312156135ac578182fd5b84356135b781613d4b565b93506020850135925060408501359150606085013567ffffffffffffffff8111156135e0578182fd5b6134b087828801612f3f565b600080604083850312156135fe578182fd5b823567ffffffffffffffff80821115613615578384fd5b818501915085601f830112613628578384fd5b8135613636612eef82613cc1565b80828252602080830192508086018a828387028901011115613656578889fd5b8896505b8487101561368157803561366d81613d4b565b84526001969096019592810192810161365a565b509096508701359350505080821115613698578283fd5b506136a585828601612ed1565b9150509250929050565b6000602082840312156136c0578081fd5b8151612cdc81613d70565b6000602082840312156136dc578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612cdc578182fd5b6000806040838503121561371d578182fd5b825167ffffffffffffffff80821115613734578384fd5b61374086838701612f8d565b93506020850151915080821115613755578283fd5b506136a585828601612f8d565b600060208284031215613773578081fd5b815167ffffffffffffffff811115613789578182fd5b6115c784828501612fda565b600080604083850312156137a7578182fd5b825167ffffffffffffffff808211156137be578384fd5b61374086838701612fda565b6000602082840312156137db578081fd5b5035919050565b815160009082906020808601845b8381101561380c578151855293820193908201906001016137f0565b50929695505050505050565b6000845161382a818460208901613d1f565b91909101928352506020820152604001919050565b60008451613851818460208901613d1f565b82018481528351613869816020808501908801613d1f565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b8181101561392457835183529284019291840191600101613908565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b60006020825282518060208401526139d7816040850160208701613d1f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526033908201527f455243313135354d657461236d657461536166655472616e7366657246726f6d60408201527f3a20494e56414c49445f524543495049454e5400000000000000000000000000606082015260800190565b60208082526033908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f5349474e415455524500000000000000000000000000606082015260800190565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f455243313135354d657461235f7472616e736665724761734665653a2045524360408201527f32305f5452414e534645525f4641494c45440000000000000000000000000000606082015260800190565b60208082526038908201527f455243313135354d657461236d6574615361666542617463685472616e73666560408201527f7246726f6d3a20494e56414c49445f524543495049454e540000000000000000606082015260800190565b6020808252602f908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f4e4f4e43450000000000000000000000000000000000606082015260800190565b6020808252602e908201527f455243313135354d657461235f7472616e736665724761734665653a20554e5360408201527f5550504f525445445f544f4b454e000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715613cb957fe5b604052919050565b600067ffffffffffffffff821115613cd557fe5b5060209081020190565b600067ffffffffffffffff821115613cf357fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015613d3a578181015183820152602001613d22565b83811115610a835750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114613d6d57600080fd5b50565b8015158114613d6d57600080fdfe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f52455155495245444552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f524551554952454445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e455245524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147454c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544a2646970667358221220afda31fa355189ce453c48dd07cb0cbe445eb5385f57ff43407dbf58083ff66764736f6c63430007040033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/artifacts/contracts/mocks/ERC1155MetaMintBurnPackedBalanceMock.sol/ERC1155MetaMintBurnPackedBalanceMock.json b/src/artifacts/contracts/mocks/ERC1155MetaMintBurnPackedBalanceMock.sol/ERC1155MetaMintBurnPackedBalanceMock.json index e121b07..85b55cb 100644 --- a/src/artifacts/contracts/mocks/ERC1155MetaMintBurnPackedBalanceMock.sol/ERC1155MetaMintBurnPackedBalanceMock.json +++ b/src/artifacts/contracts/mocks/ERC1155MetaMintBurnPackedBalanceMock.sol/ERC1155MetaMintBurnPackedBalanceMock.json @@ -3,6 +3,22 @@ "contractName": "ERC1155MetaMintBurnPackedBalanceMock", "sourceName": "contracts/mocks/ERC1155MetaMintBurnPackedBalanceMock.sol", "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_baseURI", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, { "anonymous": false, "inputs": [ @@ -192,6 +208,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "baseURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -528,6 +557,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -651,8 +693,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061448c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101505760003560e01c8063a3f091f5116100cd578063e985e9c511610081578063f242432a11610066578063f242432a14610308578063f5d4c8201461031b578063fa4e12d71461032e57610150565b8063e985e9c5146102e2578063eaec5f81146102f557610150565b8063ce0b514b116100b2578063ce0b514b1461029b578063d7a0ad90146102ae578063db90e83c146102c157610150565b8063a3f091f514610275578063bd7a6c411461028857610150565b80632eb2c2d6116101245780634e1273f4116101095780634e1273f41461022f578063a22cb4651461024f578063a3d4926e1461026257610150565b80632eb2c2d614610207578063437ecbe91461021c57610150565b8062fdd58e1461018b57806301ffc9a7146101b45780630e89341c146101d45780632d0335ab146101f4575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613e20565b60405180910390fd5b61019e6101993660046136d8565b610341565b6040516101ab9190613e7d565b60405180910390f35b6101c76101c236600461386b565b610396565b6040516101ab9190613af1565b6101e76101e236600461396a565b6103a9565b6040516101ab9190613b79565b61019e610202366004613202565b6104fc565b61021a61021536600461335c565b610524565b005b61021a61022a366004613703565b61062f565b61024261023d36600461378c565b61063f565b6040516101ab9190613aad565b61021a61025d36600461365c565b6108be565b61021a61027036600461329f565b610957565b61021a610283366004613737565b610acb565b61021a610296366004613552565b610add565b61021a6102a936600461347f565b610ae8565b61021a6102bc3660046135c5565b610bc7565b6102d46102cf36600461396a565b610bd3565b6040516101ab929190613e86565b6101c76102f0366004613267565b610be0565b61019e610303366004613982565b610c1b565b61021a6103163660046134f7565b610c2e565b61021a610329366004613406565b610d32565b6101c761033c366004613689565b610e62565b600080600061034f84610bd3565b73ffffffffffffffffffffffffffffffffffffffff8716600090815260208181526040808320858452909152902054919350915061038d9082610c1b565b95945050505050565b60006103a182611643565b90505b919050565b606060036103b6836116a0565b60405160200180838054600181600116156101000203166002900480156104145780601f106103f2576101008083540402835291820191610414565b820191906000526020600020905b815481529060010190602001808311610400575b5050825160208401908083835b6020831061045e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610421565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff8616148061054d575061054d8533610be0565b6105a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806141c2603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661060e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180613faf603d913960400191505060405180910390fd5b61061a858585856117cc565b610628858585855a86611bd9565b5050505050565b61063a838383611e46565b505050565b8151815160609190811461069e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180613f766039913960400191505060405180910390fd5b6000806106be856000815181106106b157fe5b6020026020010151610bd3565b915091506000806000886000815181106106d457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561074857600080fd5b50604051908082528060200260200182016040528015610772578160200160208202803683370190505b50905061077f8385610c1b565b8160008151811061078c57fe5b602090810291909101015260015b868110156108b1576107b18982815181106106b157fe5b9096509450828614158061081a57508981815181106107cc57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106107f957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610888576000808b838151811061082e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6108928486610c1b565b82828151811061089e57fe5b602090810291909101015260010161079a565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff85166109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613d40565b60606109ae613033565b6060610a6189857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c6040516020016109ec91906139a3565b604051602081830303815290604052805190602001208c604051602001610a1391906139a3565b604051602081830303815290604052805190602001208c610a35576000610a38565b60015b604051602001610a4d96959493929190613afc565b604051602081830303815290604052611eb0565b9050610a6f898989896117cc565b8415610ab25780806020019051810190610a899190613935565b8094508193505050610aa389898989866020015188611bd9565b610aad898361207f565b610ac0565b610ac0898989895a86611bd9565b505050505050505050565b610ad784848484612328565b50505050565b61063a83838361239c565b73ffffffffffffffffffffffffffffffffffffffff8516610b35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613ce2565b6060610b3f613033565b6060610b7789857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c610a35576000610a38565b9050610b8589898989612545565b8415610bb95780806020019051810190610b9f9190613935565b8094508193505050610aa3898989898660200151886125e9565b610ac0898989895a866125e9565b610ad7848484846127da565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610c575750610c578533610be0565b610cac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806140906037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610d18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061432e6038913960400191505060405180910390fd5b610d2485858585612545565b610628858585855a866125e9565b6060610d8e86837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610d68576000610d6b565b60015b89610d77576000610d7a565b60015b604051602001610a4d959493929190613b3d565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610e22908890613af1565b60405180910390a38215610e5a57610e38613033565b81806020019051810190610e4c9190613902565b9050610e58878261207f565b505b505050505050565b600080825111610ebd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806142eb6043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610f29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806142716033913960400191505060405180910390fd5b6000610f3483612a64565b60f81c905060058110610f92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614056603a913960400191505060405180910390fd5b60008160ff166005811115610fa357fe5b9050600080808080856005811115610fb757fe5b141561100e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806140c76036913960400191505060405180910390fd5b600185600581111561101c57fe5b141561115f57875160611461107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061418b6037913960400191505060405180910390fd5b611087886000612b21565b9250611094886020612b21565b9150876040815181106110a357fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561110d573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d8116911614975061163b9650505050505050565b600285600581111561116d57fe5b14156112bd5787516061146111cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061418b6037913960400191505060405180910390fd5b6111d8886000612b21565b92506111e5886020612b21565b9150876040815181106111f457fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa15801561110d573d6000803e3d6000fd5b60038560058111156112cb57fe5b141561148357604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b83811015611359578181015183820152602001611341565b50505050905090810190601f1680156113865780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156113b95781810151838201526020016113a1565b50505050905090810190601f1680156113e65780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561140557600080fd5b505afa158015611419573d6000803e3d6000fd5b505050506040513d602081101561142f57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b0000000000000000000000000000000000000000000000000000000014965061163b95505050505050565b600485600581111561149157fe5b14156115ea57604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b83811015611521578181015183820152602001611509565b50505050905090810190601f16801561154e5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561156c57600080fd5b505afa158015611580573d6000803e3d6000fd5b505050506040513d602081101561159657600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014965061163b95505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614056603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c000000000000000000000000000000000000000000000000000000001415611697575060016103a4565b6103a182612b89565b6060816116e1575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526103a4565b818060005b82156116fa57600101600a830492506116e6565b60608167ffffffffffffffff8111801561171357600080fd5b506040519080825280601f01601f19166020018201604052801561173e576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b83156117c257600a840660300160f81b8282806001900393508151811061178857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611765565b5095945050505050565b815181518114611827576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806140fd6042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156118635750600081115b15611a355760008061187b856000815181106106b157fe5b73ffffffffffffffffffffffffffffffffffffffff89166000908152602081815260408083208584529091528120548751939550919350916118d391908490889085906118c457fe5b60200260200101516001612be6565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091611929919085908990859061191a57fe5b60200260200101516000612be6565b90508360015b868110156119e3576119468982815181106106b157fe5b90965094508186146119b55773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b6119c684868a84815181106118c457fe5b93506119d983868a848151811061191a57fe5b925060010161192f565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550611ad2565b60005b81811015611ad057828181518110611a4c57fe5b6020026020010151611a7187868481518110611a6457fe5b6020026020010151610341565b1015611ac8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061423b6036913960400191505060405180910390fd5b600101611a38565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611b7e578181015183820152602001611b66565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611bbd578181015183820152602001611ba5565b5050505090500194505050505060405180910390a45050505050565b611bf88573ffffffffffffffffffffffffffffffffffffffff16612df9565b15610e5a5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611cb0578181015183820152602001611c98565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611cef578181015183820152602001611cd7565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611d2b578181015183820152602001611d13565b50505050905090810190601f168015611d585780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611d7d57600080fd5b5087f1158015611d91573d6000803e3d6000fd5b50505050506040513d6020811015611da857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610e58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c81526020018061413f604c913960600191505060405180910390fd5b611e538383836001612e33565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b60608083806020019051810190611ec791906138ab565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611eff836041612b21565b9050818110801590611f1357508160640181105b611f49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613c27565b6000611f8586838780519060200120604051602001611f6a939291906139d9565b60405160208183030381529060405280519060200120612eba565b90506060868387604051602001611f9e93929190613a00565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf599161202991613e7d565b60405180910390a261203d89838388610e62565b612073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613c84565b50505050509392505050565b600061208e8260600151612a64565b60f81c9050600281106120cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613dc3565b60008160ff1660028111156120de57fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff1615612114578660400151612116565b335b9250600085600281111561212657fe5b1415612225578660600151806020019051810190612144919061323a565b909450915073ffffffffffffffffffffffffffffffffffffffff84163014156121955761217388848484612545565b6121908884845a85604051806020016040528060008152506125e9565b612220565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a906121ed908b90879087908790600401613a68565b600060405180830381600087803b15801561220757600080fd5b505af115801561221b573d6000803e3d6000fd5b505050505b61231e565b866060015180602001905181019061223d919061321e565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd90612296908b9087908690600401613a37565b602060405180830381600087803b1580156122b057600080fd5b505af11580156122c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e8919061384f565b61231e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613bca565b5050505050505050565b6123358484846000612e33565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610ad760008585855a866125e9565b8151815181146123f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806141fe603d913960400191505060405180910390fd5b60005b8181101561243d576124358585838151811061241257fe5b602002602001015185848151811061242657fe5b60200260200101516001612e33565b6001016123fa565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156124eb5781810151838201526020016124d3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561252a578181015183820152602001612512565b5050505090500194505050505060405180910390a450505050565b6125528483836001612e33565b61255f8383836000612e33565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6126088573ffffffffffffffffffffffffffffffffffffffff16612df9565b15610e5a5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156126c15781810151838201526020016126a9565b50505050905090810190601f1680156126ee5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561271157600080fd5b5087f1158015612725573d6000803e3d6000fd5b50505050506040513d602081101561273c57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610e58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806142a46047913960600191505060405180910390fd5b8151835114612834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806143e7603e913960400191505060405180910390fd5b8251156129545760008061284e856000815181106106b157fe5b73ffffffffffffffffffffffffffffffffffffffff8816600090815260208181526040808320858452909152812054875193955091935091612897919084908890859061191a57fe5b86519091508360015b8281101561291b576128b78982815181106106b157fe5b90965094508186146129005773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b61291184868a848151811061191a57fe5b93506001016128a0565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612a015781810151838201526020016129e9565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612a40578181015183820152602001612a28565b5050505090500194505050505060405180910390a4610ad760008585855a86611bd9565b600080825111612abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613fec6037913960400191505060405180910390fd5b81600183510381518110612acf57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612b80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180614366603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612bdd575060016103a4565b6103a182612fe9565b60006020840263ffffffff82846001811115612bfe57fe5b1415612ccc5784821b8701925086831015612c64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806144256032913960400191505060405180910390fd5b64010000000087831c8216860110612cc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806144256032913960400191505060405180910390fd5b612def565b6001846001811115612cda57fe5b1415612d9e5784821b8703925086831115612d40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806140236033913960400191505060405180910390fd5b84818389901c161015612cc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806140236033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806143a26045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612e2c57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080612e3f85610bd3565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150612e7f90828686612be6565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612f8757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612f4a565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f830112613081578081fd5b813561309461308f82613eb8565b613e94565b8181529150602080830190848101818402860182018710156130b557600080fd5b60005b848110156130d4578135845292820192908201906001016130b8565b505050505092915050565b600082601f8301126130ef578081fd5b81356130fd61308f82613ed6565b915080825283602082850101111561311457600080fd5b8060208401602084013760009082016020015292915050565b600082601f83011261313d578081fd5b815161314b61308f82613ed6565b915080825283602082850101111561316257600080fd5b613173816020840160208601613f16565b5092915050565b60006080828403121561318b578081fd5b6040516080810167ffffffffffffffff82821081831117156131a957fe5b816040528293508451835260208501516020840152604085015191506131ce82613f42565b81604084015260608501519150808211156131e857600080fd5b506131f58582860161312d565b6060830152505092915050565b600060208284031215613213578081fd5b8135612e2c81613f42565b60006020828403121561322f578081fd5b8151612e2c81613f42565b6000806040838503121561324c578081fd5b825161325781613f42565b6020939093015192949293505050565b60008060408385031215613279578182fd5b823561328481613f42565b9150602083013561329481613f42565b809150509250929050565b60008060008060008060c087890312156132b7578182fd5b86356132c281613f42565b955060208701356132d281613f42565b9450604087013567ffffffffffffffff808211156132ee578384fd5b6132fa8a838b01613071565b9550606089013591508082111561330f578384fd5b61331b8a838b01613071565b94506080890135915061332d82613f67565b90925060a08801359080821115613342578283fd5b5061334f89828a016130df565b9150509295509295509295565b600080600080600060a08688031215613373578081fd5b853561337e81613f42565b9450602086013561338e81613f42565b9350604086013567ffffffffffffffff808211156133aa578283fd5b6133b689838a01613071565b945060608801359150808211156133cb578283fd5b6133d789838a01613071565b935060808801359150808211156133ec578283fd5b506133f9888289016130df565b9150509295509295909350565b600080600080600060a0868803121561341d578081fd5b853561342881613f42565b9450602086013561343881613f42565b9350604086013561344881613f67565b9250606086013561345881613f67565b9150608086013567ffffffffffffffff811115613473578182fd5b6133f9888289016130df565b60008060008060008060c08789031215613497578384fd5b86356134a281613f42565b955060208701356134b281613f42565b9450604087013593506060870135925060808701356134d081613f67565b915060a087013567ffffffffffffffff8111156134eb578182fd5b61334f89828a016130df565b600080600080600060a0868803121561350e578283fd5b853561351981613f42565b9450602086013561352981613f42565b93506040860135925060608601359150608086013567ffffffffffffffff811115613473578182fd5b600080600060608486031215613566578081fd5b833561357181613f42565b9250602084013567ffffffffffffffff8082111561358d578283fd5b61359987838801613071565b935060408601359150808211156135ae578283fd5b506135bb86828701613071565b9150509250925092565b600080600080608085870312156135da578182fd5b84356135e581613f42565b9350602085013567ffffffffffffffff80821115613601578384fd5b61360d88838901613071565b94506040870135915080821115613622578384fd5b61362e88838901613071565b93506060870135915080821115613643578283fd5b50613650878288016130df565b91505092959194509250565b6000806040838503121561366e578182fd5b823561367981613f42565b9150602083013561329481613f67565b6000806000806080858703121561369e578182fd5b84356136a981613f42565b935060208501359250604085013567ffffffffffffffff808211156136cc578384fd5b61362e888389016130df565b600080604083850312156136ea578182fd5b82356136f581613f42565b946020939093013593505050565b600080600060608486031215613717578081fd5b833561372281613f42565b95602085013595506040909401359392505050565b6000806000806080858703121561374c578182fd5b843561375781613f42565b93506020850135925060408501359150606085013567ffffffffffffffff811115613780578182fd5b613650878288016130df565b6000806040838503121561379e578182fd5b823567ffffffffffffffff808211156137b5578384fd5b818501915085601f8301126137c8578384fd5b81356137d661308f82613eb8565b80828252602080830192508086018a8283870289010111156137f6578889fd5b8896505b8487101561382157803561380d81613f42565b8452600196909601959281019281016137fa565b509096508701359350505080821115613838578283fd5b5061384585828601613071565b9150509250929050565b600060208284031215613860578081fd5b8151612e2c81613f67565b60006020828403121561387c578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612e2c578182fd5b600080604083850312156138bd578182fd5b825167ffffffffffffffff808211156138d4578384fd5b6138e08683870161312d565b935060208501519150808211156138f5578283fd5b506138458582860161312d565b600060208284031215613913578081fd5b815167ffffffffffffffff811115613929578182fd5b61163b8482850161317a565b60008060408385031215613947578182fd5b825167ffffffffffffffff8082111561395e578384fd5b6138e08683870161317a565b60006020828403121561397b578081fd5b5035919050565b60008060408385031215613994578182fd5b50508035926020909101359150565b815160009082906020808601845b838110156139cd578151855293820193908201906001016139b1565b50929695505050505050565b600084516139eb818460208901613f16565b91909101928352506020820152604001919050565b60008451613a12818460208901613f16565b82018481528351613a2a816020808501908801613f16565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b81811015613ae557835183529284019291840191600101613ac9565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b6000602082528251806020840152613b98816040850160208701613f16565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6020808252603f908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a2045524332305f5452414e534645525f4641494c454400606082015260800190565b6020808252603c908201527f455243313135354d6574615061636b656442616c616e6365235f7369676e617460408201527f75726556616c69646174696f6e3a20494e56414c49445f4e4f4e434500000000606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365235f7369676e6174908201527f75726556616c69646174696f6e3a20494e56414c49445f5349474e4154555245606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365236d657461536166908201527f655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54606082015260800190565b60208082526045908201527f455243313135354d6574615061636b656442616c616e6365236d65746153616660408201527f6542617463685472616e7366657246726f6d3a20494e56414c49445f5245434960608201527f5049454e54000000000000000000000000000000000000000000000000000000608082015260a00190565b6020808252603b908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a20554e535550504f525445445f544f4b454e0000000000606082015260800190565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715613eb057fe5b604052919050565b600067ffffffffffffffff821115613ecc57fe5b5060209081020190565b600067ffffffffffffffff821115613eea57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015613f31578181015183820152602001613f19565b83811115610ad75750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114613f6457600080fd5b50565b8015158114613f6457600080fdfe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e4154555245455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e4154555245455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f5245515549524544455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e4552455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a264697066735822122019be05877fb85bb8642e043044f9c6ceb709fe50b18d08c0aa3d18114927e9bd64736f6c63430007040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101505760003560e01c8063a3f091f5116100cd578063e985e9c511610081578063f242432a11610066578063f242432a14610308578063f5d4c8201461031b578063fa4e12d71461032e57610150565b8063e985e9c5146102e2578063eaec5f81146102f557610150565b8063ce0b514b116100b2578063ce0b514b1461029b578063d7a0ad90146102ae578063db90e83c146102c157610150565b8063a3f091f514610275578063bd7a6c411461028857610150565b80632eb2c2d6116101245780634e1273f4116101095780634e1273f41461022f578063a22cb4651461024f578063a3d4926e1461026257610150565b80632eb2c2d614610207578063437ecbe91461021c57610150565b8062fdd58e1461018b57806301ffc9a7146101b45780630e89341c146101d45780632d0335ab146101f4575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613e20565b60405180910390fd5b61019e6101993660046136d8565b610341565b6040516101ab9190613e7d565b60405180910390f35b6101c76101c236600461386b565b610396565b6040516101ab9190613af1565b6101e76101e236600461396a565b6103a9565b6040516101ab9190613b79565b61019e610202366004613202565b6104fc565b61021a61021536600461335c565b610524565b005b61021a61022a366004613703565b61062f565b61024261023d36600461378c565b61063f565b6040516101ab9190613aad565b61021a61025d36600461365c565b6108be565b61021a61027036600461329f565b610957565b61021a610283366004613737565b610acb565b61021a610296366004613552565b610add565b61021a6102a936600461347f565b610ae8565b61021a6102bc3660046135c5565b610bc7565b6102d46102cf36600461396a565b610bd3565b6040516101ab929190613e86565b6101c76102f0366004613267565b610be0565b61019e610303366004613982565b610c1b565b61021a6103163660046134f7565b610c2e565b61021a610329366004613406565b610d32565b6101c761033c366004613689565b610e62565b600080600061034f84610bd3565b73ffffffffffffffffffffffffffffffffffffffff8716600090815260208181526040808320858452909152902054919350915061038d9082610c1b565b95945050505050565b60006103a182611643565b90505b919050565b606060036103b6836116a0565b60405160200180838054600181600116156101000203166002900480156104145780601f106103f2576101008083540402835291820191610414565b820191906000526020600020905b815481529060010190602001808311610400575b5050825160208401908083835b6020831061045e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610421565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff8616148061054d575061054d8533610be0565b6105a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806141c2603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661060e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180613faf603d913960400191505060405180910390fd5b61061a858585856117cc565b610628858585855a86611bd9565b5050505050565b61063a838383611e46565b505050565b8151815160609190811461069e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180613f766039913960400191505060405180910390fd5b6000806106be856000815181106106b157fe5b6020026020010151610bd3565b915091506000806000886000815181106106d457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561074857600080fd5b50604051908082528060200260200182016040528015610772578160200160208202803683370190505b50905061077f8385610c1b565b8160008151811061078c57fe5b602090810291909101015260015b868110156108b1576107b18982815181106106b157fe5b9096509450828614158061081a57508981815181106107cc57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106107f957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610888576000808b838151811061082e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6108928486610c1b565b82828151811061089e57fe5b602090810291909101015260010161079a565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff85166109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613d40565b60606109ae613033565b6060610a6189857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c6040516020016109ec91906139a3565b604051602081830303815290604052805190602001208c604051602001610a1391906139a3565b604051602081830303815290604052805190602001208c610a35576000610a38565b60015b604051602001610a4d96959493929190613afc565b604051602081830303815290604052611eb0565b9050610a6f898989896117cc565b8415610ab25780806020019051810190610a899190613935565b8094508193505050610aa389898989866020015188611bd9565b610aad898361207f565b610ac0565b610ac0898989895a86611bd9565b505050505050505050565b610ad784848484612328565b50505050565b61063a83838361239c565b73ffffffffffffffffffffffffffffffffffffffff8516610b35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613ce2565b6060610b3f613033565b6060610b7789857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c610a35576000610a38565b9050610b8589898989612545565b8415610bb95780806020019051810190610b9f9190613935565b8094508193505050610aa3898989898660200151886125e9565b610ac0898989895a866125e9565b610ad7848484846127da565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610c575750610c578533610be0565b610cac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806140906037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610d18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061432e6038913960400191505060405180910390fd5b610d2485858585612545565b610628858585855a866125e9565b6060610d8e86837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610d68576000610d6b565b60015b89610d77576000610d7a565b60015b604051602001610a4d959493929190613b3d565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610e22908890613af1565b60405180910390a38215610e5a57610e38613033565b81806020019051810190610e4c9190613902565b9050610e58878261207f565b505b505050505050565b600080825111610ebd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806142eb6043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610f29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806142716033913960400191505060405180910390fd5b6000610f3483612a64565b60f81c905060058110610f92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614056603a913960400191505060405180910390fd5b60008160ff166005811115610fa357fe5b9050600080808080856005811115610fb757fe5b141561100e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806140c76036913960400191505060405180910390fd5b600185600581111561101c57fe5b141561115f57875160611461107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061418b6037913960400191505060405180910390fd5b611087886000612b21565b9250611094886020612b21565b9150876040815181106110a357fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561110d573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d8116911614975061163b9650505050505050565b600285600581111561116d57fe5b14156112bd5787516061146111cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061418b6037913960400191505060405180910390fd5b6111d8886000612b21565b92506111e5886020612b21565b9150876040815181106111f457fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa15801561110d573d6000803e3d6000fd5b60038560058111156112cb57fe5b141561148357604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b83811015611359578181015183820152602001611341565b50505050905090810190601f1680156113865780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156113b95781810151838201526020016113a1565b50505050905090810190601f1680156113e65780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561140557600080fd5b505afa158015611419573d6000803e3d6000fd5b505050506040513d602081101561142f57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b0000000000000000000000000000000000000000000000000000000014965061163b95505050505050565b600485600581111561149157fe5b14156115ea57604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b83811015611521578181015183820152602001611509565b50505050905090810190601f16801561154e5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561156c57600080fd5b505afa158015611580573d6000803e3d6000fd5b505050506040513d602081101561159657600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014965061163b95505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614056603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c000000000000000000000000000000000000000000000000000000001415611697575060016103a4565b6103a182612b89565b6060816116e1575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526103a4565b818060005b82156116fa57600101600a830492506116e6565b60608167ffffffffffffffff8111801561171357600080fd5b506040519080825280601f01601f19166020018201604052801561173e576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b83156117c257600a840660300160f81b8282806001900393508151811061178857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611765565b5095945050505050565b815181518114611827576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806140fd6042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156118635750600081115b15611a355760008061187b856000815181106106b157fe5b73ffffffffffffffffffffffffffffffffffffffff89166000908152602081815260408083208584529091528120548751939550919350916118d391908490889085906118c457fe5b60200260200101516001612be6565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091611929919085908990859061191a57fe5b60200260200101516000612be6565b90508360015b868110156119e3576119468982815181106106b157fe5b90965094508186146119b55773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b6119c684868a84815181106118c457fe5b93506119d983868a848151811061191a57fe5b925060010161192f565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550611ad2565b60005b81811015611ad057828181518110611a4c57fe5b6020026020010151611a7187868481518110611a6457fe5b6020026020010151610341565b1015611ac8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061423b6036913960400191505060405180910390fd5b600101611a38565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611b7e578181015183820152602001611b66565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611bbd578181015183820152602001611ba5565b5050505090500194505050505060405180910390a45050505050565b611bf88573ffffffffffffffffffffffffffffffffffffffff16612df9565b15610e5a5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611cb0578181015183820152602001611c98565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611cef578181015183820152602001611cd7565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611d2b578181015183820152602001611d13565b50505050905090810190601f168015611d585780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611d7d57600080fd5b5087f1158015611d91573d6000803e3d6000fd5b50505050506040513d6020811015611da857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610e58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c81526020018061413f604c913960600191505060405180910390fd5b611e538383836001612e33565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b60608083806020019051810190611ec791906138ab565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611eff836041612b21565b9050818110801590611f1357508160640181105b611f49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613c27565b6000611f8586838780519060200120604051602001611f6a939291906139d9565b60405160208183030381529060405280519060200120612eba565b90506060868387604051602001611f9e93929190613a00565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf599161202991613e7d565b60405180910390a261203d89838388610e62565b612073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613c84565b50505050509392505050565b600061208e8260600151612a64565b60f81c9050600281106120cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613dc3565b60008160ff1660028111156120de57fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff1615612114578660400151612116565b335b9250600085600281111561212657fe5b1415612225578660600151806020019051810190612144919061323a565b909450915073ffffffffffffffffffffffffffffffffffffffff84163014156121955761217388848484612545565b6121908884845a85604051806020016040528060008152506125e9565b612220565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a906121ed908b90879087908790600401613a68565b600060405180830381600087803b15801561220757600080fd5b505af115801561221b573d6000803e3d6000fd5b505050505b61231e565b866060015180602001905181019061223d919061321e565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd90612296908b9087908690600401613a37565b602060405180830381600087803b1580156122b057600080fd5b505af11580156122c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e8919061384f565b61231e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613bca565b5050505050505050565b6123358484846000612e33565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610ad760008585855a866125e9565b8151815181146123f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806141fe603d913960400191505060405180910390fd5b60005b8181101561243d576124358585838151811061241257fe5b602002602001015185848151811061242657fe5b60200260200101516001612e33565b6001016123fa565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156124eb5781810151838201526020016124d3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561252a578181015183820152602001612512565b5050505090500194505050505060405180910390a450505050565b6125528483836001612e33565b61255f8383836000612e33565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6126088573ffffffffffffffffffffffffffffffffffffffff16612df9565b15610e5a5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156126c15781810151838201526020016126a9565b50505050905090810190601f1680156126ee5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561271157600080fd5b5087f1158015612725573d6000803e3d6000fd5b50505050506040513d602081101561273c57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610e58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806142a46047913960600191505060405180910390fd5b8151835114612834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806143e7603e913960400191505060405180910390fd5b8251156129545760008061284e856000815181106106b157fe5b73ffffffffffffffffffffffffffffffffffffffff8816600090815260208181526040808320858452909152812054875193955091935091612897919084908890859061191a57fe5b86519091508360015b8281101561291b576128b78982815181106106b157fe5b90965094508186146129005773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b61291184868a848151811061191a57fe5b93506001016128a0565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612a015781810151838201526020016129e9565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612a40578181015183820152602001612a28565b5050505090500194505050505060405180910390a4610ad760008585855a86611bd9565b600080825111612abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613fec6037913960400191505060405180910390fd5b81600183510381518110612acf57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612b80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180614366603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612bdd575060016103a4565b6103a182612fe9565b60006020840263ffffffff82846001811115612bfe57fe5b1415612ccc5784821b8701925086831015612c64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806144256032913960400191505060405180910390fd5b64010000000087831c8216860110612cc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806144256032913960400191505060405180910390fd5b612def565b6001846001811115612cda57fe5b1415612d9e5784821b8703925086831115612d40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806140236033913960400191505060405180910390fd5b84818389901c161015612cc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806140236033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806143a26045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612e2c57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080612e3f85610bd3565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150612e7f90828686612be6565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612f8757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612f4a565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f830112613081578081fd5b813561309461308f82613eb8565b613e94565b8181529150602080830190848101818402860182018710156130b557600080fd5b60005b848110156130d4578135845292820192908201906001016130b8565b505050505092915050565b600082601f8301126130ef578081fd5b81356130fd61308f82613ed6565b915080825283602082850101111561311457600080fd5b8060208401602084013760009082016020015292915050565b600082601f83011261313d578081fd5b815161314b61308f82613ed6565b915080825283602082850101111561316257600080fd5b613173816020840160208601613f16565b5092915050565b60006080828403121561318b578081fd5b6040516080810167ffffffffffffffff82821081831117156131a957fe5b816040528293508451835260208501516020840152604085015191506131ce82613f42565b81604084015260608501519150808211156131e857600080fd5b506131f58582860161312d565b6060830152505092915050565b600060208284031215613213578081fd5b8135612e2c81613f42565b60006020828403121561322f578081fd5b8151612e2c81613f42565b6000806040838503121561324c578081fd5b825161325781613f42565b6020939093015192949293505050565b60008060408385031215613279578182fd5b823561328481613f42565b9150602083013561329481613f42565b809150509250929050565b60008060008060008060c087890312156132b7578182fd5b86356132c281613f42565b955060208701356132d281613f42565b9450604087013567ffffffffffffffff808211156132ee578384fd5b6132fa8a838b01613071565b9550606089013591508082111561330f578384fd5b61331b8a838b01613071565b94506080890135915061332d82613f67565b90925060a08801359080821115613342578283fd5b5061334f89828a016130df565b9150509295509295509295565b600080600080600060a08688031215613373578081fd5b853561337e81613f42565b9450602086013561338e81613f42565b9350604086013567ffffffffffffffff808211156133aa578283fd5b6133b689838a01613071565b945060608801359150808211156133cb578283fd5b6133d789838a01613071565b935060808801359150808211156133ec578283fd5b506133f9888289016130df565b9150509295509295909350565b600080600080600060a0868803121561341d578081fd5b853561342881613f42565b9450602086013561343881613f42565b9350604086013561344881613f67565b9250606086013561345881613f67565b9150608086013567ffffffffffffffff811115613473578182fd5b6133f9888289016130df565b60008060008060008060c08789031215613497578384fd5b86356134a281613f42565b955060208701356134b281613f42565b9450604087013593506060870135925060808701356134d081613f67565b915060a087013567ffffffffffffffff8111156134eb578182fd5b61334f89828a016130df565b600080600080600060a0868803121561350e578283fd5b853561351981613f42565b9450602086013561352981613f42565b93506040860135925060608601359150608086013567ffffffffffffffff811115613473578182fd5b600080600060608486031215613566578081fd5b833561357181613f42565b9250602084013567ffffffffffffffff8082111561358d578283fd5b61359987838801613071565b935060408601359150808211156135ae578283fd5b506135bb86828701613071565b9150509250925092565b600080600080608085870312156135da578182fd5b84356135e581613f42565b9350602085013567ffffffffffffffff80821115613601578384fd5b61360d88838901613071565b94506040870135915080821115613622578384fd5b61362e88838901613071565b93506060870135915080821115613643578283fd5b50613650878288016130df565b91505092959194509250565b6000806040838503121561366e578182fd5b823561367981613f42565b9150602083013561329481613f67565b6000806000806080858703121561369e578182fd5b84356136a981613f42565b935060208501359250604085013567ffffffffffffffff808211156136cc578384fd5b61362e888389016130df565b600080604083850312156136ea578182fd5b82356136f581613f42565b946020939093013593505050565b600080600060608486031215613717578081fd5b833561372281613f42565b95602085013595506040909401359392505050565b6000806000806080858703121561374c578182fd5b843561375781613f42565b93506020850135925060408501359150606085013567ffffffffffffffff811115613780578182fd5b613650878288016130df565b6000806040838503121561379e578182fd5b823567ffffffffffffffff808211156137b5578384fd5b818501915085601f8301126137c8578384fd5b81356137d661308f82613eb8565b80828252602080830192508086018a8283870289010111156137f6578889fd5b8896505b8487101561382157803561380d81613f42565b8452600196909601959281019281016137fa565b509096508701359350505080821115613838578283fd5b5061384585828601613071565b9150509250929050565b600060208284031215613860578081fd5b8151612e2c81613f67565b60006020828403121561387c578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612e2c578182fd5b600080604083850312156138bd578182fd5b825167ffffffffffffffff808211156138d4578384fd5b6138e08683870161312d565b935060208501519150808211156138f5578283fd5b506138458582860161312d565b600060208284031215613913578081fd5b815167ffffffffffffffff811115613929578182fd5b61163b8482850161317a565b60008060408385031215613947578182fd5b825167ffffffffffffffff8082111561395e578384fd5b6138e08683870161317a565b60006020828403121561397b578081fd5b5035919050565b60008060408385031215613994578182fd5b50508035926020909101359150565b815160009082906020808601845b838110156139cd578151855293820193908201906001016139b1565b50929695505050505050565b600084516139eb818460208901613f16565b91909101928352506020820152604001919050565b60008451613a12818460208901613f16565b82018481528351613a2a816020808501908801613f16565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b81811015613ae557835183529284019291840191600101613ac9565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b6000602082528251806020840152613b98816040850160208701613f16565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6020808252603f908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a2045524332305f5452414e534645525f4641494c454400606082015260800190565b6020808252603c908201527f455243313135354d6574615061636b656442616c616e6365235f7369676e617460408201527f75726556616c69646174696f6e3a20494e56414c49445f4e4f4e434500000000606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365235f7369676e6174908201527f75726556616c69646174696f6e3a20494e56414c49445f5349474e4154555245606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365236d657461536166908201527f655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54606082015260800190565b60208082526045908201527f455243313135354d6574615061636b656442616c616e6365236d65746153616660408201527f6542617463685472616e7366657246726f6d3a20494e56414c49445f5245434960608201527f5049454e54000000000000000000000000000000000000000000000000000000608082015260a00190565b6020808252603b908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a20554e535550504f525445445f544f4b454e0000000000606082015260800190565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715613eb057fe5b604052919050565b600067ffffffffffffffff821115613ecc57fe5b5060209081020190565b600067ffffffffffffffff821115613eea57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015613f31578181015183820152602001613f19565b83811115610ad75750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114613f6457600080fd5b50565b8015158114613f6457600080fdfe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e4154555245455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e4154555245455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f5245515549524544455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e4552455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a264697066735822122019be05877fb85bb8642e043044f9c6ceb709fe50b18d08c0aa3d18114927e9bd64736f6c63430007040033", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200483b3803806200483b8339810160408190526200003491620001dc565b8151829082906200004d9060049060208501906200006e565b508051620000639060039060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b6145e780620002546000396000f3fe608060405234801561001057600080fd5b50600436106101765760003560e01c8063a3d4926e116100d8578063db90e83c1161008c578063f242432a11610066578063f242432a1461033e578063f5d4c82014610351578063fa4e12d71461036457610176565b8063db90e83c146102f7578063e985e9c514610318578063eaec5f811461032b57610176565b8063bd7a6c41116100bd578063bd7a6c41146102be578063ce0b514b146102d1578063d7a0ad90146102e457610176565b8063a3d4926e14610298578063a3f091f5146102ab57610176565b80632eb2c2d61161012f5780634e1273f4116101145780634e1273f41461025d5780636c0360eb1461027d578063a22cb4651461028557610176565b80632eb2c2d614610235578063437ecbe91461024a57610176565b806306fdde031161016057806306fdde03146101fa5780630e89341c1461020f5780632d0335ab1461022257610176565b8062fdd58e146101b157806301ffc9a7146101da575b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613f7b565b60405180910390fd5b6101c46101bf366004613833565b610377565b6040516101d19190613fd8565b60405180910390f35b6101ed6101e83660046139c6565b6103cc565b6040516101d19190613c4c565b6102026103df565b6040516101d19190613cd4565b61020261021d366004613ac5565b61048b565b6101c461023036600461335d565b6105de565b6102486102433660046134b7565b610606565b005b61024861025836600461385e565b610711565b61027061026b3660046138e7565b610721565b6040516101d19190613c08565b6102026109a0565b6102486102933660046137b7565b610a19565b6102486102a63660046133fa565b610ab2565b6102486102b9366004613892565b610c26565b6102486102cc3660046136ad565b610c38565b6102486102df3660046135da565b610c43565b6102486102f2366004613720565b610d22565b61030a610305366004613ac5565b610d2e565b6040516101d1929190613fe1565b6101ed6103263660046133c2565b610d3b565b6101c4610339366004613add565b610d76565b61024861034c366004613652565b610d89565b61024861035f366004613561565b610e8d565b6101ed6103723660046137e4565b610fbd565b600080600061038584610d2e565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506103c39082610d76565b95945050505050565b60006103d78261179e565b90505b919050565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104835780601f1061045857610100808354040283529160200191610483565b820191906000526020600020905b81548152906001019060200180831161046657829003601f168201915b505050505081565b60606003610498836117fb565b60405160200180838054600181600116156101000203166002900480156104f65780601f106104d45761010080835404028352918201916104f6565b820191906000526020600020905b8154815290600101906020018083116104e2575b5050825160208401908083835b6020831061054057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610503565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff8616148061062f575061062f8533610d3b565b610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c81526020018061431d603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166106f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061410a603d913960400191505060405180910390fd5b6106fc85858585611927565b61070a858585855a86611d34565b5050505050565b61071c838383611fa1565b505050565b81518151606091908114610780576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806140d16039913960400191505060405180910390fd5b6000806107a08560008151811061079357fe5b6020026020010151610d2e565b915091506000806000886000815181106107b657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561082a57600080fd5b50604051908082528060200260200182016040528015610854578160200160208202803683370190505b5090506108618385610d76565b8160008151811061086e57fe5b602090810291909101015260015b868110156109935761089389828151811061079357fe5b909650945082861415806108fc57508981815181106108ae57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106108db57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561096a576000808b838151811061091057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6109748486610d76565b82828151811061098057fe5b602090810291909101015260010161087c565b5098975050505050505050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104835780601f1061045857610100808354040283529160200191610483565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8516610aff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613e9b565b6060610b0961318e565b6060610bbc89857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c604051602001610b479190613afe565b604051602081830303815290604052805190602001208c604051602001610b6e9190613afe565b604051602081830303815290604052805190602001208c610b90576000610b93565b60015b604051602001610ba896959493929190613c57565b60405160208183030381529060405261200b565b9050610bca89898989611927565b8415610c0d5780806020019051810190610be49190613a90565b8094508193505050610bfe89898989866020015188611d34565b610c0889836121da565b610c1b565b610c1b898989895a86611d34565b505050505050505050565b610c3284848484612483565b50505050565b61071c8383836124f7565b73ffffffffffffffffffffffffffffffffffffffff8516610c90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613e3d565b6060610c9a61318e565b6060610cd289857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c610b90576000610b93565b9050610ce0898989896126a0565b8415610d145780806020019051810190610cfa9190613a90565b8094508193505050610bfe89898989866020015188612744565b610c1b898989895a86612744565b610c3284848484612935565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610db25750610db28533610d3b565b610e07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141eb6037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610e73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806144896038913960400191505060405180910390fd5b610e7f858585856126a0565b61070a858585855a86612744565b6060610ee986837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610ec3576000610ec6565b60015b89610ed2576000610ed5565b60015b604051602001610ba8959493929190613c98565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610f7d908890613c4c565b60405180910390a38215610fb557610f9361318e565b81806020019051810190610fa79190613a5d565b9050610fb387826121da565b505b505050505050565b600080825111611018576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806144466043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516611084576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806143cc6033913960400191505060405180910390fd5b600061108f83612bbf565b60f81c9050600581106110ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806141b1603a913960400191505060405180910390fd5b60008160ff1660058111156110fe57fe5b905060008080808085600581111561111257fe5b1415611169576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806142226036913960400191505060405180910390fd5b600185600581111561117757fe5b14156112ba5787516061146111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806142e66037913960400191505060405180910390fd5b6111e2886000612c7c565b92506111ef886020612c7c565b9150876040815181106111fe57fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611268573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d811691161497506117969650505050505050565b60028560058111156112c857fe5b1415611418578751606114611328576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806142e66037913960400191505060405180910390fd5b611333886000612c7c565b9250611340886020612c7c565b91508760408151811061134f57fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611268573d6000803e3d6000fd5b600385600581111561142657fe5b14156115de57604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b838110156114b457818101518382015260200161149c565b50505050905090810190601f1680156114e15780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156115145781810151838201526020016114fc565b50505050905090810190601f1680156115415780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561156057600080fd5b505afa158015611574573d6000803e3d6000fd5b505050506040513d602081101561158a57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b0000000000000000000000000000000000000000000000000000000014965061179695505050505050565b60048560058111156115ec57fe5b141561174557604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b8381101561167c578181015183820152602001611664565b50505050905090810190601f1680156116a95780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156116c757600080fd5b505afa1580156116db573d6000803e3d6000fd5b505050506040513d60208110156116f157600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014965061179695505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806141b1603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156117f2575060016103da565b6103d782612ce4565b60608161183c575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526103da565b818060005b821561185557600101600a83049250611841565b60608167ffffffffffffffff8111801561186e57600080fd5b506040519080825280601f01601f191660200182016040528015611899576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561191d57600a840660300160f81b828280600190039350815181106118e357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506118c0565b5095945050505050565b815181518114611982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806142586042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156119be5750600081115b15611b90576000806119d68560008151811061079357fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091611a2e9190849088908590611a1f57fe5b60200260200101516001612d41565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091611a849190859089908590611a7557fe5b60200260200101516000612d41565b90508360015b86811015611b3e57611aa189828151811061079357fe5b9096509450818614611b105773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b611b2184868a8481518110611a1f57fe5b9350611b3483868a8481518110611a7557fe5b9250600101611a8a565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550611c2d565b60005b81811015611c2b57828181518110611ba757fe5b6020026020010151611bcc87868481518110611bbf57fe5b6020026020010151610377565b1015611c23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806143966036913960400191505060405180910390fd5b600101611b93565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611cd9578181015183820152602001611cc1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611d18578181015183820152602001611d00565b5050505090500194505050505060405180910390a45050505050565b611d538573ffffffffffffffffffffffffffffffffffffffff16612f54565b15610fb55760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611e0b578181015183820152602001611df3565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611e4a578181015183820152602001611e32565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611e86578181015183820152602001611e6e565b50505050905090810190601f168015611eb35780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611ed857600080fd5b5087f1158015611eec573d6000803e3d6000fd5b50505050506040513d6020811015611f0357600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610fb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c81526020018061429a604c913960600191505060405180910390fd5b611fae8383836001612f8e565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b606080838060200190518101906120229190613a06565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600260205260408120549194509192509061205a836041612c7c565b905081811080159061206e57508160640181105b6120a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613d82565b60006120e0868387805190602001206040516020016120c593929190613b34565b60405160208183030381529060405280519060200120613015565b905060608683876040516020016120f993929190613b5b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf599161218491613fd8565b60405180910390a261219889838388610fbd565b6121ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613ddf565b50505050509392505050565b60006121e98260600151612bbf565b60f81c905060028110612228576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613f1e565b60008160ff16600281111561223957fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff161561226f578660400151612271565b335b9250600085600281111561228157fe5b141561238057866060015180602001905181019061229f9190613395565b909450915073ffffffffffffffffffffffffffffffffffffffff84163014156122f0576122ce888484846126a0565b6122eb8884845a8560405180602001604052806000815250612744565b61237b565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a90612348908b90879087908790600401613bc3565b600060405180830381600087803b15801561236257600080fd5b505af1158015612376573d6000803e3d6000fd5b505050505b612479565b86606001518060200190518101906123989190613379565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd906123f1908b9087908690600401613b92565b602060405180830381600087803b15801561240b57600080fd5b505af115801561241f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244391906139aa565b612479576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613d25565b5050505050505050565b6124908484846000612f8e565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610c3260008585855a86612744565b815181518114612552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180614359603d913960400191505060405180910390fd5b60005b81811015612598576125908585838151811061256d57fe5b602002602001015185848151811061258157fe5b60200260200101516001612f8e565b600101612555565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561264657818101518382015260200161262e565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561268557818101518382015260200161266d565b5050505090500194505050505060405180910390a450505050565b6126ad8483836001612f8e565b6126ba8383836000612f8e565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6127638573ffffffffffffffffffffffffffffffffffffffff16612f54565b15610fb55760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561281c578181015183820152602001612804565b50505050905090810190601f1680156128495780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561286c57600080fd5b5087f1158015612880573d6000803e3d6000fd5b50505050506040513d602081101561289757600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610fb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806143ff6047913960600191505060405180910390fd5b815183511461298f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180614542603e913960400191505060405180910390fd5b825115612aaf576000806129a98560008151811061079357fe5b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091528120548751939550919350916129f29190849088908590611a7557fe5b86519091508360015b82811015612a7657612a1289828151811061079357fe5b9096509450818614612a5b5773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b612a6c84868a8481518110611a7557fe5b93506001016129fb565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612b5c578181015183820152602001612b44565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612b9b578181015183820152602001612b83565b5050505090500194505050505060405180910390a4610c3260008585855a86611d34565b600080825111612c1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141476037913960400191505060405180910390fd5b81600183510381518110612c2a57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612cdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806144c1603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612d38575060016103da565b6103d782613144565b60006020840263ffffffff82846001811115612d5957fe5b1415612e275784821b8701925086831015612dbf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806145806032913960400191505060405180910390fd5b64010000000087831c8216860110612e22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806145806032913960400191505060405180910390fd5b612f4a565b6001846001811115612e3557fe5b1415612ef95784821b8703925086831115612e9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603381526020018061417e6033913960400191505060405180910390fd5b84818389901c161015612e22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603381526020018061417e6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806144fd6045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612f8757507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080612f9a85610d2e565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150612fda90828686612d41565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b602083106130e257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016130a5565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f8301126131dc578081fd5b81356131ef6131ea82614013565b613fef565b81815291506020808301908481018184028601820187101561321057600080fd5b60005b8481101561322f57813584529282019290820190600101613213565b505050505092915050565b600082601f83011261324a578081fd5b81356132586131ea82614031565b915080825283602082850101111561326f57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112613298578081fd5b81516132a66131ea82614031565b91508082528360208285010111156132bd57600080fd5b6132ce816020840160208601614071565b5092915050565b6000608082840312156132e6578081fd5b6040516080810167ffffffffffffffff828210818311171561330457fe5b816040528293508451835260208501516020840152604085015191506133298261409d565b816040840152606085015191508082111561334357600080fd5b5061335085828601613288565b6060830152505092915050565b60006020828403121561336e578081fd5b8135612f878161409d565b60006020828403121561338a578081fd5b8151612f878161409d565b600080604083850312156133a7578081fd5b82516133b28161409d565b6020939093015192949293505050565b600080604083850312156133d4578182fd5b82356133df8161409d565b915060208301356133ef8161409d565b809150509250929050565b60008060008060008060c08789031215613412578182fd5b863561341d8161409d565b9550602087013561342d8161409d565b9450604087013567ffffffffffffffff80821115613449578384fd5b6134558a838b016131cc565b9550606089013591508082111561346a578384fd5b6134768a838b016131cc565b945060808901359150613488826140c2565b90925060a0880135908082111561349d578283fd5b506134aa89828a0161323a565b9150509295509295509295565b600080600080600060a086880312156134ce578081fd5b85356134d98161409d565b945060208601356134e98161409d565b9350604086013567ffffffffffffffff80821115613505578283fd5b61351189838a016131cc565b94506060880135915080821115613526578283fd5b61353289838a016131cc565b93506080880135915080821115613547578283fd5b506135548882890161323a565b9150509295509295909350565b600080600080600060a08688031215613578578081fd5b85356135838161409d565b945060208601356135938161409d565b935060408601356135a3816140c2565b925060608601356135b3816140c2565b9150608086013567ffffffffffffffff8111156135ce578182fd5b6135548882890161323a565b60008060008060008060c087890312156135f2578384fd5b86356135fd8161409d565b9550602087013561360d8161409d565b94506040870135935060608701359250608087013561362b816140c2565b915060a087013567ffffffffffffffff811115613646578182fd5b6134aa89828a0161323a565b600080600080600060a08688031215613669578283fd5b85356136748161409d565b945060208601356136848161409d565b93506040860135925060608601359150608086013567ffffffffffffffff8111156135ce578182fd5b6000806000606084860312156136c1578081fd5b83356136cc8161409d565b9250602084013567ffffffffffffffff808211156136e8578283fd5b6136f4878388016131cc565b93506040860135915080821115613709578283fd5b50613716868287016131cc565b9150509250925092565b60008060008060808587031215613735578182fd5b84356137408161409d565b9350602085013567ffffffffffffffff8082111561375c578384fd5b613768888389016131cc565b9450604087013591508082111561377d578384fd5b613789888389016131cc565b9350606087013591508082111561379e578283fd5b506137ab8782880161323a565b91505092959194509250565b600080604083850312156137c9578182fd5b82356137d48161409d565b915060208301356133ef816140c2565b600080600080608085870312156137f9578182fd5b84356138048161409d565b935060208501359250604085013567ffffffffffffffff80821115613827578384fd5b6137898883890161323a565b60008060408385031215613845578182fd5b82356138508161409d565b946020939093013593505050565b600080600060608486031215613872578081fd5b833561387d8161409d565b95602085013595506040909401359392505050565b600080600080608085870312156138a7578182fd5b84356138b28161409d565b93506020850135925060408501359150606085013567ffffffffffffffff8111156138db578182fd5b6137ab8782880161323a565b600080604083850312156138f9578182fd5b823567ffffffffffffffff80821115613910578384fd5b818501915085601f830112613923578384fd5b81356139316131ea82614013565b80828252602080830192508086018a828387028901011115613951578889fd5b8896505b8487101561397c5780356139688161409d565b845260019690960195928101928101613955565b509096508701359350505080821115613993578283fd5b506139a0858286016131cc565b9150509250929050565b6000602082840312156139bb578081fd5b8151612f87816140c2565b6000602082840312156139d7578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612f87578182fd5b60008060408385031215613a18578182fd5b825167ffffffffffffffff80821115613a2f578384fd5b613a3b86838701613288565b93506020850151915080821115613a50578283fd5b506139a085828601613288565b600060208284031215613a6e578081fd5b815167ffffffffffffffff811115613a84578182fd5b611796848285016132d5565b60008060408385031215613aa2578182fd5b825167ffffffffffffffff80821115613ab9578384fd5b613a3b868387016132d5565b600060208284031215613ad6578081fd5b5035919050565b60008060408385031215613aef578182fd5b50508035926020909101359150565b815160009082906020808601845b83811015613b2857815185529382019390820190600101613b0c565b50929695505050505050565b60008451613b46818460208901614071565b91909101928352506020820152604001919050565b60008451613b6d818460208901614071565b82018481528351613b85816020808501908801614071565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b81811015613c4057835183529284019291840191600101613c24565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b6000602082528251806020840152613cf3816040850160208701614071565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6020808252603f908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a2045524332305f5452414e534645525f4641494c454400606082015260800190565b6020808252603c908201527f455243313135354d6574615061636b656442616c616e6365235f7369676e617460408201527f75726556616c69646174696f6e3a20494e56414c49445f4e4f4e434500000000606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365235f7369676e6174908201527f75726556616c69646174696f6e3a20494e56414c49445f5349474e4154555245606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365236d657461536166908201527f655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54606082015260800190565b60208082526045908201527f455243313135354d6574615061636b656442616c616e6365236d65746153616660408201527f6542617463685472616e7366657246726f6d3a20494e56414c49445f5245434960608201527f5049454e54000000000000000000000000000000000000000000000000000000608082015260a00190565b6020808252603b908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a20554e535550504f525445445f544f4b454e0000000000606082015260800190565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561400b57fe5b604052919050565b600067ffffffffffffffff82111561402757fe5b5060209081020190565b600067ffffffffffffffff82111561404557fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561408c578181015183820152602001614074565b83811115610c325750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146140bf57600080fd5b50565b80151581146140bf57600080fdfe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e4154555245455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e4154555245455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f5245515549524544455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e4552455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a2646970667358221220bf9bed61a3fbfa3bd78b8b925b5837c0234cb1c64c9bdc2d860315998538204a64736f6c63430007040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101765760003560e01c8063a3d4926e116100d8578063db90e83c1161008c578063f242432a11610066578063f242432a1461033e578063f5d4c82014610351578063fa4e12d71461036457610176565b8063db90e83c146102f7578063e985e9c514610318578063eaec5f811461032b57610176565b8063bd7a6c41116100bd578063bd7a6c41146102be578063ce0b514b146102d1578063d7a0ad90146102e457610176565b8063a3d4926e14610298578063a3f091f5146102ab57610176565b80632eb2c2d61161012f5780634e1273f4116101145780634e1273f41461025d5780636c0360eb1461027d578063a22cb4651461028557610176565b80632eb2c2d614610235578063437ecbe91461024a57610176565b806306fdde031161016057806306fdde03146101fa5780630e89341c1461020f5780632d0335ab1461022257610176565b8062fdd58e146101b157806301ffc9a7146101da575b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613f7b565b60405180910390fd5b6101c46101bf366004613833565b610377565b6040516101d19190613fd8565b60405180910390f35b6101ed6101e83660046139c6565b6103cc565b6040516101d19190613c4c565b6102026103df565b6040516101d19190613cd4565b61020261021d366004613ac5565b61048b565b6101c461023036600461335d565b6105de565b6102486102433660046134b7565b610606565b005b61024861025836600461385e565b610711565b61027061026b3660046138e7565b610721565b6040516101d19190613c08565b6102026109a0565b6102486102933660046137b7565b610a19565b6102486102a63660046133fa565b610ab2565b6102486102b9366004613892565b610c26565b6102486102cc3660046136ad565b610c38565b6102486102df3660046135da565b610c43565b6102486102f2366004613720565b610d22565b61030a610305366004613ac5565b610d2e565b6040516101d1929190613fe1565b6101ed6103263660046133c2565b610d3b565b6101c4610339366004613add565b610d76565b61024861034c366004613652565b610d89565b61024861035f366004613561565b610e8d565b6101ed6103723660046137e4565b610fbd565b600080600061038584610d2e565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506103c39082610d76565b95945050505050565b60006103d78261179e565b90505b919050565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104835780601f1061045857610100808354040283529160200191610483565b820191906000526020600020905b81548152906001019060200180831161046657829003601f168201915b505050505081565b60606003610498836117fb565b60405160200180838054600181600116156101000203166002900480156104f65780601f106104d45761010080835404028352918201916104f6565b820191906000526020600020905b8154815290600101906020018083116104e2575b5050825160208401908083835b6020831061054057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610503565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff8616148061062f575061062f8533610d3b565b610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c81526020018061431d603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166106f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061410a603d913960400191505060405180910390fd5b6106fc85858585611927565b61070a858585855a86611d34565b5050505050565b61071c838383611fa1565b505050565b81518151606091908114610780576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806140d16039913960400191505060405180910390fd5b6000806107a08560008151811061079357fe5b6020026020010151610d2e565b915091506000806000886000815181106107b657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561082a57600080fd5b50604051908082528060200260200182016040528015610854578160200160208202803683370190505b5090506108618385610d76565b8160008151811061086e57fe5b602090810291909101015260015b868110156109935761089389828151811061079357fe5b909650945082861415806108fc57508981815181106108ae57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106108db57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561096a576000808b838151811061091057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6109748486610d76565b82828151811061098057fe5b602090810291909101015260010161087c565b5098975050505050505050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104835780601f1061045857610100808354040283529160200191610483565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8516610aff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613e9b565b6060610b0961318e565b6060610bbc89857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c604051602001610b479190613afe565b604051602081830303815290604052805190602001208c604051602001610b6e9190613afe565b604051602081830303815290604052805190602001208c610b90576000610b93565b60015b604051602001610ba896959493929190613c57565b60405160208183030381529060405261200b565b9050610bca89898989611927565b8415610c0d5780806020019051810190610be49190613a90565b8094508193505050610bfe89898989866020015188611d34565b610c0889836121da565b610c1b565b610c1b898989895a86611d34565b505050505050505050565b610c3284848484612483565b50505050565b61071c8383836124f7565b73ffffffffffffffffffffffffffffffffffffffff8516610c90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613e3d565b6060610c9a61318e565b6060610cd289857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c610b90576000610b93565b9050610ce0898989896126a0565b8415610d145780806020019051810190610cfa9190613a90565b8094508193505050610bfe89898989866020015188612744565b610c1b898989895a86612744565b610c3284848484612935565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610db25750610db28533610d3b565b610e07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141eb6037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610e73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806144896038913960400191505060405180910390fd5b610e7f858585856126a0565b61070a858585855a86612744565b6060610ee986837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610ec3576000610ec6565b60015b89610ed2576000610ed5565b60015b604051602001610ba8959493929190613c98565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610f7d908890613c4c565b60405180910390a38215610fb557610f9361318e565b81806020019051810190610fa79190613a5d565b9050610fb387826121da565b505b505050505050565b600080825111611018576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806144466043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516611084576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806143cc6033913960400191505060405180910390fd5b600061108f83612bbf565b60f81c9050600581106110ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806141b1603a913960400191505060405180910390fd5b60008160ff1660058111156110fe57fe5b905060008080808085600581111561111257fe5b1415611169576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806142226036913960400191505060405180910390fd5b600185600581111561117757fe5b14156112ba5787516061146111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806142e66037913960400191505060405180910390fd5b6111e2886000612c7c565b92506111ef886020612c7c565b9150876040815181106111fe57fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611268573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d811691161497506117969650505050505050565b60028560058111156112c857fe5b1415611418578751606114611328576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806142e66037913960400191505060405180910390fd5b611333886000612c7c565b9250611340886020612c7c565b91508760408151811061134f57fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611268573d6000803e3d6000fd5b600385600581111561142657fe5b14156115de57604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b838110156114b457818101518382015260200161149c565b50505050905090810190601f1680156114e15780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156115145781810151838201526020016114fc565b50505050905090810190601f1680156115415780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561156057600080fd5b505afa158015611574573d6000803e3d6000fd5b505050506040513d602081101561158a57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b0000000000000000000000000000000000000000000000000000000014965061179695505050505050565b60048560058111156115ec57fe5b141561174557604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b8381101561167c578181015183820152602001611664565b50505050905090810190601f1680156116a95780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156116c757600080fd5b505afa1580156116db573d6000803e3d6000fd5b505050506040513d60208110156116f157600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014965061179695505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806141b1603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156117f2575060016103da565b6103d782612ce4565b60608161183c575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526103da565b818060005b821561185557600101600a83049250611841565b60608167ffffffffffffffff8111801561186e57600080fd5b506040519080825280601f01601f191660200182016040528015611899576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561191d57600a840660300160f81b828280600190039350815181106118e357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506118c0565b5095945050505050565b815181518114611982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806142586042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156119be5750600081115b15611b90576000806119d68560008151811061079357fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091611a2e9190849088908590611a1f57fe5b60200260200101516001612d41565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091611a849190859089908590611a7557fe5b60200260200101516000612d41565b90508360015b86811015611b3e57611aa189828151811061079357fe5b9096509450818614611b105773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b611b2184868a8481518110611a1f57fe5b9350611b3483868a8481518110611a7557fe5b9250600101611a8a565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550611c2d565b60005b81811015611c2b57828181518110611ba757fe5b6020026020010151611bcc87868481518110611bbf57fe5b6020026020010151610377565b1015611c23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806143966036913960400191505060405180910390fd5b600101611b93565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611cd9578181015183820152602001611cc1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611d18578181015183820152602001611d00565b5050505090500194505050505060405180910390a45050505050565b611d538573ffffffffffffffffffffffffffffffffffffffff16612f54565b15610fb55760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611e0b578181015183820152602001611df3565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611e4a578181015183820152602001611e32565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611e86578181015183820152602001611e6e565b50505050905090810190601f168015611eb35780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611ed857600080fd5b5087f1158015611eec573d6000803e3d6000fd5b50505050506040513d6020811015611f0357600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610fb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c81526020018061429a604c913960600191505060405180910390fd5b611fae8383836001612f8e565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b606080838060200190518101906120229190613a06565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600260205260408120549194509192509061205a836041612c7c565b905081811080159061206e57508160640181105b6120a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613d82565b60006120e0868387805190602001206040516020016120c593929190613b34565b60405160208183030381529060405280519060200120613015565b905060608683876040516020016120f993929190613b5b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf599161218491613fd8565b60405180910390a261219889838388610fbd565b6121ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613ddf565b50505050509392505050565b60006121e98260600151612bbf565b60f81c905060028110612228576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613f1e565b60008160ff16600281111561223957fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff161561226f578660400151612271565b335b9250600085600281111561228157fe5b141561238057866060015180602001905181019061229f9190613395565b909450915073ffffffffffffffffffffffffffffffffffffffff84163014156122f0576122ce888484846126a0565b6122eb8884845a8560405180602001604052806000815250612744565b61237b565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a90612348908b90879087908790600401613bc3565b600060405180830381600087803b15801561236257600080fd5b505af1158015612376573d6000803e3d6000fd5b505050505b612479565b86606001518060200190518101906123989190613379565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd906123f1908b9087908690600401613b92565b602060405180830381600087803b15801561240b57600080fd5b505af115801561241f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244391906139aa565b612479576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613d25565b5050505050505050565b6124908484846000612f8e565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610c3260008585855a86612744565b815181518114612552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180614359603d913960400191505060405180910390fd5b60005b81811015612598576125908585838151811061256d57fe5b602002602001015185848151811061258157fe5b60200260200101516001612f8e565b600101612555565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561264657818101518382015260200161262e565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561268557818101518382015260200161266d565b5050505090500194505050505060405180910390a450505050565b6126ad8483836001612f8e565b6126ba8383836000612f8e565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6127638573ffffffffffffffffffffffffffffffffffffffff16612f54565b15610fb55760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561281c578181015183820152602001612804565b50505050905090810190601f1680156128495780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561286c57600080fd5b5087f1158015612880573d6000803e3d6000fd5b50505050506040513d602081101561289757600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610fb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806143ff6047913960600191505060405180910390fd5b815183511461298f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180614542603e913960400191505060405180910390fd5b825115612aaf576000806129a98560008151811061079357fe5b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091528120548751939550919350916129f29190849088908590611a7557fe5b86519091508360015b82811015612a7657612a1289828151811061079357fe5b9096509450818614612a5b5773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b612a6c84868a8481518110611a7557fe5b93506001016129fb565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612b5c578181015183820152602001612b44565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612b9b578181015183820152602001612b83565b5050505090500194505050505060405180910390a4610c3260008585855a86611d34565b600080825111612c1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141476037913960400191505060405180910390fd5b81600183510381518110612c2a57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612cdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806144c1603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612d38575060016103da565b6103d782613144565b60006020840263ffffffff82846001811115612d5957fe5b1415612e275784821b8701925086831015612dbf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806145806032913960400191505060405180910390fd5b64010000000087831c8216860110612e22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806145806032913960400191505060405180910390fd5b612f4a565b6001846001811115612e3557fe5b1415612ef95784821b8703925086831115612e9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603381526020018061417e6033913960400191505060405180910390fd5b84818389901c161015612e22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603381526020018061417e6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806144fd6045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612f8757507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080612f9a85610d2e565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150612fda90828686612d41565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b602083106130e257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016130a5565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f8301126131dc578081fd5b81356131ef6131ea82614013565b613fef565b81815291506020808301908481018184028601820187101561321057600080fd5b60005b8481101561322f57813584529282019290820190600101613213565b505050505092915050565b600082601f83011261324a578081fd5b81356132586131ea82614031565b915080825283602082850101111561326f57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112613298578081fd5b81516132a66131ea82614031565b91508082528360208285010111156132bd57600080fd5b6132ce816020840160208601614071565b5092915050565b6000608082840312156132e6578081fd5b6040516080810167ffffffffffffffff828210818311171561330457fe5b816040528293508451835260208501516020840152604085015191506133298261409d565b816040840152606085015191508082111561334357600080fd5b5061335085828601613288565b6060830152505092915050565b60006020828403121561336e578081fd5b8135612f878161409d565b60006020828403121561338a578081fd5b8151612f878161409d565b600080604083850312156133a7578081fd5b82516133b28161409d565b6020939093015192949293505050565b600080604083850312156133d4578182fd5b82356133df8161409d565b915060208301356133ef8161409d565b809150509250929050565b60008060008060008060c08789031215613412578182fd5b863561341d8161409d565b9550602087013561342d8161409d565b9450604087013567ffffffffffffffff80821115613449578384fd5b6134558a838b016131cc565b9550606089013591508082111561346a578384fd5b6134768a838b016131cc565b945060808901359150613488826140c2565b90925060a0880135908082111561349d578283fd5b506134aa89828a0161323a565b9150509295509295509295565b600080600080600060a086880312156134ce578081fd5b85356134d98161409d565b945060208601356134e98161409d565b9350604086013567ffffffffffffffff80821115613505578283fd5b61351189838a016131cc565b94506060880135915080821115613526578283fd5b61353289838a016131cc565b93506080880135915080821115613547578283fd5b506135548882890161323a565b9150509295509295909350565b600080600080600060a08688031215613578578081fd5b85356135838161409d565b945060208601356135938161409d565b935060408601356135a3816140c2565b925060608601356135b3816140c2565b9150608086013567ffffffffffffffff8111156135ce578182fd5b6135548882890161323a565b60008060008060008060c087890312156135f2578384fd5b86356135fd8161409d565b9550602087013561360d8161409d565b94506040870135935060608701359250608087013561362b816140c2565b915060a087013567ffffffffffffffff811115613646578182fd5b6134aa89828a0161323a565b600080600080600060a08688031215613669578283fd5b85356136748161409d565b945060208601356136848161409d565b93506040860135925060608601359150608086013567ffffffffffffffff8111156135ce578182fd5b6000806000606084860312156136c1578081fd5b83356136cc8161409d565b9250602084013567ffffffffffffffff808211156136e8578283fd5b6136f4878388016131cc565b93506040860135915080821115613709578283fd5b50613716868287016131cc565b9150509250925092565b60008060008060808587031215613735578182fd5b84356137408161409d565b9350602085013567ffffffffffffffff8082111561375c578384fd5b613768888389016131cc565b9450604087013591508082111561377d578384fd5b613789888389016131cc565b9350606087013591508082111561379e578283fd5b506137ab8782880161323a565b91505092959194509250565b600080604083850312156137c9578182fd5b82356137d48161409d565b915060208301356133ef816140c2565b600080600080608085870312156137f9578182fd5b84356138048161409d565b935060208501359250604085013567ffffffffffffffff80821115613827578384fd5b6137898883890161323a565b60008060408385031215613845578182fd5b82356138508161409d565b946020939093013593505050565b600080600060608486031215613872578081fd5b833561387d8161409d565b95602085013595506040909401359392505050565b600080600080608085870312156138a7578182fd5b84356138b28161409d565b93506020850135925060408501359150606085013567ffffffffffffffff8111156138db578182fd5b6137ab8782880161323a565b600080604083850312156138f9578182fd5b823567ffffffffffffffff80821115613910578384fd5b818501915085601f830112613923578384fd5b81356139316131ea82614013565b80828252602080830192508086018a828387028901011115613951578889fd5b8896505b8487101561397c5780356139688161409d565b845260019690960195928101928101613955565b509096508701359350505080821115613993578283fd5b506139a0858286016131cc565b9150509250929050565b6000602082840312156139bb578081fd5b8151612f87816140c2565b6000602082840312156139d7578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612f87578182fd5b60008060408385031215613a18578182fd5b825167ffffffffffffffff80821115613a2f578384fd5b613a3b86838701613288565b93506020850151915080821115613a50578283fd5b506139a085828601613288565b600060208284031215613a6e578081fd5b815167ffffffffffffffff811115613a84578182fd5b611796848285016132d5565b60008060408385031215613aa2578182fd5b825167ffffffffffffffff80821115613ab9578384fd5b613a3b868387016132d5565b600060208284031215613ad6578081fd5b5035919050565b60008060408385031215613aef578182fd5b50508035926020909101359150565b815160009082906020808601845b83811015613b2857815185529382019390820190600101613b0c565b50929695505050505050565b60008451613b46818460208901614071565b91909101928352506020820152604001919050565b60008451613b6d818460208901614071565b82018481528351613b85816020808501908801614071565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b81811015613c4057835183529284019291840191600101613c24565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b6000602082528251806020840152613cf3816040850160208701614071565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6020808252603f908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a2045524332305f5452414e534645525f4641494c454400606082015260800190565b6020808252603c908201527f455243313135354d6574615061636b656442616c616e6365235f7369676e617460408201527f75726556616c69646174696f6e3a20494e56414c49445f4e4f4e434500000000606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365235f7369676e6174908201527f75726556616c69646174696f6e3a20494e56414c49445f5349474e4154555245606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365236d657461536166908201527f655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54606082015260800190565b60208082526045908201527f455243313135354d6574615061636b656442616c616e6365236d65746153616660408201527f6542617463685472616e7366657246726f6d3a20494e56414c49445f5245434960608201527f5049454e54000000000000000000000000000000000000000000000000000000608082015260a00190565b6020808252603b908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a20554e535550504f525445445f544f4b454e0000000000606082015260800190565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561400b57fe5b604052919050565b600067ffffffffffffffff82111561402757fe5b5060209081020190565b600067ffffffffffffffff82111561404557fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561408c578181015183820152602001614074565b83811115610c325750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146140bf57600080fd5b50565b80151581146140bf57600080fdfe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e4154555245455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e4154555245455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f5245515549524544455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e4552455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a2646970667358221220bf9bed61a3fbfa3bd78b8b925b5837c0234cb1c64c9bdc2d860315998538204a64736f6c63430007040033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/artifacts/contracts/mocks/ERC1155MetadataMock.sol/ERC1155MetadataMock.json b/src/artifacts/contracts/mocks/ERC1155MetadataMock.sol/ERC1155MetadataMock.json index 901571e..f4e4b96 100644 --- a/src/artifacts/contracts/mocks/ERC1155MetadataMock.sol/ERC1155MetadataMock.json +++ b/src/artifacts/contracts/mocks/ERC1155MetadataMock.sol/ERC1155MetadataMock.json @@ -3,6 +3,22 @@ "contractName": "ERC1155MetadataMock", "sourceName": "contracts/mocks/ERC1155MetadataMock.sol", "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_baseURI", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, { "anonymous": false, "inputs": [ @@ -28,25 +44,6 @@ "name": "ApprovalForAll", "type": "event" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newNonce", - "type": "uint256" - } - ], - "name": "NonceChange", - "type": "event" - }, { "anonymous": false, "inputs": [ @@ -193,93 +190,13 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "_ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "_values", - "type": "uint256[]" - } - ], - "name": "batchBurnMock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "_ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "_values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "batchMintMock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "burnMock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_signer", - "type": "address" - } - ], - "name": "getNonce", + "inputs": [], + "name": "baseURI", "outputs": [ { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" + "internalType": "string", + "name": "", + "type": "string" } ], "stateMutability": "view", @@ -309,40 +226,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "_signerAddress", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_hash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "_sig", - "type": "bytes" - } - ], - "name": "isValidSignature", - "outputs": [ - { - "internalType": "bool", - "name": "isValid", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -357,140 +240,16 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "_ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "_amounts", - "type": "uint256[]" - }, - { - "internalType": "bool", - "name": "_isGasFee", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "metaSafeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "_isGasFee", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "metaSafeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "address", - "name": "_operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "_approved", - "type": "bool" - }, - { - "internalType": "bool", - "name": "_isGasFee", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "metaSetApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, + "inputs": [], + "name": "name", + "outputs": [ { - "internalType": "bytes", - "name": "_data", - "type": "bytes" + "internalType": "string", + "name": "", + "type": "string" } ], - "name": "mintMock", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { @@ -629,8 +388,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50614417806100206000396000f3fe608060405234801561001057600080fd5b50600436106101505760003560e01c8063a22cb465116100cd578063d7a0ad9011610081578063f242432a11610066578063f242432a146102fa578063f5d4c8201461030d578063fa4e12d71461032057610150565b8063d7a0ad90146102d4578063e985e9c5146102e757610150565b8063a3f091f5116100b2578063a3f091f51461029b578063bd7a6c41146102ae578063ce0b514b146102c157610150565b8063a22cb46514610275578063a3d4926e1461028857610150565b80632d0335ab11610124578063437ecbe911610109578063437ecbe91461022f5780634e1273f4146102425780637e518ec81461026257610150565b80632d0335ab146102095780632eb2c2d61461021c57610150565b8062fdd58e1461018b57806301ffc9a7146101b45780630e89341c146101d45780631ea430d4146101f4575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613dab565b60405180910390fd5b61019e6101993660046137ba565b610333565b6040516101ab9190613f7c565b60405180910390f35b6101c76101c2366004613980565b610366565b6040516101ab9190613c18565b6101e76101e2366004613ab2565b610379565b6040516101ab9190613ca0565b610207610202366004613931565b6104cc565b005b61019e6102173660046132e4565b6104d8565b61020761022a36600461343e565b610500565b61020761023d3660046137e5565b61060b565b61025561025036600461386e565b61061b565b6040516101ab9190613bd4565b610207610270366004613a17565b610767565b61020761028336600461373e565b610770565b610207610296366004613381565b610809565b6102076102a9366004613819565b61097d565b6102076102bc366004613634565b61098f565b6102076102cf366004613561565b61099a565b6102076102e23660046136a7565b610a79565b6101c76102f5366004613349565b610a85565b6102076103083660046135d9565b610ac0565b61020761031b3660046134e8565b610bc4565b6101c761032e36600461376b565b610cf4565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b6000610371826114d5565b90505b919050565b6060600361038683611532565b60405160200180838054600181600116156101000203166002900480156103e45780601f106103c25761010080835404028352918201916103e4565b820191906000526020600020905b8154815290600101906020018083116103d0575b5050825160208401908083835b6020831061042e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016103f1565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b6104d58161165e565b50565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff8616148061052957506105298533610a85565b61057e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061428b602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166105ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806141cc6030913960400191505060405180910390fd5b6105f685858585611922565b610604858585855a86611c76565b5050505050565b610616838383611ee3565b505050565b60608151835114610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061422c602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561069157600080fd5b506040519080825280602002602001820160405280156106bb578160200160208202803683370190505b50905060005b845181101561075f576000808683815181106106d957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085838151811061072957fe5b602002602001015181526020019081526020016000205482828151811061074c57fe5b60209081029190910101526001016106c1565b509392505050565b6104d581611f8e565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8516610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613e65565b6060610860613074565b606061091389857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c60405160200161089e9190613aca565b604051602081830303815290604052805190602001208c6040516020016108c59190613aca565b604051602081830303815290604052805190602001208c6108e75760006108ea565b60015b6040516020016108ff96959493929190613c23565b604051602081830303815290604052611fa5565b905061092189898989611922565b8415610964578080602001905181019061093b9190613a7d565b809450819350505061095589898989866020015188611c76565b61095f8983612174565b610972565b610972898989895a86611c76565b505050505050505050565b6109898484848461241d565b50505050565b6106168383836124d2565b73ffffffffffffffffffffffffffffffffffffffff85166109e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613cf1565b60606109f1613074565b6060610a2989857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c6108e75760006108ea565b9050610a3789898989612712565b8415610a6b5780806020019051810190610a519190613a7d565b809450819350505061095589898989866020015188612815565b610972898989895a86612815565b61098984848484612a06565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610ae95750610ae98533610a85565b610b3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806140c6602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610baa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614064602b913960400191505060405180910390fd5b610bb685858585612712565b610604858585855a86612815565b6060610c2086837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610bfa576000610bfd565b60015b89610c09576000610c0c565b60015b6040516020016108ff959493929190613c64565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610cb4908890613c18565b60405180910390a38215610cec57610cca613074565b81806020019051810190610cde9190613a4a565b9050610cea8782612174565b505b505050505050565b600080825111610d4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806142ba6043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610dbb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806142586033913960400191505060405180910390fd5b6000610dc683612c50565b60f81c905060058110610e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614125603a913960400191505060405180910390fd5b60008160ff166005811115610e3557fe5b9050600080808080856005811115610e4957fe5b1415610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061415f6036913960400191505060405180910390fd5b6001856005811115610eae57fe5b1415610ff1578751606114610f0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141956037913960400191505060405180910390fd5b610f19886000612d0d565b9250610f26886020612d0d565b915087604081518110610f3557fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610f9f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d811691161497506114cd9650505050505050565b6002856005811115610fff57fe5b141561114f57875160611461105f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141956037913960400191505060405180910390fd5b61106a886000612d0d565b9250611077886020612d0d565b91508760408151811061108657fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610f9f573d6000803e3d6000fd5b600385600581111561115d57fe5b141561131557604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b838110156111eb5781810151838201526020016111d3565b50505050905090810190601f1680156112185780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561124b578181015183820152602001611233565b50505050905090810190601f1680156112785780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b000000000000000000000000000000000000000000000000000000001496506114cd95505050505050565b600485600581111561132357fe5b141561147c57604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b838110156113b357818101518382015260200161139b565b50505050905090810190601f1680156113e05780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156113fe57600080fd5b505afa158015611412573d6000803e3d6000fd5b505050506040513d602081101561142857600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e000000000000000000000000000000000000000000000000000000001496506114cd95505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614125603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561152957506001610374565b61037182612d75565b606081611573575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610374565b818060005b821561158c57600101600a83049250611578565b60608167ffffffffffffffff811180156115a557600080fd5b506040519080825280601f01601f1916602001820160405280156115d0576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561165457600a840660300160f81b8282806001900393508151811061161a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506115f7565b5095945050505050565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156117085780601f106116dd57610100808354040283529160200191611708565b820191906000526020600020905b8154815290600101906020018083116116eb57829003601f168201915b50505050509050606060005b8351811015610989578261173a85838151811061172d57fe5b6020026020010151611532565b6040516020018083805190602001908083835b6020831061178a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161174d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905285519190930192850191508083835b6020831061180e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016117d1565b6001836020036101000a038019825116818451168082178552505050505050905001807f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060050192505050604051602081830303815290604052915083818151811061187957fe5b60200260200101517f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b836040518080602001828103825283818151815260200191508051906020019080838360005b838110156118e05781810151838201526020016118c8565b50505050905090810190601f16801561190d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2600101611714565b805182511461197c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806140f06035913960400191505060405180910390fd5b815160005b81811015611b6e57611a1183828151811061199857fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106119ec57fe5b6020026020010151815260200190815260200160002054612dd290919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110611a5d57fe5b6020026020010151815260200190815260200160002081905550611aff838281518110611a8657fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110611ada57fe5b6020026020010151815260200190815260200160002054612e4990919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110611b4b57fe5b602090810291909101810151825281019190915260400160002055600101611981565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611c1b578181015183820152602001611c03565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c5a578181015183820152602001611c42565b5050505090500194505050505060405180910390a45050505050565b611c958573ffffffffffffffffffffffffffffffffffffffff16612ec4565b15610cec5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611d4d578181015183820152602001611d35565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611d8c578181015183820152602001611d74565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611dc8578181015183820152602001611db0565b50505050905090810190601f168015611df55780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611e1a57600080fd5b5087f1158015611e2e573d6000803e3d6000fd5b50505050506040513d6020811015611e4557600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610cea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f81526020018061432d603f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611f1c9082612dd2565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b8051611fa19060039060208401906130b2565b5050565b60608083806020019051810190611fbc91906139c0565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611ff4836041612d0d565b905081811080159061200857508160640181105b61203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613ec2565b600061207a8683878051906020012060405160200161205f93929190613b00565b60405160208183030381529060405280519060200120612efb565b9050606086838760405160200161209393929190613b27565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf599161211e91613f7c565b60405180910390a261213289838388610cf4565b612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613d4e565b50505050509392505050565b60006121838260600151612c50565b60f81c9050600281106121c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613f1f565b60008160ff1660028111156121d357fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff161561220957866040015161220b565b335b9250600085600281111561221b57fe5b141561231a578660600151806020019051810190612239919061331c565b909450915073ffffffffffffffffffffffffffffffffffffffff841630141561228a5761226888848484612712565b6122858884845a8560405180602001604052806000815250612815565b612315565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a906122e2908b90879087908790600401613b8f565b600060405180830381600087803b1580156122fc57600080fd5b505af1158015612310573d6000803e3d6000fd5b505050505b612413565b86606001518060200190518101906123329190613300565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd9061238b908b9087908690600401613b5e565b602060405180830381600087803b1580156123a557600080fd5b505af11580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd9190613964565b612413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613e08565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208684529091529020546124569083612e49565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461098960008585855a86612815565b81518151811461252d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806141fc6030913960400191505060405180910390fd5b60005b8181101561260a5761259b83828151811061254757fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106119ec57fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008684815181106125e757fe5b602090810291909101810151825281019190915260400160002055600101612530565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156126b85781810151838201526020016126a0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156126f75781810151838201526020016126df565b5050505090500194505050505060405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832085845290915290205461274b9082612dd2565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152602081815260408083208784528252808320949094559186168152808252828120858252909152205461279b9082612e49565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6128348573ffffffffffffffffffffffffffffffffffffffff16612ec4565b15610cec5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156128ed5781810151838201526020016128d5565b50505050905090810190601f16801561291a5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561293d57600080fd5b5087f1158015612951573d6000803e3d6000fd5b50505050506040513d602081101561296857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610cea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061436c603a913960400191505060405180910390fd5b8151835114612a60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806142fd6030913960400191505060405180910390fd5b825160005b81811015612b3f57612ad0848281518110612a7c57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888581518110611ada57fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878481518110612b1c57fe5b602090810291909101810151825281019190915260400160002055600101612a65565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612bed578181015183820152602001612bd5565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612c2c578181015183820152602001612c14565b5050505090500194505050505060405180910390a461060460008686865a87611c76565b600080825111612cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061408f6037913960400191505060405180910390fd5b81600183510381518110612cbb57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612d6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806143a6603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612dc957506001610374565b6103718261302a565b600082821115612e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015612ebd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590612ebd57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612fc857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612f8b565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826130e8576000855561312e565b82601f1061310157805160ff191683800117855561312e565b8280016001018555821561312e579182015b8281111561312e578251825591602001919060010190613113565b5061313a92915061313e565b5090565b5b8082111561313a576000815560010161313f565b600082601f830112613163578081fd5b813561317661317182613fa9565b613f85565b81815291506020808301908481018184028601820187101561319757600080fd5b60005b848110156131b65781358452928201929082019060010161319a565b505050505092915050565b600082601f8301126131d1578081fd5b81356131df61317182613fc7565b91508082528360208285010111156131f657600080fd5b8060208401602084013760009082016020015292915050565b600082601f83011261321f578081fd5b815161322d61317182613fc7565b915080825283602082850101111561324457600080fd5b613255816020840160208601614007565b5092915050565b60006080828403121561326d578081fd5b6040516080810167ffffffffffffffff828210818311171561328b57fe5b816040528293508451835260208501516020840152604085015191506132b082614033565b81604084015260608501519150808211156132ca57600080fd5b506132d78582860161320f565b6060830152505092915050565b6000602082840312156132f5578081fd5b8135612ebd81614033565b600060208284031215613311578081fd5b8151612ebd81614033565b6000806040838503121561332e578081fd5b825161333981614033565b6020939093015192949293505050565b6000806040838503121561335b578182fd5b823561336681614033565b9150602083013561337681614033565b809150509250929050565b60008060008060008060c08789031215613399578182fd5b86356133a481614033565b955060208701356133b481614033565b9450604087013567ffffffffffffffff808211156133d0578384fd5b6133dc8a838b01613153565b955060608901359150808211156133f1578384fd5b6133fd8a838b01613153565b94506080890135915061340f82614055565b90925060a08801359080821115613424578283fd5b5061343189828a016131c1565b9150509295509295509295565b600080600080600060a08688031215613455578081fd5b853561346081614033565b9450602086013561347081614033565b9350604086013567ffffffffffffffff8082111561348c578283fd5b61349889838a01613153565b945060608801359150808211156134ad578283fd5b6134b989838a01613153565b935060808801359150808211156134ce578283fd5b506134db888289016131c1565b9150509295509295909350565b600080600080600060a086880312156134ff578283fd5b853561350a81614033565b9450602086013561351a81614033565b9350604086013561352a81614055565b9250606086013561353a81614055565b9150608086013567ffffffffffffffff811115613555578182fd5b6134db888289016131c1565b60008060008060008060c08789031215613579578384fd5b863561358481614033565b9550602087013561359481614033565b9450604087013593506060870135925060808701356135b281614055565b915060a087013567ffffffffffffffff8111156135cd578182fd5b61343189828a016131c1565b600080600080600060a086880312156135f0578283fd5b85356135fb81614033565b9450602086013561360b81614033565b93506040860135925060608601359150608086013567ffffffffffffffff811115613555578182fd5b600080600060608486031215613648578081fd5b833561365381614033565b9250602084013567ffffffffffffffff8082111561366f578283fd5b61367b87838801613153565b93506040860135915080821115613690578283fd5b5061369d86828701613153565b9150509250925092565b600080600080608085870312156136bc578182fd5b84356136c781614033565b9350602085013567ffffffffffffffff808211156136e3578384fd5b6136ef88838901613153565b94506040870135915080821115613704578384fd5b61371088838901613153565b93506060870135915080821115613725578283fd5b50613732878288016131c1565b91505092959194509250565b60008060408385031215613750578182fd5b823561375b81614033565b9150602083013561337681614055565b60008060008060808587031215613780578182fd5b843561378b81614033565b935060208501359250604085013567ffffffffffffffff808211156137ae578384fd5b613710888389016131c1565b600080604083850312156137cc578182fd5b82356137d781614033565b946020939093013593505050565b6000806000606084860312156137f9578081fd5b833561380481614033565b95602085013595506040909401359392505050565b6000806000806080858703121561382e578182fd5b843561383981614033565b93506020850135925060408501359150606085013567ffffffffffffffff811115613862578182fd5b613732878288016131c1565b60008060408385031215613880578182fd5b823567ffffffffffffffff80821115613897578384fd5b818501915085601f8301126138aa578384fd5b81356138b861317182613fa9565b80828252602080830192508086018a8283870289010111156138d8578889fd5b8896505b848710156139035780356138ef81614033565b8452600196909601959281019281016138dc565b50909650870135935050508082111561391a578283fd5b5061392785828601613153565b9150509250929050565b600060208284031215613942578081fd5b813567ffffffffffffffff811115613958578182fd5b6114cd84828501613153565b600060208284031215613975578081fd5b8151612ebd81614055565b600060208284031215613991578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612ebd578182fd5b600080604083850312156139d2578182fd5b825167ffffffffffffffff808211156139e9578384fd5b6139f58683870161320f565b93506020850151915080821115613a0a578283fd5b506139278582860161320f565b600060208284031215613a28578081fd5b813567ffffffffffffffff811115613a3e578182fd5b6114cd848285016131c1565b600060208284031215613a5b578081fd5b815167ffffffffffffffff811115613a71578182fd5b6114cd8482850161325c565b60008060408385031215613a8f578182fd5b825167ffffffffffffffff80821115613aa6578384fd5b6139f58683870161325c565b600060208284031215613ac3578081fd5b5035919050565b815160009082906020808601845b83811015613af457815185529382019390820190600101613ad8565b50929695505050505050565b60008451613b12818460208901614007565b91909101928352506020820152604001919050565b60008451613b39818460208901614007565b82018481528351613b51816020808501908801614007565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b81811015613c0c57835183529284019291840191600101613bf0565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b6000602082528251806020840152613cbf816040850160208701614007565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526033908201527f455243313135354d657461236d657461536166655472616e7366657246726f6d60408201527f3a20494e56414c49445f524543495049454e5400000000000000000000000000606082015260800190565b60208082526033908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f5349474e415455524500000000000000000000000000606082015260800190565b60208082526023908201527f455243313135354d657461646174614d6f636b3a20494e56414c49445f4d455460408201527f484f440000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f455243313135354d657461235f7472616e736665724761734665653a2045524360408201527f32305f5452414e534645525f4641494c45440000000000000000000000000000606082015260800190565b60208082526038908201527f455243313135354d657461236d6574615361666542617463685472616e73666560408201527f7246726f6d3a20494e56414c49445f524543495049454e540000000000000000606082015260800190565b6020808252602f908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f4e4f4e43450000000000000000000000000000000000606082015260800190565b6020808252602e908201527f455243313135354d657461235f7472616e736665724761734665653a20554e5360408201527f5550504f525445445f544f4b454e000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715613fa157fe5b604052919050565b600067ffffffffffffffff821115613fbd57fe5b5060209081020190565b600067ffffffffffffffff821115613fdb57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561402257818101518382015260200161400a565b838111156109895750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146104d557600080fd5b80151581146104d557600080fdfe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f52455155495245444552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f524551554952454445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e455245524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147454c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544a26469706673582212205b6ba23a17207368593df6be7d3051176898a23f96953308375c5482290d6e9064736f6c63430007040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101505760003560e01c8063a22cb465116100cd578063d7a0ad9011610081578063f242432a11610066578063f242432a146102fa578063f5d4c8201461030d578063fa4e12d71461032057610150565b8063d7a0ad90146102d4578063e985e9c5146102e757610150565b8063a3f091f5116100b2578063a3f091f51461029b578063bd7a6c41146102ae578063ce0b514b146102c157610150565b8063a22cb46514610275578063a3d4926e1461028857610150565b80632d0335ab11610124578063437ecbe911610109578063437ecbe91461022f5780634e1273f4146102425780637e518ec81461026257610150565b80632d0335ab146102095780632eb2c2d61461021c57610150565b8062fdd58e1461018b57806301ffc9a7146101b45780630e89341c146101d45780631ea430d4146101f4575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613dab565b60405180910390fd5b61019e6101993660046137ba565b610333565b6040516101ab9190613f7c565b60405180910390f35b6101c76101c2366004613980565b610366565b6040516101ab9190613c18565b6101e76101e2366004613ab2565b610379565b6040516101ab9190613ca0565b610207610202366004613931565b6104cc565b005b61019e6102173660046132e4565b6104d8565b61020761022a36600461343e565b610500565b61020761023d3660046137e5565b61060b565b61025561025036600461386e565b61061b565b6040516101ab9190613bd4565b610207610270366004613a17565b610767565b61020761028336600461373e565b610770565b610207610296366004613381565b610809565b6102076102a9366004613819565b61097d565b6102076102bc366004613634565b61098f565b6102076102cf366004613561565b61099a565b6102076102e23660046136a7565b610a79565b6101c76102f5366004613349565b610a85565b6102076103083660046135d9565b610ac0565b61020761031b3660046134e8565b610bc4565b6101c761032e36600461376b565b610cf4565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b6000610371826114d5565b90505b919050565b6060600361038683611532565b60405160200180838054600181600116156101000203166002900480156103e45780601f106103c25761010080835404028352918201916103e4565b820191906000526020600020905b8154815290600101906020018083116103d0575b5050825160208401908083835b6020831061042e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016103f1565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b6104d58161165e565b50565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff8616148061052957506105298533610a85565b61057e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061428b602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166105ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806141cc6030913960400191505060405180910390fd5b6105f685858585611922565b610604858585855a86611c76565b5050505050565b610616838383611ee3565b505050565b60608151835114610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061422c602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561069157600080fd5b506040519080825280602002602001820160405280156106bb578160200160208202803683370190505b50905060005b845181101561075f576000808683815181106106d957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085838151811061072957fe5b602002602001015181526020019081526020016000205482828151811061074c57fe5b60209081029190910101526001016106c1565b509392505050565b6104d581611f8e565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8516610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613e65565b6060610860613074565b606061091389857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c60405160200161089e9190613aca565b604051602081830303815290604052805190602001208c6040516020016108c59190613aca565b604051602081830303815290604052805190602001208c6108e75760006108ea565b60015b6040516020016108ff96959493929190613c23565b604051602081830303815290604052611fa5565b905061092189898989611922565b8415610964578080602001905181019061093b9190613a7d565b809450819350505061095589898989866020015188611c76565b61095f8983612174565b610972565b610972898989895a86611c76565b505050505050505050565b6109898484848461241d565b50505050565b6106168383836124d2565b73ffffffffffffffffffffffffffffffffffffffff85166109e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613cf1565b60606109f1613074565b6060610a2989857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c6108e75760006108ea565b9050610a3789898989612712565b8415610a6b5780806020019051810190610a519190613a7d565b809450819350505061095589898989866020015188612815565b610972898989895a86612815565b61098984848484612a06565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610ae95750610ae98533610a85565b610b3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806140c6602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610baa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614064602b913960400191505060405180910390fd5b610bb685858585612712565b610604858585855a86612815565b6060610c2086837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610bfa576000610bfd565b60015b89610c09576000610c0c565b60015b6040516020016108ff959493929190613c64565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610cb4908890613c18565b60405180910390a38215610cec57610cca613074565b81806020019051810190610cde9190613a4a565b9050610cea8782612174565b505b505050505050565b600080825111610d4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806142ba6043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610dbb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806142586033913960400191505060405180910390fd5b6000610dc683612c50565b60f81c905060058110610e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614125603a913960400191505060405180910390fd5b60008160ff166005811115610e3557fe5b9050600080808080856005811115610e4957fe5b1415610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061415f6036913960400191505060405180910390fd5b6001856005811115610eae57fe5b1415610ff1578751606114610f0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141956037913960400191505060405180910390fd5b610f19886000612d0d565b9250610f26886020612d0d565b915087604081518110610f3557fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610f9f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d811691161497506114cd9650505050505050565b6002856005811115610fff57fe5b141561114f57875160611461105f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141956037913960400191505060405180910390fd5b61106a886000612d0d565b9250611077886020612d0d565b91508760408151811061108657fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610f9f573d6000803e3d6000fd5b600385600581111561115d57fe5b141561131557604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b838110156111eb5781810151838201526020016111d3565b50505050905090810190601f1680156112185780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561124b578181015183820152602001611233565b50505050905090810190601f1680156112785780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b000000000000000000000000000000000000000000000000000000001496506114cd95505050505050565b600485600581111561132357fe5b141561147c57604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b838110156113b357818101518382015260200161139b565b50505050905090810190601f1680156113e05780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156113fe57600080fd5b505afa158015611412573d6000803e3d6000fd5b505050506040513d602081101561142857600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e000000000000000000000000000000000000000000000000000000001496506114cd95505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614125603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561152957506001610374565b61037182612d75565b606081611573575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610374565b818060005b821561158c57600101600a83049250611578565b60608167ffffffffffffffff811180156115a557600080fd5b506040519080825280601f01601f1916602001820160405280156115d0576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561165457600a840660300160f81b8282806001900393508151811061161a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506115f7565b5095945050505050565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156117085780601f106116dd57610100808354040283529160200191611708565b820191906000526020600020905b8154815290600101906020018083116116eb57829003601f168201915b50505050509050606060005b8351811015610989578261173a85838151811061172d57fe5b6020026020010151611532565b6040516020018083805190602001908083835b6020831061178a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161174d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905285519190930192850191508083835b6020831061180e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016117d1565b6001836020036101000a038019825116818451168082178552505050505050905001807f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060050192505050604051602081830303815290604052915083818151811061187957fe5b60200260200101517f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b836040518080602001828103825283818151815260200191508051906020019080838360005b838110156118e05781810151838201526020016118c8565b50505050905090810190601f16801561190d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2600101611714565b805182511461197c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806140f06035913960400191505060405180910390fd5b815160005b81811015611b6e57611a1183828151811061199857fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106119ec57fe5b6020026020010151815260200190815260200160002054612dd290919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110611a5d57fe5b6020026020010151815260200190815260200160002081905550611aff838281518110611a8657fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110611ada57fe5b6020026020010151815260200190815260200160002054612e4990919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110611b4b57fe5b602090810291909101810151825281019190915260400160002055600101611981565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611c1b578181015183820152602001611c03565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c5a578181015183820152602001611c42565b5050505090500194505050505060405180910390a45050505050565b611c958573ffffffffffffffffffffffffffffffffffffffff16612ec4565b15610cec5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611d4d578181015183820152602001611d35565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611d8c578181015183820152602001611d74565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611dc8578181015183820152602001611db0565b50505050905090810190601f168015611df55780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611e1a57600080fd5b5087f1158015611e2e573d6000803e3d6000fd5b50505050506040513d6020811015611e4557600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610cea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f81526020018061432d603f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611f1c9082612dd2565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b8051611fa19060039060208401906130b2565b5050565b60608083806020019051810190611fbc91906139c0565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611ff4836041612d0d565b905081811080159061200857508160640181105b61203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613ec2565b600061207a8683878051906020012060405160200161205f93929190613b00565b60405160208183030381529060405280519060200120612efb565b9050606086838760405160200161209393929190613b27565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf599161211e91613f7c565b60405180910390a261213289838388610cf4565b612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613d4e565b50505050509392505050565b60006121838260600151612c50565b60f81c9050600281106121c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613f1f565b60008160ff1660028111156121d357fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff161561220957866040015161220b565b335b9250600085600281111561221b57fe5b141561231a578660600151806020019051810190612239919061331c565b909450915073ffffffffffffffffffffffffffffffffffffffff841630141561228a5761226888848484612712565b6122858884845a8560405180602001604052806000815250612815565b612315565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a906122e2908b90879087908790600401613b8f565b600060405180830381600087803b1580156122fc57600080fd5b505af1158015612310573d6000803e3d6000fd5b505050505b612413565b86606001518060200190518101906123329190613300565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd9061238b908b9087908690600401613b5e565b602060405180830381600087803b1580156123a557600080fd5b505af11580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd9190613964565b612413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613e08565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208684529091529020546124569083612e49565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461098960008585855a86612815565b81518151811461252d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806141fc6030913960400191505060405180910390fd5b60005b8181101561260a5761259b83828151811061254757fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106119ec57fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008684815181106125e757fe5b602090810291909101810151825281019190915260400160002055600101612530565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156126b85781810151838201526020016126a0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156126f75781810151838201526020016126df565b5050505090500194505050505060405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832085845290915290205461274b9082612dd2565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152602081815260408083208784528252808320949094559186168152808252828120858252909152205461279b9082612e49565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6128348573ffffffffffffffffffffffffffffffffffffffff16612ec4565b15610cec5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156128ed5781810151838201526020016128d5565b50505050905090810190601f16801561291a5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561293d57600080fd5b5087f1158015612951573d6000803e3d6000fd5b50505050506040513d602081101561296857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610cea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061436c603a913960400191505060405180910390fd5b8151835114612a60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806142fd6030913960400191505060405180910390fd5b825160005b81811015612b3f57612ad0848281518110612a7c57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888581518110611ada57fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878481518110612b1c57fe5b602090810291909101810151825281019190915260400160002055600101612a65565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612bed578181015183820152602001612bd5565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612c2c578181015183820152602001612c14565b5050505090500194505050505060405180910390a461060460008686865a87611c76565b600080825111612cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061408f6037913960400191505060405180910390fd5b81600183510381518110612cbb57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612d6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806143a6603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612dc957506001610374565b6103718261302a565b600082821115612e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015612ebd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590612ebd57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612fc857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612f8b565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826130e8576000855561312e565b82601f1061310157805160ff191683800117855561312e565b8280016001018555821561312e579182015b8281111561312e578251825591602001919060010190613113565b5061313a92915061313e565b5090565b5b8082111561313a576000815560010161313f565b600082601f830112613163578081fd5b813561317661317182613fa9565b613f85565b81815291506020808301908481018184028601820187101561319757600080fd5b60005b848110156131b65781358452928201929082019060010161319a565b505050505092915050565b600082601f8301126131d1578081fd5b81356131df61317182613fc7565b91508082528360208285010111156131f657600080fd5b8060208401602084013760009082016020015292915050565b600082601f83011261321f578081fd5b815161322d61317182613fc7565b915080825283602082850101111561324457600080fd5b613255816020840160208601614007565b5092915050565b60006080828403121561326d578081fd5b6040516080810167ffffffffffffffff828210818311171561328b57fe5b816040528293508451835260208501516020840152604085015191506132b082614033565b81604084015260608501519150808211156132ca57600080fd5b506132d78582860161320f565b6060830152505092915050565b6000602082840312156132f5578081fd5b8135612ebd81614033565b600060208284031215613311578081fd5b8151612ebd81614033565b6000806040838503121561332e578081fd5b825161333981614033565b6020939093015192949293505050565b6000806040838503121561335b578182fd5b823561336681614033565b9150602083013561337681614033565b809150509250929050565b60008060008060008060c08789031215613399578182fd5b86356133a481614033565b955060208701356133b481614033565b9450604087013567ffffffffffffffff808211156133d0578384fd5b6133dc8a838b01613153565b955060608901359150808211156133f1578384fd5b6133fd8a838b01613153565b94506080890135915061340f82614055565b90925060a08801359080821115613424578283fd5b5061343189828a016131c1565b9150509295509295509295565b600080600080600060a08688031215613455578081fd5b853561346081614033565b9450602086013561347081614033565b9350604086013567ffffffffffffffff8082111561348c578283fd5b61349889838a01613153565b945060608801359150808211156134ad578283fd5b6134b989838a01613153565b935060808801359150808211156134ce578283fd5b506134db888289016131c1565b9150509295509295909350565b600080600080600060a086880312156134ff578283fd5b853561350a81614033565b9450602086013561351a81614033565b9350604086013561352a81614055565b9250606086013561353a81614055565b9150608086013567ffffffffffffffff811115613555578182fd5b6134db888289016131c1565b60008060008060008060c08789031215613579578384fd5b863561358481614033565b9550602087013561359481614033565b9450604087013593506060870135925060808701356135b281614055565b915060a087013567ffffffffffffffff8111156135cd578182fd5b61343189828a016131c1565b600080600080600060a086880312156135f0578283fd5b85356135fb81614033565b9450602086013561360b81614033565b93506040860135925060608601359150608086013567ffffffffffffffff811115613555578182fd5b600080600060608486031215613648578081fd5b833561365381614033565b9250602084013567ffffffffffffffff8082111561366f578283fd5b61367b87838801613153565b93506040860135915080821115613690578283fd5b5061369d86828701613153565b9150509250925092565b600080600080608085870312156136bc578182fd5b84356136c781614033565b9350602085013567ffffffffffffffff808211156136e3578384fd5b6136ef88838901613153565b94506040870135915080821115613704578384fd5b61371088838901613153565b93506060870135915080821115613725578283fd5b50613732878288016131c1565b91505092959194509250565b60008060408385031215613750578182fd5b823561375b81614033565b9150602083013561337681614055565b60008060008060808587031215613780578182fd5b843561378b81614033565b935060208501359250604085013567ffffffffffffffff808211156137ae578384fd5b613710888389016131c1565b600080604083850312156137cc578182fd5b82356137d781614033565b946020939093013593505050565b6000806000606084860312156137f9578081fd5b833561380481614033565b95602085013595506040909401359392505050565b6000806000806080858703121561382e578182fd5b843561383981614033565b93506020850135925060408501359150606085013567ffffffffffffffff811115613862578182fd5b613732878288016131c1565b60008060408385031215613880578182fd5b823567ffffffffffffffff80821115613897578384fd5b818501915085601f8301126138aa578384fd5b81356138b861317182613fa9565b80828252602080830192508086018a8283870289010111156138d8578889fd5b8896505b848710156139035780356138ef81614033565b8452600196909601959281019281016138dc565b50909650870135935050508082111561391a578283fd5b5061392785828601613153565b9150509250929050565b600060208284031215613942578081fd5b813567ffffffffffffffff811115613958578182fd5b6114cd84828501613153565b600060208284031215613975578081fd5b8151612ebd81614055565b600060208284031215613991578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612ebd578182fd5b600080604083850312156139d2578182fd5b825167ffffffffffffffff808211156139e9578384fd5b6139f58683870161320f565b93506020850151915080821115613a0a578283fd5b506139278582860161320f565b600060208284031215613a28578081fd5b813567ffffffffffffffff811115613a3e578182fd5b6114cd848285016131c1565b600060208284031215613a5b578081fd5b815167ffffffffffffffff811115613a71578182fd5b6114cd8482850161325c565b60008060408385031215613a8f578182fd5b825167ffffffffffffffff80821115613aa6578384fd5b6139f58683870161325c565b600060208284031215613ac3578081fd5b5035919050565b815160009082906020808601845b83811015613af457815185529382019390820190600101613ad8565b50929695505050505050565b60008451613b12818460208901614007565b91909101928352506020820152604001919050565b60008451613b39818460208901614007565b82018481528351613b51816020808501908801614007565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b81811015613c0c57835183529284019291840191600101613bf0565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b6000602082528251806020840152613cbf816040850160208701614007565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526033908201527f455243313135354d657461236d657461536166655472616e7366657246726f6d60408201527f3a20494e56414c49445f524543495049454e5400000000000000000000000000606082015260800190565b60208082526033908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f5349474e415455524500000000000000000000000000606082015260800190565b60208082526023908201527f455243313135354d657461646174614d6f636b3a20494e56414c49445f4d455460408201527f484f440000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f455243313135354d657461235f7472616e736665724761734665653a2045524360408201527f32305f5452414e534645525f4641494c45440000000000000000000000000000606082015260800190565b60208082526038908201527f455243313135354d657461236d6574615361666542617463685472616e73666560408201527f7246726f6d3a20494e56414c49445f524543495049454e540000000000000000606082015260800190565b6020808252602f908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f4e4f4e43450000000000000000000000000000000000606082015260800190565b6020808252602e908201527f455243313135354d657461235f7472616e736665724761734665653a20554e5360408201527f5550504f525445445f544f4b454e000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715613fa157fe5b604052919050565b600067ffffffffffffffff821115613fbd57fe5b5060209081020190565b600067ffffffffffffffff821115613fdb57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561402257818101518382015260200161400a565b838111156109895750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146104d557600080fd5b80151581146104d557600080fdfe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f52455155495245444552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f524551554952454445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e455245524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147454c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544a26469706673582212205b6ba23a17207368593df6be7d3051176898a23f96953308375c5482290d6e9064736f6c63430007040033", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200226d3803806200226d8339810160408190526200003491620001dc565b8151829082906200004d9060039060208501906200006e565b508051620000639060029060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b61201980620002546000396000f3fe608060405234801561001057600080fd5b50600436106100d35760003560e01c80634e1273f411610081578063a22cb4651161005b578063a22cb465146101e2578063e985e9c5146101f5578063f242432a14610208576100d3565b80634e1273f4146101a75780636c0360eb146101c75780637e518ec8146101cf576100d3565b80630e89341c116100b25780630e89341c1461016c5780631ea430d41461017f5780632eb2c2d614610194576100d3565b8062fdd58e1461010e57806301ffc9a71461013757806306fdde0314610157575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010590611dad565b60405180910390fd5b61012161011c366004611b3d565b61021b565b60405161012e9190611e0a565b60405180910390f35b61014a610145366004611c62565b61024e565b60405161012e9190611d31565b61015f610261565b60405161012e9190611d3c565b61015f61017a366004611cd5565b61030d565b61019261018d366004611c27565b610460565b005b6101926101a23660046119fa565b61046c565b6101ba6101b5366004611b66565b610577565b60405161012e9190611ced565b61015f6106c3565b6101926101dd366004611ca2565b610739565b6101926101f0366004611b03565b610742565b61014a6102033660046119c8565b6107db565b610192610216366004611aa0565b610816565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b60006102598261091a565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b505050505081565b6060600261031a83610977565b60405160200180838054600181600116156101000203166002900480156103785780601f10610356576101008083540402835291820191610378565b820191906000526020600020905b815481529060010190602001808311610364575b5050825160208401908083835b602083106103c257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610385565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b61046981610aa3565b50565b3373ffffffffffffffffffffffffffffffffffffffff86161480610495575061049585336107db565b6104ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611f3c602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610556576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180611ee06030913960400191505060405180910390fd5b61056285858585610d6a565b610570858585855a866110be565b5050505050565b606081518351146105d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611f10602c913960400191505060405180910390fd5b6060835167ffffffffffffffff811180156105ed57600080fd5b50604051908082528060200260200182016040528015610617578160200160208202803683370190505b50905060005b84518110156106bb5760008086838151811061063557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085838151811061068557fe5b60200260200101518152602001908152602001600020548282815181106106a857fe5b602090810291909101015260010161061d565b509392505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f810184900484028201840190925281815292918301828280156103055780601f106102da57610100808354040283529160200191610305565b61046981611335565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061083f575061083f85336107db565b610894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611e81602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610900576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611e56602b913960400191505060405180910390fd5b61090c8585858561134c565b610570858585855a8661144f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561096e5750600161025c565b61025982611640565b6060816109b8575060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015261025c565b818060005b82156109d157600101600a830492506109bd565b60608167ffffffffffffffff811180156109ea57600080fd5b506040519080825280601f01601f191660200182016040528015610a15576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610a9957600a840660300160f81b82828060019003935081518110610a5f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610a3c565b5095945050505050565b60028054604080516020601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b820191906000526020600020905b815481529060010190602001808311610b2d57829003601f168201915b50505050509050606060005b8351811015610d645782610b7c858381518110610b6f57fe5b6020026020010151610977565b6040516020018083805190602001908083835b60208310610bcc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b8f565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905285519190930192850191508083835b60208310610c5057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c13565b6001836020036101000a038019825116818451168082178552505050505050905001807f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600501925050506040516020818303038152906040529150838181518110610cbb57fe5b60200260200101517f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b836040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d22578181015183820152602001610d0a565b50505050905090810190601f168015610d4f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2600101610b56565b50505050565b8051825114610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180611eab6035913960400191505060405180910390fd5b815160005b81811015610fb657610e59838281518110610de057fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610e3457fe5b602002602001015181526020019081526020016000205461169d90919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610ea557fe5b6020026020010151815260200190815260200160002081905550610f47838281518110610ece57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610f2257fe5b602002602001015181526020019081526020016000205461171490919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610f9357fe5b602090810291909101810151825281019190915260400160002055600101610dc9565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561106357818101518382015260200161104b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110a257818101518382015260200161108a565b5050505090500194505050505060405180910390a45050505050565b6110dd8573ffffffffffffffffffffffffffffffffffffffff1661178f565b1561132d5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561119557818101518382015260200161117d565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156111d45781810151838201526020016111bc565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156112105781810151838201526020016111f8565b50505050905090810190601f16801561123d5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561126257600080fd5b5087f1158015611276573d6000803e3d6000fd5b50505050506040513d602081101561128d57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c81000000000000000000000000000000000000000000000000000000001461132b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180611f6b603f913960400191505060405180910390fd5b505b505050505050565b8051611348906002906020840190611810565b5050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320858452909152902054611385908261169d565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546113d59082611714565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b61146e8573ffffffffffffffffffffffffffffffffffffffff1661178f565b1561132d5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561152757818101518382015260200161150f565b50505050905090810190601f1680156115545780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561157757600080fd5b5087f115801561158b573d6000803e3d6000fd5b50505050506040513d60208110156115a257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e61000000000000000000000000000000000000000000000000000000001461132b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180611faa603a913960400191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156116945750600161025c565b610259826117c6565b60008282111561170e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561178857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f801580159061178857507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611846576000855561188c565b82601f1061185f57805160ff191683800117855561188c565b8280016001018555821561188c579182015b8281111561188c578251825591602001919060010190611871565b5061189892915061189c565b5090565b5b80821115611898576000815560010161189d565b803573ffffffffffffffffffffffffffffffffffffffff8116811461025c57600080fd5b600082601f8301126118e5578081fd5b81356118f86118f382611e37565b611e13565b81815291506020808301908481018184028601820187101561191957600080fd5b60005b848110156119385781358452928201929082019060010161191c565b505050505092915050565b600082601f830112611953578081fd5b813567ffffffffffffffff81111561196757fe5b61199860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611e13565b91508082528360208285010111156119af57600080fd5b8060208401602084013760009082016020015292915050565b600080604083850312156119da578182fd5b6119e3836118b1565b91506119f1602084016118b1565b90509250929050565b600080600080600060a08688031215611a11578081fd5b611a1a866118b1565b9450611a28602087016118b1565b9350604086013567ffffffffffffffff80821115611a44578283fd5b611a5089838a016118d5565b94506060880135915080821115611a65578283fd5b611a7189838a016118d5565b93506080880135915080821115611a86578283fd5b50611a9388828901611943565b9150509295509295909350565b600080600080600060a08688031215611ab7578081fd5b611ac0866118b1565b9450611ace602087016118b1565b93506040860135925060608601359150608086013567ffffffffffffffff811115611af7578182fd5b611a9388828901611943565b60008060408385031215611b15578182fd5b611b1e836118b1565b915060208301358015158114611b32578182fd5b809150509250929050565b60008060408385031215611b4f578182fd5b611b58836118b1565b946020939093013593505050565b60008060408385031215611b78578182fd5b823567ffffffffffffffff80821115611b8f578384fd5b818501915085601f830112611ba2578384fd5b8135611bb06118f382611e37565b80828252602080830192508086018a828387028901011115611bd0578889fd5b8896505b84871015611bf957611be5816118b1565b845260019690960195928101928101611bd4565b509096508701359350505080821115611c10578283fd5b50611c1d858286016118d5565b9150509250929050565b600060208284031215611c38578081fd5b813567ffffffffffffffff811115611c4e578182fd5b611c5a848285016118d5565b949350505050565b600060208284031215611c73578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611788578182fd5b600060208284031215611cb3578081fd5b813567ffffffffffffffff811115611cc9578182fd5b611c5a84828501611943565b600060208284031215611ce6578081fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015611d2557835183529284019291840191600101611d09565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015611d6857858101830151858201604001528201611d4c565b81811115611d795783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526023908201527f455243313135354d657461646174614d6f636b3a20494e56414c49445f4d455460408201527f484f440000000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715611e2f57fe5b604052919050565b600067ffffffffffffffff821115611e4b57fe5b506020908102019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a26469706673582212206acf14916287dcf68036e71958bb6100555ba2097d10d0fbb7720841796a077d64736f6c63430007040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d35760003560e01c80634e1273f411610081578063a22cb4651161005b578063a22cb465146101e2578063e985e9c5146101f5578063f242432a14610208576100d3565b80634e1273f4146101a75780636c0360eb146101c75780637e518ec8146101cf576100d3565b80630e89341c116100b25780630e89341c1461016c5780631ea430d41461017f5780632eb2c2d614610194576100d3565b8062fdd58e1461010e57806301ffc9a71461013757806306fdde0314610157575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010590611dad565b60405180910390fd5b61012161011c366004611b3d565b61021b565b60405161012e9190611e0a565b60405180910390f35b61014a610145366004611c62565b61024e565b60405161012e9190611d31565b61015f610261565b60405161012e9190611d3c565b61015f61017a366004611cd5565b61030d565b61019261018d366004611c27565b610460565b005b6101926101a23660046119fa565b61046c565b6101ba6101b5366004611b66565b610577565b60405161012e9190611ced565b61015f6106c3565b6101926101dd366004611ca2565b610739565b6101926101f0366004611b03565b610742565b61014a6102033660046119c8565b6107db565b610192610216366004611aa0565b610816565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b60006102598261091a565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b505050505081565b6060600261031a83610977565b60405160200180838054600181600116156101000203166002900480156103785780601f10610356576101008083540402835291820191610378565b820191906000526020600020905b815481529060010190602001808311610364575b5050825160208401908083835b602083106103c257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610385565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b61046981610aa3565b50565b3373ffffffffffffffffffffffffffffffffffffffff86161480610495575061049585336107db565b6104ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611f3c602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610556576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180611ee06030913960400191505060405180910390fd5b61056285858585610d6a565b610570858585855a866110be565b5050505050565b606081518351146105d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611f10602c913960400191505060405180910390fd5b6060835167ffffffffffffffff811180156105ed57600080fd5b50604051908082528060200260200182016040528015610617578160200160208202803683370190505b50905060005b84518110156106bb5760008086838151811061063557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085838151811061068557fe5b60200260200101518152602001908152602001600020548282815181106106a857fe5b602090810291909101015260010161061d565b509392505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f810184900484028201840190925281815292918301828280156103055780601f106102da57610100808354040283529160200191610305565b61046981611335565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061083f575061083f85336107db565b610894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611e81602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610900576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611e56602b913960400191505060405180910390fd5b61090c8585858561134c565b610570858585855a8661144f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561096e5750600161025c565b61025982611640565b6060816109b8575060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015261025c565b818060005b82156109d157600101600a830492506109bd565b60608167ffffffffffffffff811180156109ea57600080fd5b506040519080825280601f01601f191660200182016040528015610a15576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610a9957600a840660300160f81b82828060019003935081518110610a5f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610a3c565b5095945050505050565b60028054604080516020601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b820191906000526020600020905b815481529060010190602001808311610b2d57829003601f168201915b50505050509050606060005b8351811015610d645782610b7c858381518110610b6f57fe5b6020026020010151610977565b6040516020018083805190602001908083835b60208310610bcc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b8f565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905285519190930192850191508083835b60208310610c5057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c13565b6001836020036101000a038019825116818451168082178552505050505050905001807f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600501925050506040516020818303038152906040529150838181518110610cbb57fe5b60200260200101517f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b836040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d22578181015183820152602001610d0a565b50505050905090810190601f168015610d4f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2600101610b56565b50505050565b8051825114610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180611eab6035913960400191505060405180910390fd5b815160005b81811015610fb657610e59838281518110610de057fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610e3457fe5b602002602001015181526020019081526020016000205461169d90919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610ea557fe5b6020026020010151815260200190815260200160002081905550610f47838281518110610ece57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610f2257fe5b602002602001015181526020019081526020016000205461171490919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610f9357fe5b602090810291909101810151825281019190915260400160002055600101610dc9565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561106357818101518382015260200161104b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110a257818101518382015260200161108a565b5050505090500194505050505060405180910390a45050505050565b6110dd8573ffffffffffffffffffffffffffffffffffffffff1661178f565b1561132d5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561119557818101518382015260200161117d565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156111d45781810151838201526020016111bc565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156112105781810151838201526020016111f8565b50505050905090810190601f16801561123d5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561126257600080fd5b5087f1158015611276573d6000803e3d6000fd5b50505050506040513d602081101561128d57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c81000000000000000000000000000000000000000000000000000000001461132b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180611f6b603f913960400191505060405180910390fd5b505b505050505050565b8051611348906002906020840190611810565b5050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320858452909152902054611385908261169d565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546113d59082611714565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b61146e8573ffffffffffffffffffffffffffffffffffffffff1661178f565b1561132d5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561152757818101518382015260200161150f565b50505050905090810190601f1680156115545780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561157757600080fd5b5087f115801561158b573d6000803e3d6000fd5b50505050506040513d60208110156115a257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e61000000000000000000000000000000000000000000000000000000001461132b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180611faa603a913960400191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156116945750600161025c565b610259826117c6565b60008282111561170e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561178857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f801580159061178857507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611846576000855561188c565b82601f1061185f57805160ff191683800117855561188c565b8280016001018555821561188c579182015b8281111561188c578251825591602001919060010190611871565b5061189892915061189c565b5090565b5b80821115611898576000815560010161189d565b803573ffffffffffffffffffffffffffffffffffffffff8116811461025c57600080fd5b600082601f8301126118e5578081fd5b81356118f86118f382611e37565b611e13565b81815291506020808301908481018184028601820187101561191957600080fd5b60005b848110156119385781358452928201929082019060010161191c565b505050505092915050565b600082601f830112611953578081fd5b813567ffffffffffffffff81111561196757fe5b61199860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611e13565b91508082528360208285010111156119af57600080fd5b8060208401602084013760009082016020015292915050565b600080604083850312156119da578182fd5b6119e3836118b1565b91506119f1602084016118b1565b90509250929050565b600080600080600060a08688031215611a11578081fd5b611a1a866118b1565b9450611a28602087016118b1565b9350604086013567ffffffffffffffff80821115611a44578283fd5b611a5089838a016118d5565b94506060880135915080821115611a65578283fd5b611a7189838a016118d5565b93506080880135915080821115611a86578283fd5b50611a9388828901611943565b9150509295509295909350565b600080600080600060a08688031215611ab7578081fd5b611ac0866118b1565b9450611ace602087016118b1565b93506040860135925060608601359150608086013567ffffffffffffffff811115611af7578182fd5b611a9388828901611943565b60008060408385031215611b15578182fd5b611b1e836118b1565b915060208301358015158114611b32578182fd5b809150509250929050565b60008060408385031215611b4f578182fd5b611b58836118b1565b946020939093013593505050565b60008060408385031215611b78578182fd5b823567ffffffffffffffff80821115611b8f578384fd5b818501915085601f830112611ba2578384fd5b8135611bb06118f382611e37565b80828252602080830192508086018a828387028901011115611bd0578889fd5b8896505b84871015611bf957611be5816118b1565b845260019690960195928101928101611bd4565b509096508701359350505080821115611c10578283fd5b50611c1d858286016118d5565b9150509250929050565b600060208284031215611c38578081fd5b813567ffffffffffffffff811115611c4e578182fd5b611c5a848285016118d5565b949350505050565b600060208284031215611c73578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611788578182fd5b600060208284031215611cb3578081fd5b813567ffffffffffffffff811115611cc9578182fd5b611c5a84828501611943565b600060208284031215611ce6578081fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015611d2557835183529284019291840191600101611d09565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015611d6857858101830151858201604001528201611d4c565b81811115611d795783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526023908201527f455243313135354d657461646174614d6f636b3a20494e56414c49445f4d455460408201527f484f440000000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715611e2f57fe5b604052919050565b600067ffffffffffffffff821115611e4b57fe5b506020908102019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a26469706673582212206acf14916287dcf68036e71958bb6100555ba2097d10d0fbb7720841796a077d64736f6c63430007040033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/artifacts/contracts/mocks/ERC1155MintBurnMock.sol/ERC1155MintBurnMock.json b/src/artifacts/contracts/mocks/ERC1155MintBurnMock.sol/ERC1155MintBurnMock.json index 837592e..473d35e 100644 --- a/src/artifacts/contracts/mocks/ERC1155MintBurnMock.sol/ERC1155MintBurnMock.json +++ b/src/artifacts/contracts/mocks/ERC1155MintBurnMock.sol/ERC1155MintBurnMock.json @@ -3,6 +3,22 @@ "contractName": "ERC1155MintBurnMock", "sourceName": "contracts/mocks/ERC1155MintBurnMock.sol", "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_baseURI", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, { "anonymous": false, "inputs": [ @@ -173,6 +189,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "baseURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -299,6 +328,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -422,8 +464,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50612319806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d35760003560e01c8063a22cb46511610081578063d7a0ad901161005b578063d7a0ad90146101f8578063e985e9c51461020b578063f242432a1461021e576100d3565b8063a22cb465146101bf578063a3f091f5146101d2578063bd7a6c41146101e5576100d3565b80632eb2c2d6116100b25780632eb2c2d614610177578063437ecbe91461018c5780634e1273f41461019f576100d3565b8062fdd58e1461010e57806301ffc9a7146101375780630e89341c14610157575b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101059061204d565b60405180910390fd5b61012161011c366004611dc6565b610231565b60405161012e91906120aa565b60405180910390f35b61014a610145366004611f35565b610264565b60405161012e9190611fd1565b61016a610165366004611f75565b610277565b60405161012e9190611fdc565b61018a610185366004611b7d565b6103ca565b005b61018a61019a366004611def565b6104d5565b6101b26101ad366004611e74565b6104e5565b60405161012e9190611f8d565b61018a6101cd366004611d8c565b610631565b61018a6101e0366004611e21565b6106ca565b61018a6101f3366004611c86565b6106dc565b61018a610206366004611cf7565b6106e7565b61014a610219366004611b4b565b6106f3565b61018a61022c366004611c23565b61072e565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b600061026f82610832565b90505b919050565b606060026102848361088f565b60405160200180838054600181600116156101000203166002900480156102e25780601f106102c05761010080835404028352918201916102e2565b820191906000526020600020905b8154815290600101906020018083116102ce575b5050825160208401908083835b6020831061032c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102ef565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff861614806103f357506103f385336106f3565b610448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061220c602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166104b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806121806030913960400191505060405180910390fd5b6104c0858585856109bb565b6104ce858585855a86610d0f565b5050505050565b6104e0838383610f86565b505050565b60608151835114610541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121e0602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561055b57600080fd5b50604051908082528060200260200182016040528015610585578160200160208202803683370190505b50905060005b8451811015610629576000808683815181106105a357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106105f357fe5b602002602001015181526020019081526020016000205482828151811061061657fe5b602090810291909101015260010161058b565b509392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6106d684848484611031565b50505050565b6104e08383836110e6565b6106d684848484611326565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610757575061075785336106f3565b6107ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612121602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806120f6602b913960400191505060405180910390fd5b61082485858585611570565b6104ce858585855a86611673565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561088657506001610272565b61026f82611864565b6060816108d0575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610272565b818060005b82156108e957600101600a830492506108d5565b60608167ffffffffffffffff8111801561090257600080fd5b506040519080825280601f01601f19166020018201604052801561092d576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b83156109b157600a840660300160f81b8282806001900393508151811061097757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610954565b5095945050505050565b8051825114610a15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018061214b6035913960400191505060405180910390fd5b815160005b81811015610c0757610aaa838281518110610a3157fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610a8557fe5b60200260200101518152602001908152602001600020546118c190919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610af657fe5b6020026020010151815260200190815260200160002081905550610b98838281518110610b1f57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610b7357fe5b602002602001015181526020019081526020016000205461193890919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610be457fe5b602090810291909101810151825281019190915260400160002055600101610a1a565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610cb4578181015183820152602001610c9c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610cf3578181015183820152602001610cdb565b5050505090500194505050505060405180910390a45050505050565b610d2e8573ffffffffffffffffffffffffffffffffffffffff166119b3565b15610f7e5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610de6578181015183820152602001610dce565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015610e25578181015183820152602001610e0d565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015610e61578181015183820152602001610e49565b50505050905090810190601f168015610e8e5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015610eb357600080fd5b5087f1158015610ec7573d6000803e3d6000fd5b50505050506040513d6020811015610ede57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610f7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f81526020018061226b603f913960400191505060405180910390fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054610fbf90826118c1565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915290205461106a9083611938565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a46106d660008585855a86611673565b815181518114611141576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806121b06030913960400191505060405180910390fd5b60005b8181101561121e576111af83828151811061115b57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610a8557fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008684815181106111fb57fe5b602090810291909101810151825281019190915260400160002055600101611144565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156112cc5781810151838201526020016112b4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561130b5781810151838201526020016112f3565b5050505090500194505050505060405180910390a450505050565b8151835114611380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061223b6030913960400191505060405180910390fd5b825160005b8181101561145f576113f084828151811061139c57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888581518110610b7357fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087848151811061143c57fe5b602090810291909101810151825281019190915260400160002055600101611385565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561150d5781810151838201526020016114f5565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561154c578181015183820152602001611534565b5050505090500194505050505060405180910390a46104ce60008686865a87610d0f565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208584529091529020546115a990826118c1565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546115f99082611938565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6116928573ffffffffffffffffffffffffffffffffffffffff166119b3565b15610f7e5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561174b578181015183820152602001611733565b50505050905090810190601f1680156117785780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561179b57600080fd5b5087f11580156117af573d6000803e3d6000fd5b50505050506040513d60208110156117c657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610f7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806122aa603a913960400191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156118b857506001610272565b61026f826119ea565b60008282111561193257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b6000828201838110156119ac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f80158015906119ac57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461027257600080fd5b600082601f830112611a68578081fd5b8135611a7b611a76826120d7565b6120b3565b818152915060208083019084810181840286018201871015611a9c57600080fd5b60005b84811015611abb57813584529282019290820190600101611a9f565b505050505092915050565b600082601f830112611ad6578081fd5b813567ffffffffffffffff811115611aea57fe5b611b1b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016120b3565b9150808252836020828501011115611b3257600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611b5d578182fd5b611b6683611a34565b9150611b7460208401611a34565b90509250929050565b600080600080600060a08688031215611b94578081fd5b611b9d86611a34565b9450611bab60208701611a34565b9350604086013567ffffffffffffffff80821115611bc7578283fd5b611bd389838a01611a58565b94506060880135915080821115611be8578283fd5b611bf489838a01611a58565b93506080880135915080821115611c09578283fd5b50611c1688828901611ac6565b9150509295509295909350565b600080600080600060a08688031215611c3a578081fd5b611c4386611a34565b9450611c5160208701611a34565b93506040860135925060608601359150608086013567ffffffffffffffff811115611c7a578182fd5b611c1688828901611ac6565b600080600060608486031215611c9a578283fd5b611ca384611a34565b9250602084013567ffffffffffffffff80821115611cbf578384fd5b611ccb87838801611a58565b93506040860135915080821115611ce0578283fd5b50611ced86828701611a58565b9150509250925092565b60008060008060808587031215611d0c578384fd5b611d1585611a34565b9350602085013567ffffffffffffffff80821115611d31578485fd5b611d3d88838901611a58565b94506040870135915080821115611d52578384fd5b611d5e88838901611a58565b93506060870135915080821115611d73578283fd5b50611d8087828801611ac6565b91505092959194509250565b60008060408385031215611d9e578182fd5b611da783611a34565b915060208301358015158114611dbb578182fd5b809150509250929050565b60008060408385031215611dd8578182fd5b611de183611a34565b946020939093013593505050565b600080600060608486031215611e03578283fd5b611e0c84611a34565b95602085013595506040909401359392505050565b60008060008060808587031215611e36578384fd5b611e3f85611a34565b93506020850135925060408501359150606085013567ffffffffffffffff811115611e68578182fd5b611d8087828801611ac6565b60008060408385031215611e86578081fd5b823567ffffffffffffffff80821115611e9d578283fd5b818501915085601f830112611eb0578283fd5b8135611ebe611a76826120d7565b80828252602080830192508086018a828387028901011115611ede578788fd5b8796505b84871015611f0757611ef381611a34565b845260019690960195928101928101611ee2565b509096508701359350505080821115611f1e578283fd5b50611f2b85828601611a58565b9150509250929050565b600060208284031215611f46578081fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146119ac578182fd5b600060208284031215611f86578081fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015611fc557835183529284019291840191600101611fa9565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b8181101561200857858101830151858201604001528201611fec565b818111156120195783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff811182821017156120cf57fe5b604052919050565b600067ffffffffffffffff8211156120eb57fe5b506020908102019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a264697066735822122005eb5bcdc323736890462d08c987b3a961a21cf7a6fa3483643ef5186a261fc864736f6c63430007040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d35760003560e01c8063a22cb46511610081578063d7a0ad901161005b578063d7a0ad90146101f8578063e985e9c51461020b578063f242432a1461021e576100d3565b8063a22cb465146101bf578063a3f091f5146101d2578063bd7a6c41146101e5576100d3565b80632eb2c2d6116100b25780632eb2c2d614610177578063437ecbe91461018c5780634e1273f41461019f576100d3565b8062fdd58e1461010e57806301ffc9a7146101375780630e89341c14610157575b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101059061204d565b60405180910390fd5b61012161011c366004611dc6565b610231565b60405161012e91906120aa565b60405180910390f35b61014a610145366004611f35565b610264565b60405161012e9190611fd1565b61016a610165366004611f75565b610277565b60405161012e9190611fdc565b61018a610185366004611b7d565b6103ca565b005b61018a61019a366004611def565b6104d5565b6101b26101ad366004611e74565b6104e5565b60405161012e9190611f8d565b61018a6101cd366004611d8c565b610631565b61018a6101e0366004611e21565b6106ca565b61018a6101f3366004611c86565b6106dc565b61018a610206366004611cf7565b6106e7565b61014a610219366004611b4b565b6106f3565b61018a61022c366004611c23565b61072e565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b600061026f82610832565b90505b919050565b606060026102848361088f565b60405160200180838054600181600116156101000203166002900480156102e25780601f106102c05761010080835404028352918201916102e2565b820191906000526020600020905b8154815290600101906020018083116102ce575b5050825160208401908083835b6020831061032c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102ef565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff861614806103f357506103f385336106f3565b610448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061220c602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166104b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806121806030913960400191505060405180910390fd5b6104c0858585856109bb565b6104ce858585855a86610d0f565b5050505050565b6104e0838383610f86565b505050565b60608151835114610541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121e0602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561055b57600080fd5b50604051908082528060200260200182016040528015610585578160200160208202803683370190505b50905060005b8451811015610629576000808683815181106105a357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106105f357fe5b602002602001015181526020019081526020016000205482828151811061061657fe5b602090810291909101015260010161058b565b509392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6106d684848484611031565b50505050565b6104e08383836110e6565b6106d684848484611326565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610757575061075785336106f3565b6107ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612121602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806120f6602b913960400191505060405180910390fd5b61082485858585611570565b6104ce858585855a86611673565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561088657506001610272565b61026f82611864565b6060816108d0575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610272565b818060005b82156108e957600101600a830492506108d5565b60608167ffffffffffffffff8111801561090257600080fd5b506040519080825280601f01601f19166020018201604052801561092d576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b83156109b157600a840660300160f81b8282806001900393508151811061097757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610954565b5095945050505050565b8051825114610a15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018061214b6035913960400191505060405180910390fd5b815160005b81811015610c0757610aaa838281518110610a3157fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610a8557fe5b60200260200101518152602001908152602001600020546118c190919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610af657fe5b6020026020010151815260200190815260200160002081905550610b98838281518110610b1f57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610b7357fe5b602002602001015181526020019081526020016000205461193890919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610be457fe5b602090810291909101810151825281019190915260400160002055600101610a1a565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610cb4578181015183820152602001610c9c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610cf3578181015183820152602001610cdb565b5050505090500194505050505060405180910390a45050505050565b610d2e8573ffffffffffffffffffffffffffffffffffffffff166119b3565b15610f7e5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610de6578181015183820152602001610dce565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015610e25578181015183820152602001610e0d565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015610e61578181015183820152602001610e49565b50505050905090810190601f168015610e8e5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015610eb357600080fd5b5087f1158015610ec7573d6000803e3d6000fd5b50505050506040513d6020811015610ede57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610f7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f81526020018061226b603f913960400191505060405180910390fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054610fbf90826118c1565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915290205461106a9083611938565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a46106d660008585855a86611673565b815181518114611141576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806121b06030913960400191505060405180910390fd5b60005b8181101561121e576111af83828151811061115b57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610a8557fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008684815181106111fb57fe5b602090810291909101810151825281019190915260400160002055600101611144565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156112cc5781810151838201526020016112b4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561130b5781810151838201526020016112f3565b5050505090500194505050505060405180910390a450505050565b8151835114611380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061223b6030913960400191505060405180910390fd5b825160005b8181101561145f576113f084828151811061139c57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888581518110610b7357fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087848151811061143c57fe5b602090810291909101810151825281019190915260400160002055600101611385565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561150d5781810151838201526020016114f5565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561154c578181015183820152602001611534565b5050505090500194505050505060405180910390a46104ce60008686865a87610d0f565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208584529091529020546115a990826118c1565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546115f99082611938565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6116928573ffffffffffffffffffffffffffffffffffffffff166119b3565b15610f7e5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561174b578181015183820152602001611733565b50505050905090810190601f1680156117785780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561179b57600080fd5b5087f11580156117af573d6000803e3d6000fd5b50505050506040513d60208110156117c657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610f7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806122aa603a913960400191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156118b857506001610272565b61026f826119ea565b60008282111561193257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b6000828201838110156119ac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f80158015906119ac57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461027257600080fd5b600082601f830112611a68578081fd5b8135611a7b611a76826120d7565b6120b3565b818152915060208083019084810181840286018201871015611a9c57600080fd5b60005b84811015611abb57813584529282019290820190600101611a9f565b505050505092915050565b600082601f830112611ad6578081fd5b813567ffffffffffffffff811115611aea57fe5b611b1b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016120b3565b9150808252836020828501011115611b3257600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611b5d578182fd5b611b6683611a34565b9150611b7460208401611a34565b90509250929050565b600080600080600060a08688031215611b94578081fd5b611b9d86611a34565b9450611bab60208701611a34565b9350604086013567ffffffffffffffff80821115611bc7578283fd5b611bd389838a01611a58565b94506060880135915080821115611be8578283fd5b611bf489838a01611a58565b93506080880135915080821115611c09578283fd5b50611c1688828901611ac6565b9150509295509295909350565b600080600080600060a08688031215611c3a578081fd5b611c4386611a34565b9450611c5160208701611a34565b93506040860135925060608601359150608086013567ffffffffffffffff811115611c7a578182fd5b611c1688828901611ac6565b600080600060608486031215611c9a578283fd5b611ca384611a34565b9250602084013567ffffffffffffffff80821115611cbf578384fd5b611ccb87838801611a58565b93506040860135915080821115611ce0578283fd5b50611ced86828701611a58565b9150509250925092565b60008060008060808587031215611d0c578384fd5b611d1585611a34565b9350602085013567ffffffffffffffff80821115611d31578485fd5b611d3d88838901611a58565b94506040870135915080821115611d52578384fd5b611d5e88838901611a58565b93506060870135915080821115611d73578283fd5b50611d8087828801611ac6565b91505092959194509250565b60008060408385031215611d9e578182fd5b611da783611a34565b915060208301358015158114611dbb578182fd5b809150509250929050565b60008060408385031215611dd8578182fd5b611de183611a34565b946020939093013593505050565b600080600060608486031215611e03578283fd5b611e0c84611a34565b95602085013595506040909401359392505050565b60008060008060808587031215611e36578384fd5b611e3f85611a34565b93506020850135925060408501359150606085013567ffffffffffffffff811115611e68578182fd5b611d8087828801611ac6565b60008060408385031215611e86578081fd5b823567ffffffffffffffff80821115611e9d578283fd5b818501915085601f830112611eb0578283fd5b8135611ebe611a76826120d7565b80828252602080830192508086018a828387028901011115611ede578788fd5b8796505b84871015611f0757611ef381611a34565b845260019690960195928101928101611ee2565b509096508701359350505080821115611f1e578283fd5b50611f2b85828601611a58565b9150509250929050565b600060208284031215611f46578081fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146119ac578182fd5b600060208284031215611f86578081fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015611fc557835183529284019291840191600101611fa9565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b8181101561200857858101830151858201604001528201611fec565b818111156120195783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff811182821017156120cf57fe5b604052919050565b600067ffffffffffffffff8211156120eb57fe5b506020908102019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a264697066735822122005eb5bcdc323736890462d08c987b3a961a21cf7a6fa3483643ef5186a261fc864736f6c63430007040033", + "bytecode": "0x60806040523480156200001157600080fd5b50604051620026b5380380620026b58339810160408190526200003491620001dc565b8151829082906200004d9060039060208501906200006e565b508051620000639060029060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b61246180620002546000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c80636c0360eb1161008c578063bd7a6c4111610066578063bd7a6c411461020b578063d7a0ad901461021e578063e985e9c514610231578063f242432a14610244576100e9565b80636c0360eb146101dd578063a22cb465146101e5578063a3f091f5146101f8576100e9565b80630e89341c116100c85780630e89341c146101825780632eb2c2d614610195578063437ecbe9146101aa5780634e1273f4146101bd576100e9565b8062fdd58e1461012457806301ffc9a71461014d57806306fdde031461016d575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011b90612195565b60405180910390fd5b610137610132366004611f0e565b610257565b60405161014491906121f2565b60405180910390f35b61016061015b36600461207d565b61028a565b6040516101449190612119565b61017561029d565b6040516101449190612124565b6101756101903660046120bd565b610349565b6101a86101a3366004611cc5565b61049c565b005b6101a86101b8366004611f37565b6105a7565b6101d06101cb366004611fbc565b6105b7565b60405161014491906120d5565b610175610703565b6101a86101f3366004611ed4565b610779565b6101a8610206366004611f69565b610812565b6101a8610219366004611dce565b610824565b6101a861022c366004611e3f565b61082f565b61016061023f366004611c93565b61083b565b6101a8610252366004611d6b565b610876565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b60006102958261097a565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b505050505081565b60606002610356836109d7565b60405160200180838054600181600116156101000203166002900480156103b45780601f106103925761010080835404028352918201916103b4565b820191906000526020600020905b8154815290600101906020018083116103a0575b5050825160208401908083835b602083106103fe57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016103c1565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff861614806104c557506104c5853361083b565b61051a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612354602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610586576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806122c86030913960400191505060405180910390fd5b61059285858585610b03565b6105a0858585855a86610e57565b5050505050565b6105b28383836110ce565b505050565b60608151835114610613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612328602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561062d57600080fd5b50604051908082528060200260200182016040528015610657578160200160208202803683370190505b50905060005b84518110156106fb5760008086838151811061067557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106106c557fe5b60200260200101518152602001908152602001600020548282815181106106e857fe5b602090810291909101015260010161065d565b509392505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f810184900484028201840190925281815292918301828280156103415780601f1061031657610100808354040283529160200191610341565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61081e84848484611179565b50505050565b6105b283838361122e565b61081e8484848461146e565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061089f575061089f853361083b565b6108f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612269602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061223e602b913960400191505060405180910390fd5b61096c858585856116b8565b6105a0858585855a866117bb565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156109ce57506001610298565b610295826119ac565b606081610a18575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610298565b818060005b8215610a3157600101600a83049250610a1d565b60608167ffffffffffffffff81118015610a4a57600080fd5b506040519080825280601f01601f191660200182016040528015610a75576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610af957600a840660300160f81b82828060019003935081518110610abf57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610a9c565b5095945050505050565b8051825114610b5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806122936035913960400191505060405180910390fd5b815160005b81811015610d4f57610bf2838281518110610b7957fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610bcd57fe5b6020026020010151815260200190815260200160002054611a0990919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610c3e57fe5b6020026020010151815260200190815260200160002081905550610ce0838281518110610c6757fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610cbb57fe5b6020026020010151815260200190815260200160002054611a8090919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610d2c57fe5b602090810291909101810151825281019190915260400160002055600101610b62565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610dfc578181015183820152602001610de4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610e3b578181015183820152602001610e23565b5050505090500194505050505060405180910390a45050505050565b610e768573ffffffffffffffffffffffffffffffffffffffff16611afb565b156110c65760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610f2e578181015183820152602001610f16565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015610f6d578181015183820152602001610f55565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015610fa9578181015183820152602001610f91565b50505050905090810190601f168015610fd65780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015610ffb57600080fd5b5087f115801561100f573d6000803e3d6000fd5b50505050506040513d602081101561102657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146110c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f8152602001806123b3603f913960400191505060405180910390fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081815260408083208584529091529020546111079082611a09565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208684529091529020546111b29083611a80565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461081e60008585855a866117bb565b815181518114611289576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806122f86030913960400191505060405180910390fd5b60005b81811015611366576112f78382815181106112a357fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610bcd57fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061134357fe5b60209081029190910181015182528101919091526040016000205560010161128c565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156114145781810151838201526020016113fc565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561145357818101518382015260200161143b565b5050505090500194505050505060405180910390a450505050565b81518351146114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806123836030913960400191505060405180910390fd5b825160005b818110156115a7576115388482815181106114e457fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888581518110610cbb57fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087848151811061158457fe5b6020908102919091018101518252810191909152604001600020556001016114cd565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561165557818101518382015260200161163d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561169457818101518382015260200161167c565b5050505090500194505050505060405180910390a46105a060008686865a87610e57565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208584529091529020546116f19082611a09565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546117419082611a80565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6117da8573ffffffffffffffffffffffffffffffffffffffff16611afb565b156110c65760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561189357818101518382015260200161187b565b50505050905090810190601f1680156118c05780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156118e357600080fd5b5087f11580156118f7573d6000803e3d6000fd5b50505050506040513d602081101561190e57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146110c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806123f2603a913960400191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415611a0057506001610298565b61029582611b32565b600082821115611a7a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015611af457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590611af457507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461029857600080fd5b600082601f830112611bb0578081fd5b8135611bc3611bbe8261221f565b6121fb565b818152915060208083019084810181840286018201871015611be457600080fd5b60005b84811015611c0357813584529282019290820190600101611be7565b505050505092915050565b600082601f830112611c1e578081fd5b813567ffffffffffffffff811115611c3257fe5b611c6360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016121fb565b9150808252836020828501011115611c7a57600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611ca5578182fd5b611cae83611b7c565b9150611cbc60208401611b7c565b90509250929050565b600080600080600060a08688031215611cdc578081fd5b611ce586611b7c565b9450611cf360208701611b7c565b9350604086013567ffffffffffffffff80821115611d0f578283fd5b611d1b89838a01611ba0565b94506060880135915080821115611d30578283fd5b611d3c89838a01611ba0565b93506080880135915080821115611d51578283fd5b50611d5e88828901611c0e565b9150509295509295909350565b600080600080600060a08688031215611d82578081fd5b611d8b86611b7c565b9450611d9960208701611b7c565b93506040860135925060608601359150608086013567ffffffffffffffff811115611dc2578182fd5b611d5e88828901611c0e565b600080600060608486031215611de2578283fd5b611deb84611b7c565b9250602084013567ffffffffffffffff80821115611e07578384fd5b611e1387838801611ba0565b93506040860135915080821115611e28578283fd5b50611e3586828701611ba0565b9150509250925092565b60008060008060808587031215611e54578384fd5b611e5d85611b7c565b9350602085013567ffffffffffffffff80821115611e79578485fd5b611e8588838901611ba0565b94506040870135915080821115611e9a578384fd5b611ea688838901611ba0565b93506060870135915080821115611ebb578283fd5b50611ec887828801611c0e565b91505092959194509250565b60008060408385031215611ee6578182fd5b611eef83611b7c565b915060208301358015158114611f03578182fd5b809150509250929050565b60008060408385031215611f20578182fd5b611f2983611b7c565b946020939093013593505050565b600080600060608486031215611f4b578283fd5b611f5484611b7c565b95602085013595506040909401359392505050565b60008060008060808587031215611f7e578384fd5b611f8785611b7c565b93506020850135925060408501359150606085013567ffffffffffffffff811115611fb0578182fd5b611ec887828801611c0e565b60008060408385031215611fce578081fd5b823567ffffffffffffffff80821115611fe5578283fd5b818501915085601f830112611ff8578283fd5b8135612006611bbe8261221f565b80828252602080830192508086018a828387028901011115612026578788fd5b8796505b8487101561204f5761203b81611b7c565b84526001969096019592810192810161202a565b509096508701359350505080821115612066578283fd5b5061207385828601611ba0565b9150509250929050565b60006020828403121561208e578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611af4578182fd5b6000602082840312156120ce578081fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b8181101561210d578351835292840192918401916001016120f1565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b8181101561215057858101830151858201604001528201612134565b818111156121615783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff8111828210171561221757fe5b604052919050565b600067ffffffffffffffff82111561223357fe5b506020908102019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a264697066735822122036edc9e542c649ef48ed8a2ffd68ded6621cdb7b12543ba186da29b6d3f6a0e064736f6c63430007040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100e95760003560e01c80636c0360eb1161008c578063bd7a6c4111610066578063bd7a6c411461020b578063d7a0ad901461021e578063e985e9c514610231578063f242432a14610244576100e9565b80636c0360eb146101dd578063a22cb465146101e5578063a3f091f5146101f8576100e9565b80630e89341c116100c85780630e89341c146101825780632eb2c2d614610195578063437ecbe9146101aa5780634e1273f4146101bd576100e9565b8062fdd58e1461012457806301ffc9a71461014d57806306fdde031461016d575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011b90612195565b60405180910390fd5b610137610132366004611f0e565b610257565b60405161014491906121f2565b60405180910390f35b61016061015b36600461207d565b61028a565b6040516101449190612119565b61017561029d565b6040516101449190612124565b6101756101903660046120bd565b610349565b6101a86101a3366004611cc5565b61049c565b005b6101a86101b8366004611f37565b6105a7565b6101d06101cb366004611fbc565b6105b7565b60405161014491906120d5565b610175610703565b6101a86101f3366004611ed4565b610779565b6101a8610206366004611f69565b610812565b6101a8610219366004611dce565b610824565b6101a861022c366004611e3f565b61082f565b61016061023f366004611c93565b61083b565b6101a8610252366004611d6b565b610876565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b60006102958261097a565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b505050505081565b60606002610356836109d7565b60405160200180838054600181600116156101000203166002900480156103b45780601f106103925761010080835404028352918201916103b4565b820191906000526020600020905b8154815290600101906020018083116103a0575b5050825160208401908083835b602083106103fe57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016103c1565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff861614806104c557506104c5853361083b565b61051a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612354602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610586576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806122c86030913960400191505060405180910390fd5b61059285858585610b03565b6105a0858585855a86610e57565b5050505050565b6105b28383836110ce565b505050565b60608151835114610613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612328602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561062d57600080fd5b50604051908082528060200260200182016040528015610657578160200160208202803683370190505b50905060005b84518110156106fb5760008086838151811061067557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106106c557fe5b60200260200101518152602001908152602001600020548282815181106106e857fe5b602090810291909101015260010161065d565b509392505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f810184900484028201840190925281815292918301828280156103415780601f1061031657610100808354040283529160200191610341565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61081e84848484611179565b50505050565b6105b283838361122e565b61081e8484848461146e565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061089f575061089f853361083b565b6108f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612269602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061223e602b913960400191505060405180910390fd5b61096c858585856116b8565b6105a0858585855a866117bb565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156109ce57506001610298565b610295826119ac565b606081610a18575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610298565b818060005b8215610a3157600101600a83049250610a1d565b60608167ffffffffffffffff81118015610a4a57600080fd5b506040519080825280601f01601f191660200182016040528015610a75576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610af957600a840660300160f81b82828060019003935081518110610abf57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610a9c565b5095945050505050565b8051825114610b5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806122936035913960400191505060405180910390fd5b815160005b81811015610d4f57610bf2838281518110610b7957fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610bcd57fe5b6020026020010151815260200190815260200160002054611a0990919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610c3e57fe5b6020026020010151815260200190815260200160002081905550610ce0838281518110610c6757fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610cbb57fe5b6020026020010151815260200190815260200160002054611a8090919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610d2c57fe5b602090810291909101810151825281019190915260400160002055600101610b62565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610dfc578181015183820152602001610de4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610e3b578181015183820152602001610e23565b5050505090500194505050505060405180910390a45050505050565b610e768573ffffffffffffffffffffffffffffffffffffffff16611afb565b156110c65760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610f2e578181015183820152602001610f16565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015610f6d578181015183820152602001610f55565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015610fa9578181015183820152602001610f91565b50505050905090810190601f168015610fd65780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015610ffb57600080fd5b5087f115801561100f573d6000803e3d6000fd5b50505050506040513d602081101561102657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146110c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f8152602001806123b3603f913960400191505060405180910390fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081815260408083208584529091529020546111079082611a09565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208684529091529020546111b29083611a80565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461081e60008585855a866117bb565b815181518114611289576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806122f86030913960400191505060405180910390fd5b60005b81811015611366576112f78382815181106112a357fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610bcd57fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061134357fe5b60209081029190910181015182528101919091526040016000205560010161128c565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156114145781810151838201526020016113fc565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561145357818101518382015260200161143b565b5050505090500194505050505060405180910390a450505050565b81518351146114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806123836030913960400191505060405180910390fd5b825160005b818110156115a7576115388482815181106114e457fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888581518110610cbb57fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087848151811061158457fe5b6020908102919091018101518252810191909152604001600020556001016114cd565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561165557818101518382015260200161163d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561169457818101518382015260200161167c565b5050505090500194505050505060405180910390a46105a060008686865a87610e57565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208584529091529020546116f19082611a09565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546117419082611a80565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6117da8573ffffffffffffffffffffffffffffffffffffffff16611afb565b156110c65760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561189357818101518382015260200161187b565b50505050905090810190601f1680156118c05780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156118e357600080fd5b5087f11580156118f7573d6000803e3d6000fd5b50505050506040513d602081101561190e57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146110c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806123f2603a913960400191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415611a0057506001610298565b61029582611b32565b600082821115611a7a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015611af457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590611af457507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461029857600080fd5b600082601f830112611bb0578081fd5b8135611bc3611bbe8261221f565b6121fb565b818152915060208083019084810181840286018201871015611be457600080fd5b60005b84811015611c0357813584529282019290820190600101611be7565b505050505092915050565b600082601f830112611c1e578081fd5b813567ffffffffffffffff811115611c3257fe5b611c6360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016121fb565b9150808252836020828501011115611c7a57600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611ca5578182fd5b611cae83611b7c565b9150611cbc60208401611b7c565b90509250929050565b600080600080600060a08688031215611cdc578081fd5b611ce586611b7c565b9450611cf360208701611b7c565b9350604086013567ffffffffffffffff80821115611d0f578283fd5b611d1b89838a01611ba0565b94506060880135915080821115611d30578283fd5b611d3c89838a01611ba0565b93506080880135915080821115611d51578283fd5b50611d5e88828901611c0e565b9150509295509295909350565b600080600080600060a08688031215611d82578081fd5b611d8b86611b7c565b9450611d9960208701611b7c565b93506040860135925060608601359150608086013567ffffffffffffffff811115611dc2578182fd5b611d5e88828901611c0e565b600080600060608486031215611de2578283fd5b611deb84611b7c565b9250602084013567ffffffffffffffff80821115611e07578384fd5b611e1387838801611ba0565b93506040860135915080821115611e28578283fd5b50611e3586828701611ba0565b9150509250925092565b60008060008060808587031215611e54578384fd5b611e5d85611b7c565b9350602085013567ffffffffffffffff80821115611e79578485fd5b611e8588838901611ba0565b94506040870135915080821115611e9a578384fd5b611ea688838901611ba0565b93506060870135915080821115611ebb578283fd5b50611ec887828801611c0e565b91505092959194509250565b60008060408385031215611ee6578182fd5b611eef83611b7c565b915060208301358015158114611f03578182fd5b809150509250929050565b60008060408385031215611f20578182fd5b611f2983611b7c565b946020939093013593505050565b600080600060608486031215611f4b578283fd5b611f5484611b7c565b95602085013595506040909401359392505050565b60008060008060808587031215611f7e578384fd5b611f8785611b7c565b93506020850135925060408501359150606085013567ffffffffffffffff811115611fb0578182fd5b611ec887828801611c0e565b60008060408385031215611fce578081fd5b823567ffffffffffffffff80821115611fe5578283fd5b818501915085601f830112611ff8578283fd5b8135612006611bbe8261221f565b80828252602080830192508086018a828387028901011115612026578788fd5b8796505b8487101561204f5761203b81611b7c565b84526001969096019592810192810161202a565b509096508701359350505080821115612066578283fd5b5061207385828601611ba0565b9150509250929050565b60006020828403121561208e578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611af4578182fd5b6000602082840312156120ce578081fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b8181101561210d578351835292840192918401916001016120f1565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b8181101561215057858101830151858201604001528201612134565b818111156121615783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff8111828210171561221757fe5b604052919050565b600067ffffffffffffffff82111561223357fe5b506020908102019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a264697066735822122036edc9e542c649ef48ed8a2ffd68ded6621cdb7b12543ba186da29b6d3f6a0e064736f6c63430007040033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/artifacts/contracts/mocks/ERC1155MintBurnPackedBalanceMock.sol/ERC1155MintBurnPackedBalanceMock.json b/src/artifacts/contracts/mocks/ERC1155MintBurnPackedBalanceMock.sol/ERC1155MintBurnPackedBalanceMock.json index 9d04ae8..1a85e75 100644 --- a/src/artifacts/contracts/mocks/ERC1155MintBurnPackedBalanceMock.sol/ERC1155MintBurnPackedBalanceMock.json +++ b/src/artifacts/contracts/mocks/ERC1155MintBurnPackedBalanceMock.sol/ERC1155MintBurnPackedBalanceMock.json @@ -3,6 +3,22 @@ "contractName": "ERC1155MintBurnPackedBalanceMock", "sourceName": "contracts/mocks/ERC1155MintBurnPackedBalanceMock.sol", "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_baseURI", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, { "anonymous": false, "inputs": [ @@ -173,6 +189,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "baseURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -347,6 +376,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -470,8 +512,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50612796806100206000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c8063a3f091f51161008c578063db90e83c11610066578063db90e83c14610221578063e985e9c514610242578063eaec5f8114610255578063f242432a14610268576100e9565b8063a3f091f5146101e8578063bd7a6c41146101fb578063d7a0ad901461020e576100e9565b80632eb2c2d6116100c85780632eb2c2d61461018d578063437ecbe9146101a25780634e1273f4146101b5578063a22cb465146101d5576100e9565b8062fdd58e1461012457806301ffc9a71461014d5780630e89341c1461016d575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011b90612359565b60405180910390fd5b6101376101323660046120b1565b61027b565b60405161014491906123b6565b60405180910390f35b61016061015b366004612220565b6102d0565b60405161014491906122dd565b61018061017b366004612260565b6102e3565b60405161014491906122e8565b6101a061019b366004611e68565b610436565b005b6101a06101b03660046120da565b610541565b6101c86101c336600461215f565b610551565b6040516101449190612299565b6101a06101e3366004612077565b6107d0565b6101a06101f636600461210c565b610869565b6101a0610209366004611f71565b61087b565b6101a061021c366004611fe2565b610886565b61023461022f366004612260565b610892565b6040516101449291906123bf565b610160610250366004611e36565b61089f565b610137610263366004612278565b6108da565b6101a0610276366004611f0e565b6108ed565b600080600061028984610892565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506102c790826108da565b95945050505050565b60006102db826109f1565b90505b919050565b606060026102f083610a4e565b604051602001808380546001816001161561010002031660029004801561034e5780601f1061032c57610100808354040283529182019161034e565b820191906000526020600020905b81548152906001019060200180831161033a575b5050825160208401908083835b6020831061039857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161035b565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff8616148061045f575061045f853361089f565b6104b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c81526020018061257e603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612449603d913960400191505060405180910390fd5b61052c85858585610b7a565b61053a858585855a86610f87565b5050505050565b61054c8383836111fe565b505050565b815181516060919081146105b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806124106039913960400191505060405180910390fd5b6000806105d0856000815181106105c357fe5b6020026020010151610892565b915091506000806000886000815181106105e657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561065a57600080fd5b50604051908082528060200260200182016040528015610684578160200160208202803683370190505b50905061069183856108da565b8160008151811061069e57fe5b602090810291909101015260015b868110156107c3576106c38982815181106105c357fe5b9096509450828614158061072c57508981815181106106de57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061070b57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561079a576000808b838151811061074057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6107a484866108da565b8282815181106107b057fe5b60209081029190910101526001016106ac565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61087584848484611268565b50505050565b61054c8383836112dc565b61087584848484611485565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff861614806109165750610916853361089f565b61096b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806124b96037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806126746038913960400191505060405180910390fd5b6109e38585858561170f565b61053a858585855a866117b3565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c000000000000000000000000000000000000000000000000000000001415610a45575060016102de565b6102db826119a4565b606081610a8f575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526102de565b818060005b8215610aa857600101600a83049250610a94565b60608167ffffffffffffffff81118015610ac157600080fd5b506040519080825280601f01601f191660200182016040528015610aec576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610b7057600a840660300160f81b82828060019003935081518110610b3657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610b13565b5095945050505050565b815181518114610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806124f06042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610c115750600081115b15610de357600080610c29856000815181106105c357fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610c819190849088908590610c7257fe5b60200260200101516001611a01565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610cd79190859089908590610cc857fe5b60200260200101516000611a01565b90508360015b86811015610d9157610cf48982815181106105c357fe5b9096509450818614610d635773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610d7484868a8481518110610c7257fe5b9350610d8783868a8481518110610cc857fe5b9250600101610cdd565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550610e80565b60005b81811015610e7e57828181518110610dfa57fe5b6020026020010151610e1f87868481518110610e1257fe5b602002602001015161027b565b1015610e76576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806125f76036913960400191505060405180910390fd5b600101610de6565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610f2c578181015183820152602001610f14565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610f6b578181015183820152602001610f53565b5050505090500194505050505060405180910390a45050505050565b610fa68573ffffffffffffffffffffffffffffffffffffffff16611c14565b156111f65760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561105e578181015183820152602001611046565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561109d578181015183820152602001611085565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156110d95781810151838201526020016110c1565b50505050905090810190601f1680156111065780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561112b57600080fd5b5087f115801561113f573d6000803e3d6000fd5b50505050506040513d602081101561115657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612532604c913960600191505060405180910390fd5b505b505050505050565b61120b8383836001611c4e565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b6112758484846000611c4e565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a461087560008585855a866117b3565b815181518114611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806125ba603d913960400191505060405180910390fd5b60005b8181101561137d576113758585838151811061135257fe5b602002602001015185848151811061136657fe5b60200260200101516001611c4e565b60010161133a565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561142b578181015183820152602001611413565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561146a578181015183820152602001611452565b5050505090500194505050505060405180910390a450505050565b81518351146114df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806126f1603e913960400191505060405180910390fd5b8251156115ff576000806114f9856000815181106105c357fe5b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091528120548751939550919350916115429190849088908590610cc857fe5b86519091508360015b828110156115c6576115628982815181106105c357fe5b90965094508186146115ab5773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b6115bc84868a8481518110610cc857fe5b935060010161154b565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156116ac578181015183820152602001611694565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156116eb5781810151838201526020016116d3565b5050505090500194505050505060405180910390a461087560008585855a86610f87565b61171c8483836001611c4e565b6117298383836000611c4e565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6117d28573ffffffffffffffffffffffffffffffffffffffff16611c14565b156111f65760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561188b578181015183820152602001611873565b50505050905090810190601f1680156118b85780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156118db57600080fd5b5087f11580156118ef573d6000803e3d6000fd5b50505050506040513d602081101561190657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604781526020018061262d6047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156119f8575060016102de565b6102db82611cd5565b60006020840263ffffffff82846001811115611a1957fe5b1415611ae75784821b8701925086831015611a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061272f6032913960400191505060405180910390fd5b64010000000087831c8216860110611ae2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061272f6032913960400191505060405180910390fd5b611c0a565b6001846001811115611af557fe5b1415611bb95784821b8703925086831115611b5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806124866033913960400191505060405180910390fd5b84818389901c161015611ae2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806124866033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806126ac6045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590611c4757507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080611c5a85610892565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150611c9a90828686611a01565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102de57600080fd5b600082601f830112611d53578081fd5b8135611d66611d61826123f1565b6123cd565b818152915060208083019084810181840286018201871015611d8757600080fd5b60005b84811015611da657813584529282019290820190600101611d8a565b505050505092915050565b600082601f830112611dc1578081fd5b813567ffffffffffffffff811115611dd557fe5b611e0660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016123cd565b9150808252836020828501011115611e1d57600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611e48578182fd5b611e5183611d1f565b9150611e5f60208401611d1f565b90509250929050565b600080600080600060a08688031215611e7f578081fd5b611e8886611d1f565b9450611e9660208701611d1f565b9350604086013567ffffffffffffffff80821115611eb2578283fd5b611ebe89838a01611d43565b94506060880135915080821115611ed3578283fd5b611edf89838a01611d43565b93506080880135915080821115611ef4578283fd5b50611f0188828901611db1565b9150509295509295909350565b600080600080600060a08688031215611f25578081fd5b611f2e86611d1f565b9450611f3c60208701611d1f565b93506040860135925060608601359150608086013567ffffffffffffffff811115611f65578182fd5b611f0188828901611db1565b600080600060608486031215611f85578283fd5b611f8e84611d1f565b9250602084013567ffffffffffffffff80821115611faa578384fd5b611fb687838801611d43565b93506040860135915080821115611fcb578283fd5b50611fd886828701611d43565b9150509250925092565b60008060008060808587031215611ff7578384fd5b61200085611d1f565b9350602085013567ffffffffffffffff8082111561201c578485fd5b61202888838901611d43565b9450604087013591508082111561203d578384fd5b61204988838901611d43565b9350606087013591508082111561205e578283fd5b5061206b87828801611db1565b91505092959194509250565b60008060408385031215612089578182fd5b61209283611d1f565b9150602083013580151581146120a6578182fd5b809150509250929050565b600080604083850312156120c3578182fd5b6120cc83611d1f565b946020939093013593505050565b6000806000606084860312156120ee578283fd5b6120f784611d1f565b95602085013595506040909401359392505050565b60008060008060808587031215612121578384fd5b61212a85611d1f565b93506020850135925060408501359150606085013567ffffffffffffffff811115612153578182fd5b61206b87828801611db1565b60008060408385031215612171578081fd5b823567ffffffffffffffff80821115612188578283fd5b818501915085601f83011261219b578283fd5b81356121a9611d61826123f1565b80828252602080830192508086018a8283870289010111156121c9578788fd5b8796505b848710156121f2576121de81611d1f565b8452600196909601959281019281016121cd565b509096508701359350505080821115612209578283fd5b5061221685828601611d43565b9150509250929050565b600060208284031215612231578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c47578182fd5b600060208284031215612271578081fd5b5035919050565b6000806040838503121561228a578182fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156122d1578351835292840192918401916001016122b5565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015612314578581018301518582016040015282016122f8565b818111156123255783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156123e957fe5b604052919050565b600067ffffffffffffffff82111561240557fe5b506020908102019056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a2646970667358221220cfaa0248ab3cd2216b2aa8933fcad401337cc5abff0d89fa02c42db1a3fc41cb64736f6c63430007040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100e95760003560e01c8063a3f091f51161008c578063db90e83c11610066578063db90e83c14610221578063e985e9c514610242578063eaec5f8114610255578063f242432a14610268576100e9565b8063a3f091f5146101e8578063bd7a6c41146101fb578063d7a0ad901461020e576100e9565b80632eb2c2d6116100c85780632eb2c2d61461018d578063437ecbe9146101a25780634e1273f4146101b5578063a22cb465146101d5576100e9565b8062fdd58e1461012457806301ffc9a71461014d5780630e89341c1461016d575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011b90612359565b60405180910390fd5b6101376101323660046120b1565b61027b565b60405161014491906123b6565b60405180910390f35b61016061015b366004612220565b6102d0565b60405161014491906122dd565b61018061017b366004612260565b6102e3565b60405161014491906122e8565b6101a061019b366004611e68565b610436565b005b6101a06101b03660046120da565b610541565b6101c86101c336600461215f565b610551565b6040516101449190612299565b6101a06101e3366004612077565b6107d0565b6101a06101f636600461210c565b610869565b6101a0610209366004611f71565b61087b565b6101a061021c366004611fe2565b610886565b61023461022f366004612260565b610892565b6040516101449291906123bf565b610160610250366004611e36565b61089f565b610137610263366004612278565b6108da565b6101a0610276366004611f0e565b6108ed565b600080600061028984610892565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506102c790826108da565b95945050505050565b60006102db826109f1565b90505b919050565b606060026102f083610a4e565b604051602001808380546001816001161561010002031660029004801561034e5780601f1061032c57610100808354040283529182019161034e565b820191906000526020600020905b81548152906001019060200180831161033a575b5050825160208401908083835b6020831061039857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161035b565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff8616148061045f575061045f853361089f565b6104b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c81526020018061257e603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612449603d913960400191505060405180910390fd5b61052c85858585610b7a565b61053a858585855a86610f87565b5050505050565b61054c8383836111fe565b505050565b815181516060919081146105b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806124106039913960400191505060405180910390fd5b6000806105d0856000815181106105c357fe5b6020026020010151610892565b915091506000806000886000815181106105e657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561065a57600080fd5b50604051908082528060200260200182016040528015610684578160200160208202803683370190505b50905061069183856108da565b8160008151811061069e57fe5b602090810291909101015260015b868110156107c3576106c38982815181106105c357fe5b9096509450828614158061072c57508981815181106106de57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061070b57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561079a576000808b838151811061074057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6107a484866108da565b8282815181106107b057fe5b60209081029190910101526001016106ac565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61087584848484611268565b50505050565b61054c8383836112dc565b61087584848484611485565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff861614806109165750610916853361089f565b61096b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806124b96037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806126746038913960400191505060405180910390fd5b6109e38585858561170f565b61053a858585855a866117b3565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c000000000000000000000000000000000000000000000000000000001415610a45575060016102de565b6102db826119a4565b606081610a8f575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526102de565b818060005b8215610aa857600101600a83049250610a94565b60608167ffffffffffffffff81118015610ac157600080fd5b506040519080825280601f01601f191660200182016040528015610aec576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610b7057600a840660300160f81b82828060019003935081518110610b3657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610b13565b5095945050505050565b815181518114610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806124f06042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610c115750600081115b15610de357600080610c29856000815181106105c357fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610c819190849088908590610c7257fe5b60200260200101516001611a01565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610cd79190859089908590610cc857fe5b60200260200101516000611a01565b90508360015b86811015610d9157610cf48982815181106105c357fe5b9096509450818614610d635773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610d7484868a8481518110610c7257fe5b9350610d8783868a8481518110610cc857fe5b9250600101610cdd565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550610e80565b60005b81811015610e7e57828181518110610dfa57fe5b6020026020010151610e1f87868481518110610e1257fe5b602002602001015161027b565b1015610e76576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806125f76036913960400191505060405180910390fd5b600101610de6565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610f2c578181015183820152602001610f14565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610f6b578181015183820152602001610f53565b5050505090500194505050505060405180910390a45050505050565b610fa68573ffffffffffffffffffffffffffffffffffffffff16611c14565b156111f65760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561105e578181015183820152602001611046565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561109d578181015183820152602001611085565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156110d95781810151838201526020016110c1565b50505050905090810190601f1680156111065780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561112b57600080fd5b5087f115801561113f573d6000803e3d6000fd5b50505050506040513d602081101561115657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612532604c913960600191505060405180910390fd5b505b505050505050565b61120b8383836001611c4e565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b6112758484846000611c4e565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a461087560008585855a866117b3565b815181518114611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806125ba603d913960400191505060405180910390fd5b60005b8181101561137d576113758585838151811061135257fe5b602002602001015185848151811061136657fe5b60200260200101516001611c4e565b60010161133a565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561142b578181015183820152602001611413565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561146a578181015183820152602001611452565b5050505090500194505050505060405180910390a450505050565b81518351146114df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806126f1603e913960400191505060405180910390fd5b8251156115ff576000806114f9856000815181106105c357fe5b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091528120548751939550919350916115429190849088908590610cc857fe5b86519091508360015b828110156115c6576115628982815181106105c357fe5b90965094508186146115ab5773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b6115bc84868a8481518110610cc857fe5b935060010161154b565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156116ac578181015183820152602001611694565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156116eb5781810151838201526020016116d3565b5050505090500194505050505060405180910390a461087560008585855a86610f87565b61171c8483836001611c4e565b6117298383836000611c4e565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6117d28573ffffffffffffffffffffffffffffffffffffffff16611c14565b156111f65760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561188b578181015183820152602001611873565b50505050905090810190601f1680156118b85780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156118db57600080fd5b5087f11580156118ef573d6000803e3d6000fd5b50505050506040513d602081101561190657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604781526020018061262d6047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156119f8575060016102de565b6102db82611cd5565b60006020840263ffffffff82846001811115611a1957fe5b1415611ae75784821b8701925086831015611a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061272f6032913960400191505060405180910390fd5b64010000000087831c8216860110611ae2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061272f6032913960400191505060405180910390fd5b611c0a565b6001846001811115611af557fe5b1415611bb95784821b8703925086831115611b5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806124866033913960400191505060405180910390fd5b84818389901c161015611ae2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806124866033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806126ac6045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590611c4757507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080611c5a85610892565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150611c9a90828686611a01565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102de57600080fd5b600082601f830112611d53578081fd5b8135611d66611d61826123f1565b6123cd565b818152915060208083019084810181840286018201871015611d8757600080fd5b60005b84811015611da657813584529282019290820190600101611d8a565b505050505092915050565b600082601f830112611dc1578081fd5b813567ffffffffffffffff811115611dd557fe5b611e0660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016123cd565b9150808252836020828501011115611e1d57600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611e48578182fd5b611e5183611d1f565b9150611e5f60208401611d1f565b90509250929050565b600080600080600060a08688031215611e7f578081fd5b611e8886611d1f565b9450611e9660208701611d1f565b9350604086013567ffffffffffffffff80821115611eb2578283fd5b611ebe89838a01611d43565b94506060880135915080821115611ed3578283fd5b611edf89838a01611d43565b93506080880135915080821115611ef4578283fd5b50611f0188828901611db1565b9150509295509295909350565b600080600080600060a08688031215611f25578081fd5b611f2e86611d1f565b9450611f3c60208701611d1f565b93506040860135925060608601359150608086013567ffffffffffffffff811115611f65578182fd5b611f0188828901611db1565b600080600060608486031215611f85578283fd5b611f8e84611d1f565b9250602084013567ffffffffffffffff80821115611faa578384fd5b611fb687838801611d43565b93506040860135915080821115611fcb578283fd5b50611fd886828701611d43565b9150509250925092565b60008060008060808587031215611ff7578384fd5b61200085611d1f565b9350602085013567ffffffffffffffff8082111561201c578485fd5b61202888838901611d43565b9450604087013591508082111561203d578384fd5b61204988838901611d43565b9350606087013591508082111561205e578283fd5b5061206b87828801611db1565b91505092959194509250565b60008060408385031215612089578182fd5b61209283611d1f565b9150602083013580151581146120a6578182fd5b809150509250929050565b600080604083850312156120c3578182fd5b6120cc83611d1f565b946020939093013593505050565b6000806000606084860312156120ee578283fd5b6120f784611d1f565b95602085013595506040909401359392505050565b60008060008060808587031215612121578384fd5b61212a85611d1f565b93506020850135925060408501359150606085013567ffffffffffffffff811115612153578182fd5b61206b87828801611db1565b60008060408385031215612171578081fd5b823567ffffffffffffffff80821115612188578283fd5b818501915085601f83011261219b578283fd5b81356121a9611d61826123f1565b80828252602080830192508086018a8283870289010111156121c9578788fd5b8796505b848710156121f2576121de81611d1f565b8452600196909601959281019281016121cd565b509096508701359350505080821115612209578283fd5b5061221685828601611d43565b9150509250929050565b600060208284031215612231578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c47578182fd5b600060208284031215612271578081fd5b5035919050565b6000806040838503121561228a578182fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156122d1578351835292840192918401916001016122b5565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015612314578581018301518582016040015282016122f8565b818111156123255783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156123e957fe5b604052919050565b600067ffffffffffffffff82111561240557fe5b506020908102019056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a2646970667358221220cfaa0248ab3cd2216b2aa8933fcad401337cc5abff0d89fa02c42db1a3fc41cb64736f6c63430007040033", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162002b3238038062002b328339810160408190526200003491620001dc565b8151829082906200004d9060039060208501906200006e565b508051620000639060029060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b6128de80620002546000396000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c8063a22cb46511610097578063db90e83c11610066578063db90e83c14610247578063e985e9c514610268578063eaec5f811461027b578063f242432a1461028e576100ff565b8063a22cb465146101fb578063a3f091f51461020e578063bd7a6c4114610221578063d7a0ad9014610234576100ff565b80632eb2c2d6116100d35780632eb2c2d6146101ab578063437ecbe9146101c05780634e1273f4146101d35780636c0360eb146101f3576100ff565b8062fdd58e1461013a57806301ffc9a71461016357806306fdde03146101835780630e89341c14610198575b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610131906124a1565b60405180910390fd5b61014d6101483660046121f9565b6102a1565b60405161015a91906124fe565b60405180910390f35b610176610171366004612368565b6102f6565b60405161015a9190612425565b61018b610309565b60405161015a9190612430565b61018b6101a63660046123a8565b6103b5565b6101be6101b9366004611fb0565b610508565b005b6101be6101ce366004612222565b610613565b6101e66101e13660046122a7565b610623565b60405161015a91906123e1565b61018b6108a2565b6101be6102093660046121bf565b610918565b6101be61021c366004612254565b6109b1565b6101be61022f3660046120b9565b6109c3565b6101be61024236600461212a565b6109ce565b61025a6102553660046123a8565b6109da565b60405161015a929190612507565b610176610276366004611f7e565b6109e7565b61014d6102893660046123c0565b610a22565b6101be61029c366004612056565b610a35565b60008060006102af846109da565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506102ed9082610a22565b95945050505050565b600061030182610b39565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156103ad5780601f10610382576101008083540402835291602001916103ad565b820191906000526020600020905b81548152906001019060200180831161039057829003601f168201915b505050505081565b606060026103c283610b96565b60405160200180838054600181600116156101000203166002900480156104205780601f106103fe576101008083540402835291820191610420565b820191906000526020600020905b81548152906001019060200180831161040c575b5050825160208401908083835b6020831061046a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161042d565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610531575061053185336109e7565b610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806126c6603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166105f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612591603d913960400191505060405180910390fd5b6105fe85858585610cc2565b61060c858585855a866110cf565b5050505050565b61061e838383611346565b505050565b81518151606091908114610682576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806125586039913960400191505060405180910390fd5b6000806106a28560008151811061069557fe5b60200260200101516109da565b915091506000806000886000815181106106b857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561072c57600080fd5b50604051908082528060200260200182016040528015610756578160200160208202803683370190505b5090506107638385610a22565b8160008151811061077057fe5b602090810291909101015260015b868110156108955761079589828151811061069557fe5b909650945082861415806107fe57508981815181106107b057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106107dd57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561086c576000808b838151811061081257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6108768486610a22565b82828151811061088257fe5b602090810291909101015260010161077e565b5098975050505050505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f810184900484028201840190925281815292918301828280156103ad5780601f10610382576101008083540402835291602001916103ad565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6109bd848484846113b0565b50505050565b61061e838383611424565b6109bd848484846115cd565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610a5e5750610a5e85336109e7565b610ab3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806126016037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610b1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806127bc6038913960400191505060405180910390fd5b610b2b85858585611857565b61060c858585855a866118fb565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c000000000000000000000000000000000000000000000000000000001415610b8d57506001610304565b61030182611aec565b606081610bd7575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610304565b818060005b8215610bf057600101600a83049250610bdc565b60608167ffffffffffffffff81118015610c0957600080fd5b506040519080825280601f01601f191660200182016040528015610c34576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610cb857600a840660300160f81b82828060019003935081518110610c7e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610c5b565b5095945050505050565b815181518114610d1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806126386042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610d595750600081115b15610f2b57600080610d718560008151811061069557fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610dc99190849088908590610dba57fe5b60200260200101516001611b49565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610e1f9190859089908590610e1057fe5b60200260200101516000611b49565b90508360015b86811015610ed957610e3c89828151811061069557fe5b9096509450818614610eab5773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610ebc84868a8481518110610dba57fe5b9350610ecf83868a8481518110610e1057fe5b9250600101610e25565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550610fc8565b60005b81811015610fc657828181518110610f4257fe5b6020026020010151610f6787868481518110610f5a57fe5b60200260200101516102a1565b1015610fbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061273f6036913960400191505060405180910390fd5b600101610f2e565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561107457818101518382015260200161105c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110b357818101518382015260200161109b565b5050505090500194505050505060405180910390a45050505050565b6110ee8573ffffffffffffffffffffffffffffffffffffffff16611d5c565b1561133e5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156111a657818101518382015260200161118e565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156111e55781810151838201526020016111cd565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611221578181015183820152602001611209565b50505050905090810190601f16801561124e5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561127357600080fd5b5087f1158015611287573d6000803e3d6000fd5b50505050506040513d602081101561129e57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c81000000000000000000000000000000000000000000000000000000001461133c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c81526020018061267a604c913960600191505060405180910390fd5b505b505050505050565b6113538383836001611d96565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b6113bd8484846000611d96565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a46109bd60008585855a866118fb565b81518151811461147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612702603d913960400191505060405180910390fd5b60005b818110156114c5576114bd8585838151811061149a57fe5b60200260200101518584815181106114ae57fe5b60200260200101516001611d96565b600101611482565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561157357818101518382015260200161155b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156115b257818101518382015260200161159a565b5050505090500194505050505060405180910390a450505050565b8151835114611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180612839603e913960400191505060405180910390fd5b825115611747576000806116418560008151811061069557fe5b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832085845290915281205487519395509193509161168a9190849088908590610e1057fe5b86519091508360015b8281101561170e576116aa89828151811061069557fe5b90965094508186146116f35773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b61170484868a8481518110610e1057fe5b9350600101611693565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156117f45781810151838201526020016117dc565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561183357818101518382015260200161181b565b5050505090500194505050505060405180910390a46109bd60008585855a866110cf565b6118648483836001611d96565b6118718383836000611d96565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b61191a8573ffffffffffffffffffffffffffffffffffffffff16611d5c565b1561133e5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156119d35781810151838201526020016119bb565b50505050905090810190601f168015611a005780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b158015611a2357600080fd5b5087f1158015611a37573d6000803e3d6000fd5b50505050506040513d6020811015611a4e57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e61000000000000000000000000000000000000000000000000000000001461133c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806127756047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415611b4057506001610304565b61030182611e1d565b60006020840263ffffffff82846001811115611b6157fe5b1415611c2f5784821b8701925086831015611bc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806128776032913960400191505060405180910390fd5b64010000000087831c8216860110611c2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806128776032913960400191505060405180910390fd5b611d52565b6001846001811115611c3d57fe5b1415611d015784821b8703925086831115611ca3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806125ce6033913960400191505060405180910390fd5b84818389901c161015611c2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806125ce6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806127f46045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590611d8f57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080611da2856109da565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150611de290828686611b49565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461030457600080fd5b600082601f830112611e9b578081fd5b8135611eae611ea982612539565b612515565b818152915060208083019084810181840286018201871015611ecf57600080fd5b60005b84811015611eee57813584529282019290820190600101611ed2565b505050505092915050565b600082601f830112611f09578081fd5b813567ffffffffffffffff811115611f1d57fe5b611f4e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612515565b9150808252836020828501011115611f6557600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611f90578182fd5b611f9983611e67565b9150611fa760208401611e67565b90509250929050565b600080600080600060a08688031215611fc7578081fd5b611fd086611e67565b9450611fde60208701611e67565b9350604086013567ffffffffffffffff80821115611ffa578283fd5b61200689838a01611e8b565b9450606088013591508082111561201b578283fd5b61202789838a01611e8b565b9350608088013591508082111561203c578283fd5b5061204988828901611ef9565b9150509295509295909350565b600080600080600060a0868803121561206d578081fd5b61207686611e67565b945061208460208701611e67565b93506040860135925060608601359150608086013567ffffffffffffffff8111156120ad578182fd5b61204988828901611ef9565b6000806000606084860312156120cd578283fd5b6120d684611e67565b9250602084013567ffffffffffffffff808211156120f2578384fd5b6120fe87838801611e8b565b93506040860135915080821115612113578283fd5b5061212086828701611e8b565b9150509250925092565b6000806000806080858703121561213f578384fd5b61214885611e67565b9350602085013567ffffffffffffffff80821115612164578485fd5b61217088838901611e8b565b94506040870135915080821115612185578384fd5b61219188838901611e8b565b935060608701359150808211156121a6578283fd5b506121b387828801611ef9565b91505092959194509250565b600080604083850312156121d1578182fd5b6121da83611e67565b9150602083013580151581146121ee578182fd5b809150509250929050565b6000806040838503121561220b578182fd5b61221483611e67565b946020939093013593505050565b600080600060608486031215612236578283fd5b61223f84611e67565b95602085013595506040909401359392505050565b60008060008060808587031215612269578384fd5b61227285611e67565b93506020850135925060408501359150606085013567ffffffffffffffff81111561229b578182fd5b6121b387828801611ef9565b600080604083850312156122b9578081fd5b823567ffffffffffffffff808211156122d0578283fd5b818501915085601f8301126122e3578283fd5b81356122f1611ea982612539565b80828252602080830192508086018a828387028901011115612311578788fd5b8796505b8487101561233a5761232681611e67565b845260019690960195928101928101612315565b509096508701359350505080821115612351578283fd5b5061235e85828601611e8b565b9150509250929050565b600060208284031215612379578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611d8f578182fd5b6000602082840312156123b9578081fd5b5035919050565b600080604083850312156123d2578182fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015612419578351835292840192918401916001016123fd565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b8181101561245c57858101830151858201604001528201612440565b8181111561246d5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561253157fe5b604052919050565b600067ffffffffffffffff82111561254d57fe5b506020908102019056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212204aa1b13560e71a37f5fadb28a853fe4d62dec0731bc5ba1c017dbdc08fd3f98464736f6c63430007040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ff5760003560e01c8063a22cb46511610097578063db90e83c11610066578063db90e83c14610247578063e985e9c514610268578063eaec5f811461027b578063f242432a1461028e576100ff565b8063a22cb465146101fb578063a3f091f51461020e578063bd7a6c4114610221578063d7a0ad9014610234576100ff565b80632eb2c2d6116100d35780632eb2c2d6146101ab578063437ecbe9146101c05780634e1273f4146101d35780636c0360eb146101f3576100ff565b8062fdd58e1461013a57806301ffc9a71461016357806306fdde03146101835780630e89341c14610198575b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610131906124a1565b60405180910390fd5b61014d6101483660046121f9565b6102a1565b60405161015a91906124fe565b60405180910390f35b610176610171366004612368565b6102f6565b60405161015a9190612425565b61018b610309565b60405161015a9190612430565b61018b6101a63660046123a8565b6103b5565b6101be6101b9366004611fb0565b610508565b005b6101be6101ce366004612222565b610613565b6101e66101e13660046122a7565b610623565b60405161015a91906123e1565b61018b6108a2565b6101be6102093660046121bf565b610918565b6101be61021c366004612254565b6109b1565b6101be61022f3660046120b9565b6109c3565b6101be61024236600461212a565b6109ce565b61025a6102553660046123a8565b6109da565b60405161015a929190612507565b610176610276366004611f7e565b6109e7565b61014d6102893660046123c0565b610a22565b6101be61029c366004612056565b610a35565b60008060006102af846109da565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506102ed9082610a22565b95945050505050565b600061030182610b39565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156103ad5780601f10610382576101008083540402835291602001916103ad565b820191906000526020600020905b81548152906001019060200180831161039057829003601f168201915b505050505081565b606060026103c283610b96565b60405160200180838054600181600116156101000203166002900480156104205780601f106103fe576101008083540402835291820191610420565b820191906000526020600020905b81548152906001019060200180831161040c575b5050825160208401908083835b6020831061046a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161042d565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610531575061053185336109e7565b610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806126c6603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166105f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612591603d913960400191505060405180910390fd5b6105fe85858585610cc2565b61060c858585855a866110cf565b5050505050565b61061e838383611346565b505050565b81518151606091908114610682576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806125586039913960400191505060405180910390fd5b6000806106a28560008151811061069557fe5b60200260200101516109da565b915091506000806000886000815181106106b857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561072c57600080fd5b50604051908082528060200260200182016040528015610756578160200160208202803683370190505b5090506107638385610a22565b8160008151811061077057fe5b602090810291909101015260015b868110156108955761079589828151811061069557fe5b909650945082861415806107fe57508981815181106107b057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106107dd57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561086c576000808b838151811061081257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6108768486610a22565b82828151811061088257fe5b602090810291909101015260010161077e565b5098975050505050505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f810184900484028201840190925281815292918301828280156103ad5780601f10610382576101008083540402835291602001916103ad565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6109bd848484846113b0565b50505050565b61061e838383611424565b6109bd848484846115cd565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610a5e5750610a5e85336109e7565b610ab3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806126016037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610b1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806127bc6038913960400191505060405180910390fd5b610b2b85858585611857565b61060c858585855a866118fb565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c000000000000000000000000000000000000000000000000000000001415610b8d57506001610304565b61030182611aec565b606081610bd7575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610304565b818060005b8215610bf057600101600a83049250610bdc565b60608167ffffffffffffffff81118015610c0957600080fd5b506040519080825280601f01601f191660200182016040528015610c34576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610cb857600a840660300160f81b82828060019003935081518110610c7e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610c5b565b5095945050505050565b815181518114610d1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806126386042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610d595750600081115b15610f2b57600080610d718560008151811061069557fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610dc99190849088908590610dba57fe5b60200260200101516001611b49565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610e1f9190859089908590610e1057fe5b60200260200101516000611b49565b90508360015b86811015610ed957610e3c89828151811061069557fe5b9096509450818614610eab5773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610ebc84868a8481518110610dba57fe5b9350610ecf83868a8481518110610e1057fe5b9250600101610e25565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550610fc8565b60005b81811015610fc657828181518110610f4257fe5b6020026020010151610f6787868481518110610f5a57fe5b60200260200101516102a1565b1015610fbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061273f6036913960400191505060405180910390fd5b600101610f2e565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561107457818101518382015260200161105c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110b357818101518382015260200161109b565b5050505090500194505050505060405180910390a45050505050565b6110ee8573ffffffffffffffffffffffffffffffffffffffff16611d5c565b1561133e5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156111a657818101518382015260200161118e565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156111e55781810151838201526020016111cd565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611221578181015183820152602001611209565b50505050905090810190601f16801561124e5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561127357600080fd5b5087f1158015611287573d6000803e3d6000fd5b50505050506040513d602081101561129e57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c81000000000000000000000000000000000000000000000000000000001461133c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c81526020018061267a604c913960600191505060405180910390fd5b505b505050505050565b6113538383836001611d96565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b6113bd8484846000611d96565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a46109bd60008585855a866118fb565b81518151811461147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612702603d913960400191505060405180910390fd5b60005b818110156114c5576114bd8585838151811061149a57fe5b60200260200101518584815181106114ae57fe5b60200260200101516001611d96565b600101611482565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561157357818101518382015260200161155b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156115b257818101518382015260200161159a565b5050505090500194505050505060405180910390a450505050565b8151835114611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180612839603e913960400191505060405180910390fd5b825115611747576000806116418560008151811061069557fe5b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832085845290915281205487519395509193509161168a9190849088908590610e1057fe5b86519091508360015b8281101561170e576116aa89828151811061069557fe5b90965094508186146116f35773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b61170484868a8481518110610e1057fe5b9350600101611693565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156117f45781810151838201526020016117dc565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561183357818101518382015260200161181b565b5050505090500194505050505060405180910390a46109bd60008585855a866110cf565b6118648483836001611d96565b6118718383836000611d96565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b61191a8573ffffffffffffffffffffffffffffffffffffffff16611d5c565b1561133e5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156119d35781810151838201526020016119bb565b50505050905090810190601f168015611a005780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b158015611a2357600080fd5b5087f1158015611a37573d6000803e3d6000fd5b50505050506040513d6020811015611a4e57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e61000000000000000000000000000000000000000000000000000000001461133c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806127756047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415611b4057506001610304565b61030182611e1d565b60006020840263ffffffff82846001811115611b6157fe5b1415611c2f5784821b8701925086831015611bc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806128776032913960400191505060405180910390fd5b64010000000087831c8216860110611c2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806128776032913960400191505060405180910390fd5b611d52565b6001846001811115611c3d57fe5b1415611d015784821b8703925086831115611ca3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806125ce6033913960400191505060405180910390fd5b84818389901c161015611c2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806125ce6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806127f46045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590611d8f57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080611da2856109da565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150611de290828686611b49565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461030457600080fd5b600082601f830112611e9b578081fd5b8135611eae611ea982612539565b612515565b818152915060208083019084810181840286018201871015611ecf57600080fd5b60005b84811015611eee57813584529282019290820190600101611ed2565b505050505092915050565b600082601f830112611f09578081fd5b813567ffffffffffffffff811115611f1d57fe5b611f4e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612515565b9150808252836020828501011115611f6557600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611f90578182fd5b611f9983611e67565b9150611fa760208401611e67565b90509250929050565b600080600080600060a08688031215611fc7578081fd5b611fd086611e67565b9450611fde60208701611e67565b9350604086013567ffffffffffffffff80821115611ffa578283fd5b61200689838a01611e8b565b9450606088013591508082111561201b578283fd5b61202789838a01611e8b565b9350608088013591508082111561203c578283fd5b5061204988828901611ef9565b9150509295509295909350565b600080600080600060a0868803121561206d578081fd5b61207686611e67565b945061208460208701611e67565b93506040860135925060608601359150608086013567ffffffffffffffff8111156120ad578182fd5b61204988828901611ef9565b6000806000606084860312156120cd578283fd5b6120d684611e67565b9250602084013567ffffffffffffffff808211156120f2578384fd5b6120fe87838801611e8b565b93506040860135915080821115612113578283fd5b5061212086828701611e8b565b9150509250925092565b6000806000806080858703121561213f578384fd5b61214885611e67565b9350602085013567ffffffffffffffff80821115612164578485fd5b61217088838901611e8b565b94506040870135915080821115612185578384fd5b61219188838901611e8b565b935060608701359150808211156121a6578283fd5b506121b387828801611ef9565b91505092959194509250565b600080604083850312156121d1578182fd5b6121da83611e67565b9150602083013580151581146121ee578182fd5b809150509250929050565b6000806040838503121561220b578182fd5b61221483611e67565b946020939093013593505050565b600080600060608486031215612236578283fd5b61223f84611e67565b95602085013595506040909401359392505050565b60008060008060808587031215612269578384fd5b61227285611e67565b93506020850135925060408501359150606085013567ffffffffffffffff81111561229b578182fd5b6121b387828801611ef9565b600080604083850312156122b9578081fd5b823567ffffffffffffffff808211156122d0578283fd5b818501915085601f8301126122e3578283fd5b81356122f1611ea982612539565b80828252602080830192508086018a828387028901011115612311578788fd5b8796505b8487101561233a5761232681611e67565b845260019690960195928101928101612315565b509096508701359350505080821115612351578283fd5b5061235e85828601611e8b565b9150509250929050565b600060208284031215612379578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611d8f578182fd5b6000602082840312156123b9578081fd5b5035919050565b600080604083850312156123d2578182fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015612419578351835292840192918401916001016123fd565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b8181101561245c57858101830151858201604001528201612440565b8181111561246d5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561253157fe5b604052919050565b600067ffffffffffffffff82111561254d57fe5b506020908102019056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212204aa1b13560e71a37f5fadb28a853fe4d62dec0731bc5ba1c017dbdc08fd3f98464736f6c63430007040033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/artifacts/contracts/mocks/ERC2981GlobalMock.sol/ERC2981GlobalMock.json b/src/artifacts/contracts/mocks/ERC2981GlobalMock.sol/ERC2981GlobalMock.json new file mode 100644 index 0000000..5fffa0f --- /dev/null +++ b/src/artifacts/contracts/mocks/ERC2981GlobalMock.sol/ERC2981GlobalMock.json @@ -0,0 +1,536 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC2981GlobalMock", + "sourceName": "contracts/mocks/ERC2981GlobalMock.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_baseURI", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "_approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "_ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "_amounts", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "stateMutability": "nonpayable", + "type": "fallback" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_owners", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "_ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "_ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "_values", + "type": "uint256[]" + } + ], + "name": "batchBurnMock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "_ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "_values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "batchMintMock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "burnMock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "globalRoyaltyInfo", + "outputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "feeBasisPoints", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "isOperator", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "mintMock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_saleCost", + "type": "uint256" + } + ], + "name": "royaltyInfo", + "outputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "royaltyAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "_ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "_amounts", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "_approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_royaltyBasisPoints", + "type": "uint256" + } + ], + "name": "setGlobalRoyaltyInfo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceID", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_id", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5060405162002daf38038062002daf833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604052505050818181818160039080519060200190620001bb929190620001de565b508051620001d1906002906020840190620001de565b505050505050506200028a565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000216576000855562000261565b82601f106200023157805160ff191683800117855562000261565b8280016001018555821562000261579182015b828111156200026157825182559160200191906001019062000244565b506200026f92915062000273565b5090565b5b808211156200026f576000815560010162000274565b612b15806200029a6000396000f3fe608060405234801561001057600080fd5b506004361061011a5760003560e01c80636c0360eb116100b2578063bd7a6c4111610081578063d7a0ad9011610066578063d7a0ad9014610903578063e985e9c514610ace578063f242432a14610b095761011a565b8063bd7a6c41146107b7578063c9823cc6146108fb5761011a565b80636c0360eb1461066c57806393cfa68214610674578063a22cb465146106ad578063a3f091f5146106e85761011a565b80632a55205a116100ee5780632a55205a1461028d5780632eb2c2d6146102e0578063437ecbe9146104b65780634e1273f4146104f55761011a565b8062fdd58e1461015557806301ffc9a7146101a057806306fdde03146101f35780630e89341c14610270575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c9061282a565b60405180910390fd5b61018e6004803603604081101561016b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610be1565b60408051918252519081900360200190f35b6101df600480360360208110156101b657600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610c17565b604080519115158252519081900360200190f35b6101fb610c2a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023557818101518382015260200161021d565b50505050905090810190601f1680156102625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb6004803603602081101561028657600080fd5b5035610cd6565b6102b0600480360360408110156102a357600080fd5b5080359060200135610e29565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091528051918290030190f35b6104b4600480360360a08110156102f657600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561033757600080fd5b82018360208201111561034957600080fd5b8035906020019184602083028401116401000000008311171561036b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103bb57600080fd5b8201836020820111156103cd57600080fd5b803590602001918460208302840111640100000000831117156103ef57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561043f57600080fd5b82018360208201111561045157600080fd5b8035906020019184600183028401116401000000008311171561047357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e8a945050505050565b005b6104b4600480360360608110156104cc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060400135610f95565b61061c6004803603604081101561050b57600080fd5b81019060208101813564010000000081111561052657600080fd5b82018360208201111561053857600080fd5b8035906020019184602083028401116401000000008311171561055a57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156105aa57600080fd5b8201836020820111156105bc57600080fd5b803590602001918460208302840111640100000000831117156105de57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fa5945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610658578181015183820152602001610640565b505050509050019250505060405180910390f35b6101fb6110f1565b6104b46004803603604081101561068a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611167565b6104b4600480360360408110156106c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611175565b6104b4600480360360808110156106fe57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561074257600080fd5b82018360208201111561075457600080fd5b8035906020019184600183028401116401000000008311171561077657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061120e945050505050565b6104b4600480360360608110156107cd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561080557600080fd5b82018360208201111561081757600080fd5b8035906020019184602083028401116401000000008311171561083957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561088957600080fd5b82018360208201111561089b57600080fd5b803590602001918460208302840111640100000000831117156108bd57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611220945050505050565b6102b061122b565b6104b46004803603608081101561091957600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561095157600080fd5b82018360208201111561096357600080fd5b8035906020019184602083028401116401000000008311171561098557600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156109d557600080fd5b8201836020820111156109e757600080fd5b80359060200191846020830284011164010000000083111715610a0957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a5957600080fd5b820183602082011115610a6b57600080fd5b80359060200191846001830284011164010000000083111715610a8d57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061124d945050505050565b6101df60048036036040811015610ae457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611259565b6104b4600480360360a0811015610b1f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610b6c57600080fd5b820183602082011115610b7e57600080fd5b80359060200191846001830284011164010000000083111715610ba057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611294945050505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152602081815260408083208484529091529020545b92915050565b6000610c2282611398565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081565b60606002610ce3836113f5565b6040516020018083805460018160011615610100020316600290048015610d415780601f10610d1f576101008083540402835291820191610d41565b820191906000526020600020905b815481529060010190602001808311610d2d575b5050825160208401908083835b60208310610d8b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d4e565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b600080610e34612813565b506040805180820190915260045473ffffffffffffffffffffffffffffffffffffffff1680825260055460208301819052610e7e906103e890610e78908890611521565b906115b1565b92509250509250929050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610eb35750610eb38533611259565b610f08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612a08602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610f74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806129126030913960400191505060405180910390fd5b610f8085858585611635565b610f8e858585855a86611989565b5050505050565b610fa0838383611c00565b505050565b60608151835114611001576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806129a3602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561101b57600080fd5b50604051908082528060200260200182016040528015611045578160200160208202803683370190505b50905060005b84518110156110e95760008086838151811061106357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106110b357fe5b60200260200101518152602001908152602001600020548282815181106110d657fe5b602090810291909101015260010161104b565b509392505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f81018490048402820184019092528181529291830182828015610cce5780601f10610ca357610100808354040283529160200191610cce565b6111718282611cab565b5050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61121a84848484611dbd565b50505050565b610fa0838383611e72565b60045460055473ffffffffffffffffffffffffffffffffffffffff9091169082565b61121a848484846120b2565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff861614806112bd57506112bd8533611259565b611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806128b3602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612888602b913960400191505060405180910390fd5b61138a858585856122fc565b610f8e858585855a866123ff565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a0000000000000000000000000000000000000000000000000000000014156113ec57506001610c25565b610c22826125f0565b606081611436575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610c25565b818060005b821561144f57600101600a8304925061143b565b60608167ffffffffffffffff8111801561146857600080fd5b506040519080825280601f01601f191660200182016040528015611493576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561151757600a840660300160f81b828280600190039350815181106114dd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506114ba565b5095945050505050565b60008261153057506000610c11565b8282028284828161153d57fe5b04146115aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236d756c3a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b600080821161162157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d617468236469763a204449564953494f4e5f42595f5a45524f0000604482015290519081900360640190fd5b600082848161162c57fe5b04949350505050565b805182511461168f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806128dd6035913960400191505060405180910390fd5b815160005b81811015611881576117248382815181106116ab57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116ff57fe5b60200260200101518152602001908152602001600020546125fb90919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061177057fe5b602002602001015181526020019081526020016000208190555061181283828151811061179957fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106117ed57fe5b602002602001015181526020019081526020016000205461267290919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061185e57fe5b602090810291909101810151825281019190915260400160002055600101611694565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561192e578181015183820152602001611916565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561196d578181015183820152602001611955565b5050505090500194505050505060405180910390a45050505050565b6119a88573ffffffffffffffffffffffffffffffffffffffff166126e6565b15611bf85760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611a60578181015183820152602001611a48565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611a9f578181015183820152602001611a87565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611adb578181015183820152602001611ac3565b50505050905090810190601f168015611b085780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611b2d57600080fd5b5087f1158015611b41573d6000803e3d6000fd5b50505050506040513d6020811015611b5857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180612a67603f913960400191505060405180910390fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611c3990826125fb565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b73ffffffffffffffffffffffffffffffffffffffff8216611d17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806129726031913960400191505060405180910390fd5b6103e8811115611d72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806129cf6039913960400191505060405180910390fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155600555565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320868452909152902054611df69083612672565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461121a60008585855a866123ff565b815181518114611ecd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806129426030913960400191505060405180910390fd5b60005b81811015611faa57611f3b838281518110611ee757fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116ff57fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110611f8757fe5b602090810291909101810151825281019190915260400160002055600101611ed0565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612058578181015183820152602001612040565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561209757818101518382015260200161207f565b5050505090500194505050505060405180910390a450505050565b815183511461210c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612a376030913960400191505060405180910390fd5b825160005b818110156121eb5761217c84828151811061212857fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008885815181106117ed57fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008784815181106121c857fe5b602090810291909101810151825281019190915260400160002055600101612111565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612299578181015183820152602001612281565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156122d85781810151838201526020016122c0565b5050505090500194505050505060405180910390a4610f8e60008686865a87611989565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832085845290915290205461233590826125fb565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546123859082612672565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b61241e8573ffffffffffffffffffffffffffffffffffffffff166126e6565b15611bf85760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156124d75781810151838201526020016124bf565b50505050905090810190601f1680156125045780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561252757600080fd5b5087f115801561253b573d6000803e3d6000fd5b50505050506040513d602081101561255257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612aa6603a913960400191505060405180910390fd5b6000610c228261271d565b60008282111561266c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b6000828201838110156115aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b6000813f80158015906115aa57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561277157506001610c25565b610c228260007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156127c957506001610c25565b7f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610c22565b604080518082019091526000808252602082015290565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f440000000000000000000000000000000000000000000000000060608201526080019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e47544845524332393831476c6f62616c235f736574476c6f62616c526f79616c74793a20524543495049454e545f49535f307830455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524332393831476c6f62616c235f736574476c6f62616c526f79616c74793a204645455f49535f41424f56455f3130305f50455243454e5445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a2646970667358221220ceacbcdce353ae53948aa9b972423089875d1f569d105a9e37edc2a23df2421264736f6c63430007040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061011a5760003560e01c80636c0360eb116100b2578063bd7a6c4111610081578063d7a0ad9011610066578063d7a0ad9014610903578063e985e9c514610ace578063f242432a14610b095761011a565b8063bd7a6c41146107b7578063c9823cc6146108fb5761011a565b80636c0360eb1461066c57806393cfa68214610674578063a22cb465146106ad578063a3f091f5146106e85761011a565b80632a55205a116100ee5780632a55205a1461028d5780632eb2c2d6146102e0578063437ecbe9146104b65780634e1273f4146104f55761011a565b8062fdd58e1461015557806301ffc9a7146101a057806306fdde03146101f35780630e89341c14610270575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c9061282a565b60405180910390fd5b61018e6004803603604081101561016b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610be1565b60408051918252519081900360200190f35b6101df600480360360208110156101b657600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610c17565b604080519115158252519081900360200190f35b6101fb610c2a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023557818101518382015260200161021d565b50505050905090810190601f1680156102625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb6004803603602081101561028657600080fd5b5035610cd6565b6102b0600480360360408110156102a357600080fd5b5080359060200135610e29565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091528051918290030190f35b6104b4600480360360a08110156102f657600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561033757600080fd5b82018360208201111561034957600080fd5b8035906020019184602083028401116401000000008311171561036b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103bb57600080fd5b8201836020820111156103cd57600080fd5b803590602001918460208302840111640100000000831117156103ef57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561043f57600080fd5b82018360208201111561045157600080fd5b8035906020019184600183028401116401000000008311171561047357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e8a945050505050565b005b6104b4600480360360608110156104cc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060400135610f95565b61061c6004803603604081101561050b57600080fd5b81019060208101813564010000000081111561052657600080fd5b82018360208201111561053857600080fd5b8035906020019184602083028401116401000000008311171561055a57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156105aa57600080fd5b8201836020820111156105bc57600080fd5b803590602001918460208302840111640100000000831117156105de57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fa5945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610658578181015183820152602001610640565b505050509050019250505060405180910390f35b6101fb6110f1565b6104b46004803603604081101561068a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611167565b6104b4600480360360408110156106c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611175565b6104b4600480360360808110156106fe57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561074257600080fd5b82018360208201111561075457600080fd5b8035906020019184600183028401116401000000008311171561077657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061120e945050505050565b6104b4600480360360608110156107cd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561080557600080fd5b82018360208201111561081757600080fd5b8035906020019184602083028401116401000000008311171561083957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561088957600080fd5b82018360208201111561089b57600080fd5b803590602001918460208302840111640100000000831117156108bd57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611220945050505050565b6102b061122b565b6104b46004803603608081101561091957600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561095157600080fd5b82018360208201111561096357600080fd5b8035906020019184602083028401116401000000008311171561098557600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156109d557600080fd5b8201836020820111156109e757600080fd5b80359060200191846020830284011164010000000083111715610a0957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a5957600080fd5b820183602082011115610a6b57600080fd5b80359060200191846001830284011164010000000083111715610a8d57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061124d945050505050565b6101df60048036036040811015610ae457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611259565b6104b4600480360360a0811015610b1f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610b6c57600080fd5b820183602082011115610b7e57600080fd5b80359060200191846001830284011164010000000083111715610ba057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611294945050505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152602081815260408083208484529091529020545b92915050565b6000610c2282611398565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081565b60606002610ce3836113f5565b6040516020018083805460018160011615610100020316600290048015610d415780601f10610d1f576101008083540402835291820191610d41565b820191906000526020600020905b815481529060010190602001808311610d2d575b5050825160208401908083835b60208310610d8b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d4e565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b600080610e34612813565b506040805180820190915260045473ffffffffffffffffffffffffffffffffffffffff1680825260055460208301819052610e7e906103e890610e78908890611521565b906115b1565b92509250509250929050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610eb35750610eb38533611259565b610f08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612a08602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610f74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806129126030913960400191505060405180910390fd5b610f8085858585611635565b610f8e858585855a86611989565b5050505050565b610fa0838383611c00565b505050565b60608151835114611001576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806129a3602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561101b57600080fd5b50604051908082528060200260200182016040528015611045578160200160208202803683370190505b50905060005b84518110156110e95760008086838151811061106357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106110b357fe5b60200260200101518152602001908152602001600020548282815181106110d657fe5b602090810291909101015260010161104b565b509392505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f81018490048402820184019092528181529291830182828015610cce5780601f10610ca357610100808354040283529160200191610cce565b6111718282611cab565b5050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61121a84848484611dbd565b50505050565b610fa0838383611e72565b60045460055473ffffffffffffffffffffffffffffffffffffffff9091169082565b61121a848484846120b2565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff861614806112bd57506112bd8533611259565b611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806128b3602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612888602b913960400191505060405180910390fd5b61138a858585856122fc565b610f8e858585855a866123ff565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a0000000000000000000000000000000000000000000000000000000014156113ec57506001610c25565b610c22826125f0565b606081611436575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610c25565b818060005b821561144f57600101600a8304925061143b565b60608167ffffffffffffffff8111801561146857600080fd5b506040519080825280601f01601f191660200182016040528015611493576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561151757600a840660300160f81b828280600190039350815181106114dd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506114ba565b5095945050505050565b60008261153057506000610c11565b8282028284828161153d57fe5b04146115aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236d756c3a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b600080821161162157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d617468236469763a204449564953494f4e5f42595f5a45524f0000604482015290519081900360640190fd5b600082848161162c57fe5b04949350505050565b805182511461168f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806128dd6035913960400191505060405180910390fd5b815160005b81811015611881576117248382815181106116ab57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116ff57fe5b60200260200101518152602001908152602001600020546125fb90919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061177057fe5b602002602001015181526020019081526020016000208190555061181283828151811061179957fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106117ed57fe5b602002602001015181526020019081526020016000205461267290919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061185e57fe5b602090810291909101810151825281019190915260400160002055600101611694565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561192e578181015183820152602001611916565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561196d578181015183820152602001611955565b5050505090500194505050505060405180910390a45050505050565b6119a88573ffffffffffffffffffffffffffffffffffffffff166126e6565b15611bf85760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611a60578181015183820152602001611a48565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611a9f578181015183820152602001611a87565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611adb578181015183820152602001611ac3565b50505050905090810190601f168015611b085780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611b2d57600080fd5b5087f1158015611b41573d6000803e3d6000fd5b50505050506040513d6020811015611b5857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180612a67603f913960400191505060405180910390fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611c3990826125fb565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b73ffffffffffffffffffffffffffffffffffffffff8216611d17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806129726031913960400191505060405180910390fd5b6103e8811115611d72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806129cf6039913960400191505060405180910390fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155600555565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320868452909152902054611df69083612672565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461121a60008585855a866123ff565b815181518114611ecd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806129426030913960400191505060405180910390fd5b60005b81811015611faa57611f3b838281518110611ee757fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116ff57fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110611f8757fe5b602090810291909101810151825281019190915260400160002055600101611ed0565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612058578181015183820152602001612040565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561209757818101518382015260200161207f565b5050505090500194505050505060405180910390a450505050565b815183511461210c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612a376030913960400191505060405180910390fd5b825160005b818110156121eb5761217c84828151811061212857fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008885815181106117ed57fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008784815181106121c857fe5b602090810291909101810151825281019190915260400160002055600101612111565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612299578181015183820152602001612281565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156122d85781810151838201526020016122c0565b5050505090500194505050505060405180910390a4610f8e60008686865a87611989565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832085845290915290205461233590826125fb565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546123859082612672565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b61241e8573ffffffffffffffffffffffffffffffffffffffff166126e6565b15611bf85760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156124d75781810151838201526020016124bf565b50505050905090810190601f1680156125045780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561252757600080fd5b5087f115801561253b573d6000803e3d6000fd5b50505050506040513d602081101561255257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612aa6603a913960400191505060405180910390fd5b6000610c228261271d565b60008282111561266c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b6000828201838110156115aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b6000813f80158015906115aa57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561277157506001610c25565b610c228260007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156127c957506001610c25565b7f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610c22565b604080518082019091526000808252602082015290565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f440000000000000000000000000000000000000000000000000060608201526080019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e47544845524332393831476c6f62616c235f736574476c6f62616c526f79616c74793a20524543495049454e545f49535f307830455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524332393831476c6f62616c235f736574476c6f62616c526f79616c74793a204645455f49535f41424f56455f3130305f50455243454e5445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a2646970667358221220ceacbcdce353ae53948aa9b972423089875d1f569d105a9e37edc2a23df2421264736f6c63430007040033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/src/artifacts/contracts/tokens/ERC1155/ERC1155Metadata.sol/ERC1155Metadata.json b/src/artifacts/contracts/tokens/ERC1155/ERC1155Metadata.sol/ERC1155Metadata.json index 5da12a3..f46b0b5 100644 --- a/src/artifacts/contracts/tokens/ERC1155/ERC1155Metadata.sol/ERC1155Metadata.json +++ b/src/artifacts/contracts/tokens/ERC1155/ERC1155Metadata.sol/ERC1155Metadata.json @@ -3,6 +3,22 @@ "contractName": "ERC1155Metadata", "sourceName": "contracts/tokens/ERC1155/ERC1155Metadata.sol", "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_baseURI", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, { "anonymous": false, "inputs": [ @@ -22,6 +38,32 @@ "name": "URI", "type": "event" }, + { + "inputs": [], + "name": "baseURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -61,8 +103,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610484806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806301ffc9a71461003b5780630e89341c1461008e575b600080fd5b61007a6004803603602081101561005157600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610120565b604080519115158252519081900360200190f35b6100ab600480360360208110156100a457600080fd5b5035610185565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e55781810151838201526020016100cd565b50505050905090810190601f1680156101125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561017457506001610180565b61017d826102d8565b90505b919050565b6060600061019283610322565b60405160200180838054600181600116156101000203166002900480156101f05780601f106101ce5761010080835404028352918201916101f0565b820191906000526020600020905b8154815290600101906020018083116101dc575b5050825160208401908083835b6020831061023a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016101fd565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b606081610363575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610180565b818060005b821561037c57600101600a83049250610368565b60608167ffffffffffffffff8111801561039557600080fd5b506040519080825280601f01601f1916602001820160405280156103c0576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561044457600a840660300160f81b8282806001900393508151811061040a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506103e7565b509594505050505056fea2646970667358221220004fd0d2d88e7458597be2dc675d4ebda19e8239cb1f21c313829ddfa6c8131864736f6c63430007040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806301ffc9a71461003b5780630e89341c1461008e575b600080fd5b61007a6004803603602081101561005157600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610120565b604080519115158252519081900360200190f35b6100ab600480360360208110156100a457600080fd5b5035610185565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e55781810151838201526020016100cd565b50505050905090810190601f1680156101125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561017457506001610180565b61017d826102d8565b90505b919050565b6060600061019283610322565b60405160200180838054600181600116156101000203166002900480156101f05780601f106101ce5761010080835404028352918201916101f0565b820191906000526020600020905b8154815290600101906020018083116101dc575b5050825160208401908083835b6020831061023a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016101fd565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b606081610363575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610180565b818060005b821561037c57600101600a83049250610368565b60608167ffffffffffffffff8111801561039557600080fd5b506040519080825280601f01601f1916602001820160405280156103c0576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561044457600a840660300160f81b8282806001900393508151811061040a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506103e7565b509594505050505056fea2646970667358221220004fd0d2d88e7458597be2dc675d4ebda19e8239cb1f21c313829ddfa6c8131864736f6c63430007040033", + "bytecode": "0x608060405234801561001057600080fd5b5060405161083c38038061083c8339818101604052604081101561003357600080fd5b810190808051604051939291908464010000000082111561005357600080fd5b90830190602082018581111561006857600080fd5b825164010000000081118282018810171561008257600080fd5b82525081516020918201929091019080838360005b838110156100af578181015183820152602001610097565b50505050905090810190601f1680156100dc5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156100ff57600080fd5b90830190602082018581111561011457600080fd5b825164010000000081118282018810171561012e57600080fd5b82525081516020918201929091019080838360005b8381101561015b578181015183820152602001610143565b50505050905090810190601f1680156101885780820380516001836020036101000a031916815260200191505b50604052505082516101a2915060019060208501906101be565b5080516101b69060009060208401906101be565b50505061025f565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826101f4576000855561023a565b82601f1061020d57805160ff191683800117855561023a565b8280016001018555821561023a579182015b8281111561023a57825182559160200191906001019061021f565b5061024692915061024a565b5090565b5b80821115610246576000815560010161024b565b6105ce8061026e6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806306fdde03146100a45780630e89341c146101215780636c0360eb1461013e575b600080fd5b6100906004803603602081101561006757600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610146565b604080519115158252519081900360200190f35b6100ac6101ab565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e65781810151838201526020016100ce565b50505050905090810190601f1680156101135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100ac6004803603602081101561013757600080fd5b5035610256565b6100ac6103a9565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561019a575060016101a6565b6101a382610422565b90505b919050565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561024e5780601f106102235761010080835404028352916020019161024e565b820191906000526020600020905b81548152906001019060200180831161023157829003601f168201915b505050505081565b606060006102638361046c565b60405160200180838054600181600116156101000203166002900480156102c15780601f1061029f5761010080835404028352918201916102c1565b820191906000526020600020905b8154815290600101906020018083116102ad575b5050825160208401908083835b6020831061030b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102ce565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561024e5780601f106102235761010080835404028352916020019161024e565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b6060816104ad575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526101a6565b818060005b82156104c657600101600a830492506104b2565b60608167ffffffffffffffff811180156104df57600080fd5b506040519080825280601f01601f19166020018201604052801561050a576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561058e57600a840660300160f81b8282806001900393508151811061055457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610531565b509594505050505056fea26469706673582212205abd37bd16639ca9fbf0ea9aa3edb56d4a300602416ce7dfcab6972d32fec15664736f6c63430007040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806306fdde03146100a45780630e89341c146101215780636c0360eb1461013e575b600080fd5b6100906004803603602081101561006757600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610146565b604080519115158252519081900360200190f35b6100ac6101ab565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e65781810151838201526020016100ce565b50505050905090810190601f1680156101135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100ac6004803603602081101561013757600080fd5b5035610256565b6100ac6103a9565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561019a575060016101a6565b6101a382610422565b90505b919050565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561024e5780601f106102235761010080835404028352916020019161024e565b820191906000526020600020905b81548152906001019060200180831161023157829003601f168201915b505050505081565b606060006102638361046c565b60405160200180838054600181600116156101000203166002900480156102c15780601f1061029f5761010080835404028352918201916102c1565b820191906000526020600020905b8154815290600101906020018083116102ad575b5050825160208401908083835b6020831061030b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102ce565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561024e5780601f106102235761010080835404028352916020019161024e565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b6060816104ad575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526101a6565b818060005b82156104c657600101600a830492506104b2565b60608167ffffffffffffffff811180156104df57600080fd5b506040519080825280601f01601f19166020018201604052801561050a576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561058e57600a840660300160f81b8282806001900393508151811061055457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610531565b509594505050505056fea26469706673582212205abd37bd16639ca9fbf0ea9aa3edb56d4a300602416ce7dfcab6972d32fec15664736f6c63430007040033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/artifacts/contracts/tokens/ERC2981/ERC2981Global.sol/ERC2981Global.json b/src/artifacts/contracts/tokens/ERC2981/ERC2981Global.sol/ERC2981Global.json new file mode 100644 index 0000000..a9cb92e --- /dev/null +++ b/src/artifacts/contracts/tokens/ERC2981/ERC2981Global.sol/ERC2981Global.json @@ -0,0 +1,77 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC2981Global", + "sourceName": "contracts/tokens/ERC2981/ERC2981Global.sol", + "abi": [ + { + "inputs": [], + "name": "globalRoyaltyInfo", + "outputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "feeBasisPoints", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_saleCost", + "type": "uint256" + } + ], + "name": "royaltyInfo", + "outputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "royaltyAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "_interfaceID", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610389806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a7146100465780632a55205a14610099578063c9823cc6146100ec575b600080fd5b6100856004803603602081101561005c57600080fd5b50357fffffffff00000000000000000000000000000000000000000000000000000000166100f4565b604080519115158252519081900360200190f35b6100bc600480360360408110156100af57600080fd5b5080359060200135610159565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091528051918290030190f35b6100bc6101ba565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000141561014857506001610154565b610151826101dc565b90505b919050565b60008061016461033c565b506040805180820190915260005473ffffffffffffffffffffffffffffffffffffffff16808252600154602083018190526101ae906103e8906101a8908890610226565b906102b8565b92509250509250929050565b60005460015473ffffffffffffffffffffffffffffffffffffffff9091169082565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b600082610235575060006102b2565b8282028284828161024257fe5b04146102af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236d756c3a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b90505b92915050565b600080821161032857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d617468236469763a204449564953494f4e5f42595f5a45524f0000604482015290519081900360640190fd5b600082848161033357fe5b04949350505050565b60408051808201909152600080825260208201529056fea2646970667358221220500d0606933313f45141c424c5b303e333204707c19b03c34b061c17f69006f964736f6c63430007040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a7146100465780632a55205a14610099578063c9823cc6146100ec575b600080fd5b6100856004803603602081101561005c57600080fd5b50357fffffffff00000000000000000000000000000000000000000000000000000000166100f4565b604080519115158252519081900360200190f35b6100bc600480360360408110156100af57600080fd5b5080359060200135610159565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091528051918290030190f35b6100bc6101ba565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000141561014857506001610154565b610151826101dc565b90505b919050565b60008061016461033c565b506040805180820190915260005473ffffffffffffffffffffffffffffffffffffffff16808252600154602083018190526101ae906103e8906101a8908890610226565b906102b8565b92509250509250929050565b60005460015473ffffffffffffffffffffffffffffffffffffffff9091169082565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b600082610235575060006102b2565b8282028284828161024257fe5b04146102af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236d756c3a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b90505b92915050565b600080821161032857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d617468236469763a204449564953494f4e5f42595f5a45524f0000604482015290519081900360640190fd5b600082848161033357fe5b04949350505050565b60408051808201909152600080825260208201529056fea2646970667358221220500d0606933313f45141c424c5b303e333204707c19b03c34b061c17f69006f964736f6c63430007040033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/src/contracts/interfaces/IERC2981.sol b/src/contracts/interfaces/IERC2981.sol new file mode 100644 index 0000000..51b4c5b --- /dev/null +++ b/src/contracts/interfaces/IERC2981.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.7.4; +import './IERC165.sol'; + +interface IERC2981 is IERC165 { + /** + * @notice Called with the sale price to determine how much royalty is owed and to whom. + * @param _tokenId - the NFT asset queried for royalty information + * @param _saleCost - the sale cost of the NFT asset specified by _tokenId + * @return receiver - address of who should be sent the royalty payment + * @return royaltyAmount - the royalty payment amount for _salePrice + */ + function royaltyInfo(uint256 _tokenId, uint256 _saleCost) external view returns (address receiver, uint256 royaltyAmount); +} \ No newline at end of file diff --git a/src/contracts/mocks/ERC1155MetaMintBurnMock.sol b/src/contracts/mocks/ERC1155MetaMintBurnMock.sol index 0544c66..ebe6c1c 100644 --- a/src/contracts/mocks/ERC1155MetaMintBurnMock.sol +++ b/src/contracts/mocks/ERC1155MetaMintBurnMock.sol @@ -9,6 +9,9 @@ import "../tokens/ERC1155/ERC1155Metadata.sol"; contract ERC1155MetaMintBurnMock is ERC1155Meta, ERC1155MintBurn, ERC1155Metadata { + // set the initial name and base URI + constructor(string memory _name, string memory _baseURI) ERC1155Metadata(_name, _baseURI) {} + /** * @notice Query if a contract implements an interface * @dev Parent contract inheriting multiple contracts with supportsInterface() diff --git a/src/contracts/mocks/ERC1155MetaMintBurnPackedBalanceMock.sol b/src/contracts/mocks/ERC1155MetaMintBurnPackedBalanceMock.sol index 58bccaf..d2e749e 100644 --- a/src/contracts/mocks/ERC1155MetaMintBurnPackedBalanceMock.sol +++ b/src/contracts/mocks/ERC1155MetaMintBurnPackedBalanceMock.sol @@ -9,6 +9,9 @@ import "../tokens/ERC1155/ERC1155Metadata.sol"; contract ERC1155MetaMintBurnPackedBalanceMock is ERC1155MintBurnPackedBalance, ERC1155MetaPackedBalance, ERC1155Metadata { + // set the initial name and base URI + constructor(string memory _name, string memory _baseURI) ERC1155Metadata(_name, _baseURI) {} + /***********************************| | ERC165 | |__________________________________*/ diff --git a/src/contracts/mocks/ERC1155MetadataMock.sol b/src/contracts/mocks/ERC1155MetadataMock.sol index b258d71..e8a1c88 100644 --- a/src/contracts/mocks/ERC1155MetadataMock.sol +++ b/src/contracts/mocks/ERC1155MetadataMock.sol @@ -2,9 +2,13 @@ pragma solidity 0.7.4; pragma experimental ABIEncoderV2; -import "./ERC1155MetaMintBurnMock.sol"; +import "../tokens/ERC1155/ERC1155MintBurn.sol"; +import "../tokens/ERC1155/ERC1155Metadata.sol"; -contract ERC1155MetadataMock is ERC1155MetaMintBurnMock { +contract ERC1155MetadataMock is ERC1155MintBurn, ERC1155Metadata { + + // set the initial name and base URI + constructor(string memory _name, string memory _baseURI) ERC1155Metadata(_name, _baseURI) {} /***********************************| | Base URI Functions | @@ -34,7 +38,29 @@ contract ERC1155MetadataMock is ERC1155MetaMintBurnMock { | Unsupported Functions | |__________________________________*/ - fallback () override external { + fallback () external { revert('ERC1155MetadataMock: INVALID_METHOD'); } + + + /***********************************| + | ERC-165 Functions | + |__________________________________*/ + + /** + * @notice Query if a contract implements an interface + * @dev Parent contract inheriting multiple contracts with supportsInterface() + * need to implement an overriding supportsInterface() function specifying + * all inheriting contracts that have a supportsInterface() function. + * @param _interfaceID The interface identifier, as specified in ERC-165 + * @return `true` if the contract implements `_interfaceID` + */ + function supportsInterface( + bytes4 _interfaceID + ) public override( + ERC1155, + ERC1155Metadata + ) pure virtual returns (bool) { + return super.supportsInterface(_interfaceID); + } } diff --git a/src/contracts/mocks/ERC1155MintBurnMock.sol b/src/contracts/mocks/ERC1155MintBurnMock.sol index 26623ea..3512c21 100644 --- a/src/contracts/mocks/ERC1155MintBurnMock.sol +++ b/src/contracts/mocks/ERC1155MintBurnMock.sol @@ -8,6 +8,9 @@ import "../tokens/ERC1155/ERC1155Metadata.sol"; contract ERC1155MintBurnMock is ERC1155MintBurn, ERC1155Metadata { + // set the initial name and base URI + constructor(string memory _name, string memory _baseURI) ERC1155Metadata(_name, _baseURI) {} + /** * @notice Query if a contract implements an interface * @dev Parent contract inheriting multiple contracts with supportsInterface() diff --git a/src/contracts/mocks/ERC1155MintBurnPackedBalanceMock.sol b/src/contracts/mocks/ERC1155MintBurnPackedBalanceMock.sol index 4a57950..a81a01a 100644 --- a/src/contracts/mocks/ERC1155MintBurnPackedBalanceMock.sol +++ b/src/contracts/mocks/ERC1155MintBurnPackedBalanceMock.sol @@ -8,6 +8,9 @@ import "../tokens/ERC1155/ERC1155Metadata.sol"; contract ERC1155MintBurnPackedBalanceMock is ERC1155MintBurnPackedBalance, ERC1155Metadata { + // set the initial name and base URI + constructor(string memory _name, string memory _baseURI) ERC1155Metadata(_name, _baseURI) {} + /***********************************| | ERC165 | |__________________________________*/ diff --git a/src/contracts/mocks/ERC2981GlobalMock.sol b/src/contracts/mocks/ERC2981GlobalMock.sol new file mode 100644 index 0000000..cce2200 --- /dev/null +++ b/src/contracts/mocks/ERC2981GlobalMock.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.7.4; +import "./ERC1155MintBurnMock.sol"; +import "../tokens/ERC2981/ERC2981Global.sol"; + +contract ERC2981GlobalMock is ERC1155MintBurnMock, ERC2981Global { + + // set the initial name and base URI + constructor(string memory _name, string memory _baseURI) ERC1155MintBurnMock(_name, _baseURI) {} + + /***********************************| + | Base URI Functions | + |__________________________________*/ + + /** + * @notice Will set the basis point and royalty recipient that is applied to all assets + * @param _recipient Fee recipient that will receive the royalty payments + * @param _royaltyBasisPoints Basis points with 3 decimals representing the fee % + * e.g. a fee of 2% would be 20 (i.e. 20 / 1000 == 0.02, or 2%) + */ + function setGlobalRoyaltyInfo(address _recipient, uint256 _royaltyBasisPoints) external { + _setGlobalRoyaltyInfo(_recipient, _royaltyBasisPoints); + } + + function supportsInterface(bytes4 _interfaceID) public override(ERC1155MintBurnMock, ERC2981Global) virtual pure returns (bool) { + return super.supportsInterface(_interfaceID); + } +} diff --git a/src/contracts/tokens/ERC1155/ERC1155Metadata.sol b/src/contracts/tokens/ERC1155/ERC1155Metadata.sol index 7667b5e..46d2a81 100644 --- a/src/contracts/tokens/ERC1155/ERC1155Metadata.sol +++ b/src/contracts/tokens/ERC1155/ERC1155Metadata.sol @@ -11,10 +11,17 @@ import "../../utils/ERC165.sol"; */ contract ERC1155Metadata is IERC1155Metadata, ERC165 { // URI's default URI prefix - string internal baseMetadataURI; + string public baseURI; + string public name; + + // set the initial name and base URI + constructor(string memory _name, string memory _baseURI) { + name = _name; + baseURI = _baseURI; + } /***********************************| - | Metadata Public Function s | + | Metadata Public Functions | |__________________________________*/ /** @@ -24,7 +31,7 @@ contract ERC1155Metadata is IERC1155Metadata, ERC165 { * @return URI string */ function uri(uint256 _id) public override view returns (string memory) { - return string(abi.encodePacked(baseMetadataURI, _uint2str(_id), ".json")); + return string(abi.encodePacked(baseURI, _uint2str(_id), ".json")); } @@ -37,7 +44,7 @@ contract ERC1155Metadata is IERC1155Metadata, ERC165 { * @param _tokenIDs Array of IDs of tokens to log default URI */ function _logURIs(uint256[] memory _tokenIDs) internal { - string memory baseURL = baseMetadataURI; + string memory baseURL = baseURI; string memory tokenURI; for (uint256 i = 0; i < _tokenIDs.length; i++) { @@ -51,7 +58,15 @@ contract ERC1155Metadata is IERC1155Metadata, ERC165 { * @param _newBaseMetadataURI New base URL of token's URI */ function _setBaseMetadataURI(string memory _newBaseMetadataURI) internal { - baseMetadataURI = _newBaseMetadataURI; + baseURI = _newBaseMetadataURI; + } + + /** + * @notice Will update the name of the contract + * @param _newName New contract name + */ + function _setContractName(string memory _newName) internal { + name = _newName; } /** diff --git a/src/contracts/tokens/ERC2981/ERC2981Global.sol b/src/contracts/tokens/ERC2981/ERC2981Global.sol new file mode 100644 index 0000000..84d9707 --- /dev/null +++ b/src/contracts/tokens/ERC2981/ERC2981Global.sol @@ -0,0 +1,71 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.7.4; +import "../../utils/ERC165.sol"; +import "../../utils/SafeMath.sol"; +import "../../interfaces/IERC2981.sol"; + +/** + * @notice Contract return royalty information for tokens of this contract + * @dev This contract sets a global fee information for all token ids. + */ +contract ERC2981Global is IERC2981, ERC165 { + using SafeMath for uint256; + + struct FeeInfo { + address receiver; + uint256 feeBasisPoints; + } + + // Royalty Fee information struct + FeeInfo public globalRoyaltyInfo; + + /** + * @notice Will set the basis point and royalty recipient that is applied to all assets + * @param _receiver Fee recipient that will receive the royalty payments + * @param _royaltyBasisPoints Basis points with 3 decimals representing the fee % + * e.g. a fee of 2% would be 20 (i.e. 20 / 1000 == 0.02, or 2%) + */ + function _setGlobalRoyaltyInfo(address _receiver, uint256 _royaltyBasisPoints) internal { + require(_receiver != address(0x0), "ERC2981Global#_setGlobalRoyalty: RECIPIENT_IS_0x0"); + require(_royaltyBasisPoints <= 1000, "ERC2981Global#_setGlobalRoyalty: FEE_IS_ABOVE_100_PERCENT"); + globalRoyaltyInfo.receiver = _receiver; + globalRoyaltyInfo.feeBasisPoints = _royaltyBasisPoints; + } + + + /***********************************| + | ERC-2981 Functions | + |__________________________________*/ + + /** + * @notice Called with the sale price to determine how much royalty is owed and to whom. + * @param _saleCost - the sale cost of the NFT asset specified by _tokenId + * @return receiver - address of who should be sent the royalty payment + * @return royaltyAmount - the royalty payment amount for _salePrice + */ + function royaltyInfo( + uint256, + uint256 _saleCost + ) external view override returns (address receiver, uint256 royaltyAmount) + { + FeeInfo memory info = globalRoyaltyInfo; + return (info.receiver, _saleCost.mul(info.feeBasisPoints).div(1000)); + } + + + /***********************************| + | ERC-165 Functions | + |__________________________________*/ + + /** + * @notice Query if a contract implements an interface + * @param _interfaceID The interface identifier, as specified in ERC-165 + * @return `true` if the contract implements `_interfaceID` and + */ + function supportsInterface(bytes4 _interfaceID) public override(ERC165, IERC165) virtual pure returns (bool) { + if (_interfaceID == type(IERC2981).interfaceId) { + return true; + } + return super.supportsInterface(_interfaceID); + } +} \ No newline at end of file diff --git a/src/gen/adapter/factories/ERC1155MetaMintBurnMock__factory.js b/src/gen/adapter/factories/ERC1155MetaMintBurnMock__factory.js index 4d0ff98..c5cbf9a 100644 --- a/src/gen/adapter/factories/ERC1155MetaMintBurnMock__factory.js +++ b/src/gen/adapter/factories/ERC1155MetaMintBurnMock__factory.js @@ -25,11 +25,11 @@ var ERC1155MetaMintBurnMock__factory = /** @class */ (function (_super) { function ERC1155MetaMintBurnMock__factory(signer) { return _super.call(this, _abi, _bytecode, signer) || this; } - ERC1155MetaMintBurnMock__factory.prototype.deploy = function (overrides) { - return _super.prototype.deploy.call(this, overrides || {}); + ERC1155MetaMintBurnMock__factory.prototype.deploy = function (_name, _baseURI, overrides) { + return _super.prototype.deploy.call(this, _name, _baseURI, overrides || {}); }; - ERC1155MetaMintBurnMock__factory.prototype.getDeployTransaction = function (overrides) { - return _super.prototype.getDeployTransaction.call(this, overrides || {}); + ERC1155MetaMintBurnMock__factory.prototype.getDeployTransaction = function (_name, _baseURI, overrides) { + return _super.prototype.getDeployTransaction.call(this, _name, _baseURI, overrides || {}); }; ERC1155MetaMintBurnMock__factory.prototype.attach = function (address) { return _super.prototype.attach.call(this, address); @@ -44,6 +44,22 @@ var ERC1155MetaMintBurnMock__factory = /** @class */ (function (_super) { }(ethers_1.ContractFactory)); exports.ERC1155MetaMintBurnMock__factory = ERC1155MetaMintBurnMock__factory; var _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string" + }, + { + internalType: "string", + name: "_baseURI", + type: "string" + }, + ], + stateMutability: "nonpayable", + type: "constructor" + }, { anonymous: false, inputs: [ @@ -233,6 +249,19 @@ var _abi = [ stateMutability: "view", type: "function" }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + }, + ], + stateMutability: "view", + type: "function" + }, { inputs: [ { @@ -521,6 +550,19 @@ var _abi = [ stateMutability: "nonpayable", type: "function" }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + }, + ], + stateMutability: "view", + type: "function" + }, { inputs: [ { @@ -644,4 +686,4 @@ var _abi = [ type: "function" }, ]; -var _bytecode = "0x608060405234801561001057600080fd5b50613fc7806100206000396000f3fe608060405234801561001057600080fd5b506004361061011a5760003560e01c8063a3d4926e116100b2578063d7a0ad9011610081578063f242432a11610066578063f242432a1461029e578063f5d4c820146102b1578063fa4e12d7146102c45761011a565b8063d7a0ad9014610278578063e985e9c51461028b5761011a565b8063a3d4926e1461022c578063a3f091f51461023f578063bd7a6c4114610252578063ce0b514b146102655761011a565b80632eb2c2d6116100ee5780632eb2c2d6146101d1578063437ecbe9146101e65780634e1273f4146101f9578063a22cb465146102195761011a565b8062fdd58e1461015557806301ffc9a71461017e5780630e89341c1461019e5780632d0335ab146101be575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613958565b60405180910390fd5b6101686101633660046133cd565b6102d7565b6040516101759190613b29565b60405180910390f35b61019161018c366004613560565b61030a565b60405161017591906137c5565b6101b16101ac36600461365f565b61031d565b604051610175919061384d565b6101686101cc366004612ef7565b610470565b6101e46101df366004613051565b610498565b005b6101e46101f43660046133f8565b6105a3565b61020c610207366004613481565b6105b3565b6040516101759190613781565b6101e4610227366004613351565b6106ff565b6101e461023a366004612f94565b610798565b6101e461024d36600461342c565b61090c565b6101e4610260366004613247565b61091e565b6101e4610273366004613174565b610929565b6101e46102863660046132ba565b610a08565b610191610299366004612f5c565b610a14565b6101e46102ac3660046131ec565b610a4f565b6101e46102bf3660046130fb565b610b53565b6101916102d236600461337e565b610c83565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b600061031582611464565b90505b919050565b6060600361032a836114c1565b60405160200180838054600181600116156101000203166002900480156103885780601f10610366576101008083540402835291820191610388565b820191906000526020600020905b815481529060010190602001808311610374575b5050825160208401908083835b602083106103d257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610395565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff861614806104c157506104c18533610a14565b610516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613e3b602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610582576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613d7c6030913960400191505060405180910390fd5b61058e858585856115ed565b61059c858585855a86611941565b5050505050565b6105ae838383611bae565b505050565b6060815183511461060f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613ddc602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561062957600080fd5b50604051908082528060200260200182016040528015610653578160200160208202803683370190505b50905060005b84518110156106f75760008086838151811061067157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106106c157fe5b60200260200101518152602001908152602001600020548282815181106106e457fe5b6020908102919091010152600101610659565b509392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff85166107e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613a12565b60606107ef612d28565b60606108a289857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c60405160200161082d9190613677565b604051602081830303815290604052805190602001208c6040516020016108549190613677565b604051602081830303815290604052805190602001208c610876576000610879565b60015b60405160200161088e969594939291906137d0565b604051602081830303815290604052611c59565b90506108b0898989896115ed565b84156108f357808060200190518101906108ca919061362a565b80945081935050506108e489898989866020015188611941565b6108ee8983611e28565b610901565b610901898989895a86611941565b505050505050505050565b610918848484846120d1565b50505050565b6105ae838383612186565b73ffffffffffffffffffffffffffffffffffffffff8516610976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c9061389e565b6060610980612d28565b60606109b889857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c610876576000610879565b90506109c6898989896123c6565b84156109fa57808060200190518101906109e0919061362a565b80945081935050506108e4898989898660200151886124c9565b610901898989895a866124c9565b610918848484846126ba565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610a785750610a788533610a14565b610acd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613c76602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610b39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613c14602b913960400191505060405180910390fd5b610b45858585856123c6565b61059c858585855a866124c9565b6060610baf86837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610b89576000610b8c565b60015b89610b98576000610b9b565b60015b60405160200161088e959493929190613811565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610c439088906137c5565b60405180910390a38215610c7b57610c59612d28565b81806020019051810190610c6d91906135f7565b9050610c798782611e28565b505b505050505050565b600080825111610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613e6a6043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180613e086033913960400191505060405180910390fd5b6000610d5583612904565b60f81c905060058110610db3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cd5603a913960400191505060405180910390fd5b60008160ff166005811115610dc457fe5b9050600080808080856005811115610dd857fe5b1415610e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180613d0f6036913960400191505060405180910390fd5b6001856005811115610e3d57fe5b1415610f80578751606114610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613d456037913960400191505060405180910390fd5b610ea88860006129c1565b9250610eb58860206129c1565b915087604081518110610ec457fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610f2e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d8116911614975061145c9650505050505050565b6002856005811115610f8e57fe5b14156110de578751606114610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613d456037913960400191505060405180910390fd5b610ff98860006129c1565b92506110068860206129c1565b91508760408151811061101557fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610f2e573d6000803e3d6000fd5b60038560058111156110ec57fe5b14156112a457604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b8381101561117a578181015183820152602001611162565b50505050905090810190601f1680156111a75780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156111da5781810151838201526020016111c2565b50505050905090810190601f1680156112075780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561122657600080fd5b505afa15801561123a573d6000803e3d6000fd5b505050506040513d602081101561125057600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b0000000000000000000000000000000000000000000000000000000014965061145c95505050505050565b60048560058111156112b257fe5b141561140b57604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b8381101561134257818101518382015260200161132a565b50505050905090810190601f16801561136f5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561138d57600080fd5b505afa1580156113a1573d6000803e3d6000fd5b505050506040513d60208110156113b757600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014965061145c95505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cd5603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156114b857506001610318565b61031582612a29565b606081611502575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610318565b818060005b821561151b57600101600a83049250611507565b60608167ffffffffffffffff8111801561153457600080fd5b506040519080825280601f01601f19166020018201604052801561155f576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b83156115e357600a840660300160f81b828280600190039350815181106115a957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611586565b5095945050505050565b8051825114611647576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180613ca06035913960400191505060405180910390fd5b815160005b81811015611839576116dc83828151811061166357fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116b757fe5b6020026020010151815260200190815260200160002054612a8690919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061172857fe5b60200260200101518152602001908152602001600020819055506117ca83828151811061175157fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106117a557fe5b6020026020010151815260200190815260200160002054612afd90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061181657fe5b60209081029190910181015182528101919091526040016000205560010161164c565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156118e65781810151838201526020016118ce565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561192557818101518382015260200161190d565b5050505090500194505050505060405180910390a45050505050565b6119608573ffffffffffffffffffffffffffffffffffffffff16612b78565b15610c7b5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611a18578181015183820152602001611a00565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611a57578181015183820152602001611a3f565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611a93578181015183820152602001611a7b565b50505050905090810190601f168015611ac05780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611ae557600080fd5b5087f1158015611af9573d6000803e3d6000fd5b50505050506040513d6020811015611b1057600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610c79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180613edd603f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611be79082612a86565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b60608083806020019051810190611c7091906135a0565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611ca88360416129c1565b9050818110801590611cbc57508160640181105b611cf2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613a6f565b6000611d2e86838780519060200120604051602001611d13939291906136ad565b60405160208183030381529060405280519060200120612baf565b90506060868387604051602001611d47939291906136d4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf5991611dd291613b29565b60405180910390a2611de689838388610c83565b611e1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c906138fb565b50505050509392505050565b6000611e378260600151612904565b60f81c905060028110611e76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613acc565b60008160ff166002811115611e8757fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff1615611ebd578660400151611ebf565b335b92506000856002811115611ecf57fe5b1415611fce578660600151806020019051810190611eed9190612f2f565b909450915073ffffffffffffffffffffffffffffffffffffffff8416301415611f3e57611f1c888484846123c6565b611f398884845a85604051806020016040528060008152506124c9565b611fc9565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a90611f96908b9087908790879060040161373c565b600060405180830381600087803b158015611fb057600080fd5b505af1158015611fc4573d6000803e3d6000fd5b505050505b6120c7565b8660600151806020019051810190611fe69190612f13565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd9061203f908b908790869060040161370b565b602060405180830381600087803b15801561205957600080fd5b505af115801561206d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120919190613544565b6120c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c906139b5565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915290205461210a9083612afd565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461091860008585855a866124c9565b8151815181146121e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613dac6030913960400191505060405180910390fd5b60005b818110156122be5761224f8382815181106121fb57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116b757fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061229b57fe5b6020908102919091018101518252810191909152604001600020556001016121e4565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561236c578181015183820152602001612354565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156123ab578181015183820152602001612393565b5050505090500194505050505060405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208584529091529020546123ff9082612a86565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152602081815260408083208784528252808320949094559186168152808252828120858252909152205461244f9082612afd565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6124e88573ffffffffffffffffffffffffffffffffffffffff16612b78565b15610c7b5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156125a1578181015183820152602001612589565b50505050905090810190601f1680156125ce5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156125f157600080fd5b5087f1158015612605573d6000803e3d6000fd5b50505050506040513d602081101561261c57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610c79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613f1c603a913960400191505060405180910390fd5b8151835114612714576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613ead6030913960400191505060405180910390fd5b825160005b818110156127f35761278484828151811061273057fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008885815181106117a557fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008784815181106127d057fe5b602090810291909101810151825281019190915260400160002055600101612719565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156128a1578181015183820152602001612889565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156128e05781810151838201526020016128c8565b5050505090500194505050505060405180910390a461059c60008686865a87611941565b60008082511161295f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613c3f6037913960400191505060405180910390fd5b8160018351038151811061296f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612a20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180613f56603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612a7d57506001610318565b61031582612cde565b600082821115612af757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015612b7157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590612b7157507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612c7c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612c3f565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f830112612d76578081fd5b8135612d89612d8482613b56565b613b32565b818152915060208083019084810181840286018201871015612daa57600080fd5b60005b84811015612dc957813584529282019290820190600101612dad565b505050505092915050565b600082601f830112612de4578081fd5b8135612df2612d8482613b74565b9150808252836020828501011115612e0957600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112612e32578081fd5b8151612e40612d8482613b74565b9150808252836020828501011115612e5757600080fd5b612e68816020840160208601613bb4565b5092915050565b600060808284031215612e80578081fd5b6040516080810167ffffffffffffffff8282108183111715612e9e57fe5b81604052829350845183526020850151602084015260408501519150612ec382613be0565b8160408401526060850151915080821115612edd57600080fd5b50612eea85828601612e22565b6060830152505092915050565b600060208284031215612f08578081fd5b8135612b7181613be0565b600060208284031215612f24578081fd5b8151612b7181613be0565b60008060408385031215612f41578081fd5b8251612f4c81613be0565b6020939093015192949293505050565b60008060408385031215612f6e578182fd5b8235612f7981613be0565b91506020830135612f8981613be0565b809150509250929050565b60008060008060008060c08789031215612fac578182fd5b8635612fb781613be0565b95506020870135612fc781613be0565b9450604087013567ffffffffffffffff80821115612fe3578384fd5b612fef8a838b01612d66565b95506060890135915080821115613004578384fd5b6130108a838b01612d66565b94506080890135915061302282613c05565b90925060a08801359080821115613037578283fd5b5061304489828a01612dd4565b9150509295509295509295565b600080600080600060a08688031215613068578081fd5b853561307381613be0565b9450602086013561308381613be0565b9350604086013567ffffffffffffffff8082111561309f578283fd5b6130ab89838a01612d66565b945060608801359150808211156130c0578283fd5b6130cc89838a01612d66565b935060808801359150808211156130e1578283fd5b506130ee88828901612dd4565b9150509295509295909350565b600080600080600060a08688031215613112578081fd5b853561311d81613be0565b9450602086013561312d81613be0565b9350604086013561313d81613c05565b9250606086013561314d81613c05565b9150608086013567ffffffffffffffff811115613168578182fd5b6130ee88828901612dd4565b60008060008060008060c0878903121561318c578384fd5b863561319781613be0565b955060208701356131a781613be0565b9450604087013593506060870135925060808701356131c581613c05565b915060a087013567ffffffffffffffff8111156131e0578182fd5b61304489828a01612dd4565b600080600080600060a08688031215613203578283fd5b853561320e81613be0565b9450602086013561321e81613be0565b93506040860135925060608601359150608086013567ffffffffffffffff811115613168578182fd5b60008060006060848603121561325b578081fd5b833561326681613be0565b9250602084013567ffffffffffffffff80821115613282578283fd5b61328e87838801612d66565b935060408601359150808211156132a3578283fd5b506132b086828701612d66565b9150509250925092565b600080600080608085870312156132cf578182fd5b84356132da81613be0565b9350602085013567ffffffffffffffff808211156132f6578384fd5b61330288838901612d66565b94506040870135915080821115613317578384fd5b61332388838901612d66565b93506060870135915080821115613338578283fd5b5061334587828801612dd4565b91505092959194509250565b60008060408385031215613363578182fd5b823561336e81613be0565b91506020830135612f8981613c05565b60008060008060808587031215613393578182fd5b843561339e81613be0565b935060208501359250604085013567ffffffffffffffff808211156133c1578384fd5b61332388838901612dd4565b600080604083850312156133df578182fd5b82356133ea81613be0565b946020939093013593505050565b60008060006060848603121561340c578081fd5b833561341781613be0565b95602085013595506040909401359392505050565b60008060008060808587031215613441578182fd5b843561344c81613be0565b93506020850135925060408501359150606085013567ffffffffffffffff811115613475578182fd5b61334587828801612dd4565b60008060408385031215613493578182fd5b823567ffffffffffffffff808211156134aa578384fd5b818501915085601f8301126134bd578384fd5b81356134cb612d8482613b56565b80828252602080830192508086018a8283870289010111156134eb578889fd5b8896505b8487101561351657803561350281613be0565b8452600196909601959281019281016134ef565b50909650870135935050508082111561352d578283fd5b5061353a85828601612d66565b9150509250929050565b600060208284031215613555578081fd5b8151612b7181613c05565b600060208284031215613571578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612b71578182fd5b600080604083850312156135b2578182fd5b825167ffffffffffffffff808211156135c9578384fd5b6135d586838701612e22565b935060208501519150808211156135ea578283fd5b5061353a85828601612e22565b600060208284031215613608578081fd5b815167ffffffffffffffff81111561361e578182fd5b61145c84828501612e6f565b6000806040838503121561363c578182fd5b825167ffffffffffffffff80821115613653578384fd5b6135d586838701612e6f565b600060208284031215613670578081fd5b5035919050565b815160009082906020808601845b838110156136a157815185529382019390820190600101613685565b50929695505050505050565b600084516136bf818460208901613bb4565b91909101928352506020820152604001919050565b600084516136e6818460208901613bb4565b820184815283516136fe816020808501908801613bb4565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b818110156137b95783518352928401929184019160010161379d565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b600060208252825180602084015261386c816040850160208701613bb4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526033908201527f455243313135354d657461236d657461536166655472616e7366657246726f6d60408201527f3a20494e56414c49445f524543495049454e5400000000000000000000000000606082015260800190565b60208082526033908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f5349474e415455524500000000000000000000000000606082015260800190565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f455243313135354d657461235f7472616e736665724761734665653a2045524360408201527f32305f5452414e534645525f4641494c45440000000000000000000000000000606082015260800190565b60208082526038908201527f455243313135354d657461236d6574615361666542617463685472616e73666560408201527f7246726f6d3a20494e56414c49445f524543495049454e540000000000000000606082015260800190565b6020808252602f908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f4e4f4e43450000000000000000000000000000000000606082015260800190565b6020808252602e908201527f455243313135354d657461235f7472616e736665724761734665653a20554e5360408201527f5550504f525445445f544f4b454e000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715613b4e57fe5b604052919050565b600067ffffffffffffffff821115613b6a57fe5b5060209081020190565b600067ffffffffffffffff821115613b8857fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015613bcf578181015183820152602001613bb7565b838111156109185750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114613c0257600080fd5b50565b8015158114613c0257600080fdfe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f52455155495245444552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f524551554952454445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e455245524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147454c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544a264697066735822122008b77ff76016e14115160846edef46ef1b7acff27d7339eaf2a92266ce99c33d64736f6c63430007040033"; +var _bytecode = "0x60806040523480156200001157600080fd5b5060405162004386380380620043868339810160408190526200003491620001dc565b8151829082906200004d9060049060208501906200006e565b508051620000639060039060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b61413280620002546000396000f3fe608060405234801561001057600080fd5b50600436106101505760003560e01c8063a22cb465116100cd578063d7a0ad9011610081578063f242432a11610066578063f242432a146102e4578063f5d4c820146102f7578063fa4e12d71461030a57610150565b8063d7a0ad90146102be578063e985e9c5146102d157610150565b8063a3f091f5116100b2578063a3f091f514610285578063bd7a6c4114610298578063ce0b514b146102ab57610150565b8063a22cb4651461025f578063a3d4926e1461027257610150565b80632d0335ab11610124578063437ecbe911610109578063437ecbe9146102245780634e1273f4146102375780636c0360eb1461025757610150565b80632d0335ab146101fc5780632eb2c2d61461020f57610150565b8062fdd58e1461018b57806301ffc9a7146101b457806306fdde03146101d45780630e89341c146101e9575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613ac3565b60405180910390fd5b61019e610199366004613538565b61031d565b6040516101ab9190613c94565b60405180910390f35b6101c76101c23660046136cb565b610350565b6040516101ab9190613930565b6101dc610363565b6040516101ab91906139b8565b6101dc6101f73660046137ca565b61040f565b61019e61020a366004613062565b610562565b61022261021d3660046131bc565b61058a565b005b610222610232366004613563565b610695565b61024a6102453660046135ec565b6106a5565b6040516101ab91906138ec565b6101dc6107f1565b61022261026d3660046134bc565b61086a565b6102226102803660046130ff565b610903565b610222610293366004613597565b610a77565b6102226102a63660046133b2565b610a89565b6102226102b93660046132df565b610a94565b6102226102cc366004613425565b610b73565b6101c76102df3660046130c7565b610b7f565b6102226102f2366004613357565b610bba565b610222610305366004613266565b610cbe565b6101c76103183660046134e9565b610dee565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b600061035b826115cf565b90505b919050565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104075780601f106103dc57610100808354040283529160200191610407565b820191906000526020600020905b8154815290600101906020018083116103ea57829003601f168201915b505050505081565b6060600361041c8361162c565b604051602001808380546001816001161561010002031660029004801561047a5780601f1061045857610100808354040283529182019161047a565b820191906000526020600020905b815481529060010190602001808311610466575b5050825160208401908083835b602083106104c457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610487565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff861614806105b357506105b38533610b7f565b610608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613fa6602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610674576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613ee76030913960400191505060405180910390fd5b61068085858585611758565b61068e858585855a86611aac565b5050505050565b6106a0838383611d19565b505050565b60608151835114610701576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613f47602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561071b57600080fd5b50604051908082528060200260200182016040528015610745578160200160208202803683370190505b50905060005b84518110156107e95760008086838151811061076357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106107b357fe5b60200260200101518152602001908152602001600020548282815181106107d657fe5b602090810291909101015260010161074b565b509392505050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104075780601f106103dc57610100808354040283529160200191610407565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8516610950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613b7d565b606061095a612e93565b6060610a0d89857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c60405160200161099891906137e2565b604051602081830303815290604052805190602001208c6040516020016109bf91906137e2565b604051602081830303815290604052805190602001208c6109e15760006109e4565b60015b6040516020016109f99695949392919061393b565b604051602081830303815290604052611dc4565b9050610a1b89898989611758565b8415610a5e5780806020019051810190610a359190613795565b8094508193505050610a4f89898989866020015188611aac565b610a598983611f93565b610a6c565b610a6c898989895a86611aac565b505050505050505050565b610a838484848461223c565b50505050565b6106a08383836122f1565b73ffffffffffffffffffffffffffffffffffffffff8516610ae1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613a09565b6060610aeb612e93565b6060610b2389857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c6109e15760006109e4565b9050610b3189898989612531565b8415610b655780806020019051810190610b4b9190613795565b8094508193505050610a4f89898989866020015188612634565b610a6c898989895a86612634565b610a8384848484612825565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610be35750610be38533610b7f565b610c38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613de1602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610ca4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613d7f602b913960400191505060405180910390fd5b610cb085858585612531565b61068e858585855a86612634565b6060610d1a86837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610cf4576000610cf7565b60015b89610d03576000610d06565b60015b6040516020016109f995949392919061397c565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610dae908890613930565b60405180910390a38215610de657610dc4612e93565b81806020019051810190610dd89190613762565b9050610de48782611f93565b505b505050505050565b600080825111610e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613fd56043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180613f736033913960400191505060405180910390fd5b6000610ec083612a6f565b60f81c905060058110610f1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613e40603a913960400191505060405180910390fd5b60008160ff166005811115610f2f57fe5b9050600080808080856005811115610f4357fe5b1415610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180613e7a6036913960400191505060405180910390fd5b6001856005811115610fa857fe5b14156110eb578751606114611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613eb06037913960400191505060405180910390fd5b611013886000612b2c565b9250611020886020612b2c565b91508760408151811061102f57fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611099573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d811691161497506115c79650505050505050565b60028560058111156110f957fe5b1415611249578751606114611159576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613eb06037913960400191505060405180910390fd5b611164886000612b2c565b9250611171886020612b2c565b91508760408151811061118057fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611099573d6000803e3d6000fd5b600385600581111561125757fe5b141561140f57604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b838110156112e55781810151838201526020016112cd565b50505050905090810190601f1680156113125780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561134557818101518382015260200161132d565b50505050905090810190601f1680156113725780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561139157600080fd5b505afa1580156113a5573d6000803e3d6000fd5b505050506040513d60208110156113bb57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b000000000000000000000000000000000000000000000000000000001496506115c795505050505050565b600485600581111561141d57fe5b141561157657604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b838110156114ad578181015183820152602001611495565b50505050905090810190601f1680156114da5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156114f857600080fd5b505afa15801561150c573d6000803e3d6000fd5b505050506040513d602081101561152257600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e000000000000000000000000000000000000000000000000000000001496506115c795505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613e40603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156116235750600161035e565b61035b82612b94565b60608161166d575060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015261035e565b818060005b821561168657600101600a83049250611672565b60608167ffffffffffffffff8111801561169f57600080fd5b506040519080825280601f01601f1916602001820160405280156116ca576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561174e57600a840660300160f81b8282806001900393508151811061171457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506116f1565b5095945050505050565b80518251146117b2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180613e0b6035913960400191505060405180910390fd5b815160005b818110156119a4576118478382815181106117ce57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087858151811061182257fe5b6020026020010151815260200190815260200160002054612bf190919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061189357fe5b60200260200101518152602001908152602001600020819055506119358382815181106118bc57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087858151811061191057fe5b6020026020010151815260200190815260200160002054612c6890919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061198157fe5b6020908102919091018101518252810191909152604001600020556001016117b7565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611a51578181015183820152602001611a39565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611a90578181015183820152602001611a78565b5050505090500194505050505060405180910390a45050505050565b611acb8573ffffffffffffffffffffffffffffffffffffffff16612ce3565b15610de65760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611b83578181015183820152602001611b6b565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611bc2578181015183820152602001611baa565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611bfe578181015183820152602001611be6565b50505050905090810190601f168015611c2b5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611c5057600080fd5b5087f1158015611c64573d6000803e3d6000fd5b50505050506040513d6020811015611c7b57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610de4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180614048603f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611d529082612bf1565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b60608083806020019051810190611ddb919061370b565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611e13836041612b2c565b9050818110801590611e2757508160640181105b611e5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613bda565b6000611e9986838780519060200120604051602001611e7e93929190613818565b60405160208183030381529060405280519060200120612d1a565b90506060868387604051602001611eb29392919061383f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf5991611f3d91613c94565b60405180910390a2611f5189838388610dee565b611f87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613a66565b50505050509392505050565b6000611fa28260600151612a6f565b60f81c905060028110611fe1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613c37565b60008160ff166002811115611ff257fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff161561202857866040015161202a565b335b9250600085600281111561203a57fe5b1415612139578660600151806020019051810190612058919061309a565b909450915073ffffffffffffffffffffffffffffffffffffffff84163014156120a95761208788848484612531565b6120a48884845a8560405180602001604052806000815250612634565b612134565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a90612101908b908790879087906004016138a7565b600060405180830381600087803b15801561211b57600080fd5b505af115801561212f573d6000803e3d6000fd5b505050505b612232565b8660600151806020019051810190612151919061307e565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd906121aa908b9087908690600401613876565b602060405180830381600087803b1580156121c457600080fd5b505af11580156121d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121fc91906136af565b612232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613b20565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208684529091529020546122759083612c68565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a4610a8360008585855a86612634565b81518151811461234c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613f176030913960400191505060405180910390fd5b60005b81811015612429576123ba83828151811061236657fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087858151811061182257fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061240657fe5b60209081029190910181015182528101919091526040016000205560010161234f565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156124d75781810151838201526020016124bf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156125165781810151838201526020016124fe565b5050505090500194505050505060405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832085845290915290205461256a9082612bf1565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546125ba9082612c68565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6126538573ffffffffffffffffffffffffffffffffffffffff16612ce3565b15610de65760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561270c5781810151838201526020016126f4565b50505050905090810190601f1680156127395780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561275c57600080fd5b5087f1158015612770573d6000803e3d6000fd5b50505050506040513d602081101561278757600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610de4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614087603a913960400191505060405180910390fd5b815183511461287f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806140186030913960400191505060405180910390fd5b825160005b8181101561295e576128ef84828151811061289b57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088858151811061191057fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087848151811061293b57fe5b602090810291909101810151825281019190915260400160002055600101612884565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612a0c5781810151838201526020016129f4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612a4b578181015183820152602001612a33565b5050505090500194505050505060405180910390a461068e60008686865a87611aac565b600080825111612aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613daa6037913960400191505060405180910390fd5b81600183510381518110612ada57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612b8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806140c1603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612be85750600161035e565b61035b82612e49565b600082821115612c6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015612cdc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590612cdc57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612de757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612daa565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f830112612ee1578081fd5b8135612ef4612eef82613cc1565b613c9d565b818152915060208083019084810181840286018201871015612f1557600080fd5b60005b84811015612f3457813584529282019290820190600101612f18565b505050505092915050565b600082601f830112612f4f578081fd5b8135612f5d612eef82613cdf565b9150808252836020828501011115612f7457600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112612f9d578081fd5b8151612fab612eef82613cdf565b9150808252836020828501011115612fc257600080fd5b612fd3816020840160208601613d1f565b5092915050565b600060808284031215612feb578081fd5b6040516080810167ffffffffffffffff828210818311171561300957fe5b8160405282935084518352602085015160208401526040850151915061302e82613d4b565b816040840152606085015191508082111561304857600080fd5b5061305585828601612f8d565b6060830152505092915050565b600060208284031215613073578081fd5b8135612cdc81613d4b565b60006020828403121561308f578081fd5b8151612cdc81613d4b565b600080604083850312156130ac578081fd5b82516130b781613d4b565b6020939093015192949293505050565b600080604083850312156130d9578182fd5b82356130e481613d4b565b915060208301356130f481613d4b565b809150509250929050565b60008060008060008060c08789031215613117578182fd5b863561312281613d4b565b9550602087013561313281613d4b565b9450604087013567ffffffffffffffff8082111561314e578384fd5b61315a8a838b01612ed1565b9550606089013591508082111561316f578384fd5b61317b8a838b01612ed1565b94506080890135915061318d82613d70565b90925060a088013590808211156131a2578283fd5b506131af89828a01612f3f565b9150509295509295509295565b600080600080600060a086880312156131d3578081fd5b85356131de81613d4b565b945060208601356131ee81613d4b565b9350604086013567ffffffffffffffff8082111561320a578283fd5b61321689838a01612ed1565b9450606088013591508082111561322b578283fd5b61323789838a01612ed1565b9350608088013591508082111561324c578283fd5b5061325988828901612f3f565b9150509295509295909350565b600080600080600060a0868803121561327d578081fd5b853561328881613d4b565b9450602086013561329881613d4b565b935060408601356132a881613d70565b925060608601356132b881613d70565b9150608086013567ffffffffffffffff8111156132d3578182fd5b61325988828901612f3f565b60008060008060008060c087890312156132f7578384fd5b863561330281613d4b565b9550602087013561331281613d4b565b94506040870135935060608701359250608087013561333081613d70565b915060a087013567ffffffffffffffff81111561334b578182fd5b6131af89828a01612f3f565b600080600080600060a0868803121561336e578283fd5b853561337981613d4b565b9450602086013561338981613d4b565b93506040860135925060608601359150608086013567ffffffffffffffff8111156132d3578182fd5b6000806000606084860312156133c6578081fd5b83356133d181613d4b565b9250602084013567ffffffffffffffff808211156133ed578283fd5b6133f987838801612ed1565b9350604086013591508082111561340e578283fd5b5061341b86828701612ed1565b9150509250925092565b6000806000806080858703121561343a578182fd5b843561344581613d4b565b9350602085013567ffffffffffffffff80821115613461578384fd5b61346d88838901612ed1565b94506040870135915080821115613482578384fd5b61348e88838901612ed1565b935060608701359150808211156134a3578283fd5b506134b087828801612f3f565b91505092959194509250565b600080604083850312156134ce578182fd5b82356134d981613d4b565b915060208301356130f481613d70565b600080600080608085870312156134fe578182fd5b843561350981613d4b565b935060208501359250604085013567ffffffffffffffff8082111561352c578384fd5b61348e88838901612f3f565b6000806040838503121561354a578182fd5b823561355581613d4b565b946020939093013593505050565b600080600060608486031215613577578081fd5b833561358281613d4b565b95602085013595506040909401359392505050565b600080600080608085870312156135ac578182fd5b84356135b781613d4b565b93506020850135925060408501359150606085013567ffffffffffffffff8111156135e0578182fd5b6134b087828801612f3f565b600080604083850312156135fe578182fd5b823567ffffffffffffffff80821115613615578384fd5b818501915085601f830112613628578384fd5b8135613636612eef82613cc1565b80828252602080830192508086018a828387028901011115613656578889fd5b8896505b8487101561368157803561366d81613d4b565b84526001969096019592810192810161365a565b509096508701359350505080821115613698578283fd5b506136a585828601612ed1565b9150509250929050565b6000602082840312156136c0578081fd5b8151612cdc81613d70565b6000602082840312156136dc578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612cdc578182fd5b6000806040838503121561371d578182fd5b825167ffffffffffffffff80821115613734578384fd5b61374086838701612f8d565b93506020850151915080821115613755578283fd5b506136a585828601612f8d565b600060208284031215613773578081fd5b815167ffffffffffffffff811115613789578182fd5b6115c784828501612fda565b600080604083850312156137a7578182fd5b825167ffffffffffffffff808211156137be578384fd5b61374086838701612fda565b6000602082840312156137db578081fd5b5035919050565b815160009082906020808601845b8381101561380c578151855293820193908201906001016137f0565b50929695505050505050565b6000845161382a818460208901613d1f565b91909101928352506020820152604001919050565b60008451613851818460208901613d1f565b82018481528351613869816020808501908801613d1f565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b8181101561392457835183529284019291840191600101613908565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b60006020825282518060208401526139d7816040850160208701613d1f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526033908201527f455243313135354d657461236d657461536166655472616e7366657246726f6d60408201527f3a20494e56414c49445f524543495049454e5400000000000000000000000000606082015260800190565b60208082526033908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f5349474e415455524500000000000000000000000000606082015260800190565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f455243313135354d657461235f7472616e736665724761734665653a2045524360408201527f32305f5452414e534645525f4641494c45440000000000000000000000000000606082015260800190565b60208082526038908201527f455243313135354d657461236d6574615361666542617463685472616e73666560408201527f7246726f6d3a20494e56414c49445f524543495049454e540000000000000000606082015260800190565b6020808252602f908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f4e4f4e43450000000000000000000000000000000000606082015260800190565b6020808252602e908201527f455243313135354d657461235f7472616e736665724761734665653a20554e5360408201527f5550504f525445445f544f4b454e000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715613cb957fe5b604052919050565b600067ffffffffffffffff821115613cd557fe5b5060209081020190565b600067ffffffffffffffff821115613cf357fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015613d3a578181015183820152602001613d22565b83811115610a835750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114613d6d57600080fd5b50565b8015158114613d6d57600080fdfe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f52455155495245444552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f524551554952454445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e455245524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147454c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544a2646970667358221220afda31fa355189ce453c48dd07cb0cbe445eb5385f57ff43407dbf58083ff66764736f6c63430007040033"; diff --git a/src/gen/adapter/factories/ERC1155MetaMintBurnPackedBalanceMock__factory.js b/src/gen/adapter/factories/ERC1155MetaMintBurnPackedBalanceMock__factory.js index b83bace..7c7c430 100644 --- a/src/gen/adapter/factories/ERC1155MetaMintBurnPackedBalanceMock__factory.js +++ b/src/gen/adapter/factories/ERC1155MetaMintBurnPackedBalanceMock__factory.js @@ -25,11 +25,11 @@ var ERC1155MetaMintBurnPackedBalanceMock__factory = /** @class */ (function (_su function ERC1155MetaMintBurnPackedBalanceMock__factory(signer) { return _super.call(this, _abi, _bytecode, signer) || this; } - ERC1155MetaMintBurnPackedBalanceMock__factory.prototype.deploy = function (overrides) { - return _super.prototype.deploy.call(this, overrides || {}); + ERC1155MetaMintBurnPackedBalanceMock__factory.prototype.deploy = function (_name, _baseURI, overrides) { + return _super.prototype.deploy.call(this, _name, _baseURI, overrides || {}); }; - ERC1155MetaMintBurnPackedBalanceMock__factory.prototype.getDeployTransaction = function (overrides) { - return _super.prototype.getDeployTransaction.call(this, overrides || {}); + ERC1155MetaMintBurnPackedBalanceMock__factory.prototype.getDeployTransaction = function (_name, _baseURI, overrides) { + return _super.prototype.getDeployTransaction.call(this, _name, _baseURI, overrides || {}); }; ERC1155MetaMintBurnPackedBalanceMock__factory.prototype.attach = function (address) { return _super.prototype.attach.call(this, address); @@ -44,6 +44,22 @@ var ERC1155MetaMintBurnPackedBalanceMock__factory = /** @class */ (function (_su }(ethers_1.ContractFactory)); exports.ERC1155MetaMintBurnPackedBalanceMock__factory = ERC1155MetaMintBurnPackedBalanceMock__factory; var _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string" + }, + { + internalType: "string", + name: "_baseURI", + type: "string" + }, + ], + stateMutability: "nonpayable", + type: "constructor" + }, { anonymous: false, inputs: [ @@ -233,6 +249,19 @@ var _abi = [ stateMutability: "view", type: "function" }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + }, + ], + stateMutability: "view", + type: "function" + }, { inputs: [ { @@ -569,6 +598,19 @@ var _abi = [ stateMutability: "nonpayable", type: "function" }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + }, + ], + stateMutability: "view", + type: "function" + }, { inputs: [ { @@ -692,4 +734,4 @@ var _abi = [ type: "function" }, ]; -var _bytecode = "0x608060405234801561001057600080fd5b5061448c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101505760003560e01c8063a3f091f5116100cd578063e985e9c511610081578063f242432a11610066578063f242432a14610308578063f5d4c8201461031b578063fa4e12d71461032e57610150565b8063e985e9c5146102e2578063eaec5f81146102f557610150565b8063ce0b514b116100b2578063ce0b514b1461029b578063d7a0ad90146102ae578063db90e83c146102c157610150565b8063a3f091f514610275578063bd7a6c411461028857610150565b80632eb2c2d6116101245780634e1273f4116101095780634e1273f41461022f578063a22cb4651461024f578063a3d4926e1461026257610150565b80632eb2c2d614610207578063437ecbe91461021c57610150565b8062fdd58e1461018b57806301ffc9a7146101b45780630e89341c146101d45780632d0335ab146101f4575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613e20565b60405180910390fd5b61019e6101993660046136d8565b610341565b6040516101ab9190613e7d565b60405180910390f35b6101c76101c236600461386b565b610396565b6040516101ab9190613af1565b6101e76101e236600461396a565b6103a9565b6040516101ab9190613b79565b61019e610202366004613202565b6104fc565b61021a61021536600461335c565b610524565b005b61021a61022a366004613703565b61062f565b61024261023d36600461378c565b61063f565b6040516101ab9190613aad565b61021a61025d36600461365c565b6108be565b61021a61027036600461329f565b610957565b61021a610283366004613737565b610acb565b61021a610296366004613552565b610add565b61021a6102a936600461347f565b610ae8565b61021a6102bc3660046135c5565b610bc7565b6102d46102cf36600461396a565b610bd3565b6040516101ab929190613e86565b6101c76102f0366004613267565b610be0565b61019e610303366004613982565b610c1b565b61021a6103163660046134f7565b610c2e565b61021a610329366004613406565b610d32565b6101c761033c366004613689565b610e62565b600080600061034f84610bd3565b73ffffffffffffffffffffffffffffffffffffffff8716600090815260208181526040808320858452909152902054919350915061038d9082610c1b565b95945050505050565b60006103a182611643565b90505b919050565b606060036103b6836116a0565b60405160200180838054600181600116156101000203166002900480156104145780601f106103f2576101008083540402835291820191610414565b820191906000526020600020905b815481529060010190602001808311610400575b5050825160208401908083835b6020831061045e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610421565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff8616148061054d575061054d8533610be0565b6105a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806141c2603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661060e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180613faf603d913960400191505060405180910390fd5b61061a858585856117cc565b610628858585855a86611bd9565b5050505050565b61063a838383611e46565b505050565b8151815160609190811461069e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180613f766039913960400191505060405180910390fd5b6000806106be856000815181106106b157fe5b6020026020010151610bd3565b915091506000806000886000815181106106d457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561074857600080fd5b50604051908082528060200260200182016040528015610772578160200160208202803683370190505b50905061077f8385610c1b565b8160008151811061078c57fe5b602090810291909101015260015b868110156108b1576107b18982815181106106b157fe5b9096509450828614158061081a57508981815181106107cc57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106107f957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610888576000808b838151811061082e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6108928486610c1b565b82828151811061089e57fe5b602090810291909101015260010161079a565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff85166109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613d40565b60606109ae613033565b6060610a6189857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c6040516020016109ec91906139a3565b604051602081830303815290604052805190602001208c604051602001610a1391906139a3565b604051602081830303815290604052805190602001208c610a35576000610a38565b60015b604051602001610a4d96959493929190613afc565b604051602081830303815290604052611eb0565b9050610a6f898989896117cc565b8415610ab25780806020019051810190610a899190613935565b8094508193505050610aa389898989866020015188611bd9565b610aad898361207f565b610ac0565b610ac0898989895a86611bd9565b505050505050505050565b610ad784848484612328565b50505050565b61063a83838361239c565b73ffffffffffffffffffffffffffffffffffffffff8516610b35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613ce2565b6060610b3f613033565b6060610b7789857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c610a35576000610a38565b9050610b8589898989612545565b8415610bb95780806020019051810190610b9f9190613935565b8094508193505050610aa3898989898660200151886125e9565b610ac0898989895a866125e9565b610ad7848484846127da565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610c575750610c578533610be0565b610cac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806140906037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610d18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061432e6038913960400191505060405180910390fd5b610d2485858585612545565b610628858585855a866125e9565b6060610d8e86837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610d68576000610d6b565b60015b89610d77576000610d7a565b60015b604051602001610a4d959493929190613b3d565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610e22908890613af1565b60405180910390a38215610e5a57610e38613033565b81806020019051810190610e4c9190613902565b9050610e58878261207f565b505b505050505050565b600080825111610ebd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806142eb6043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610f29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806142716033913960400191505060405180910390fd5b6000610f3483612a64565b60f81c905060058110610f92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614056603a913960400191505060405180910390fd5b60008160ff166005811115610fa357fe5b9050600080808080856005811115610fb757fe5b141561100e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806140c76036913960400191505060405180910390fd5b600185600581111561101c57fe5b141561115f57875160611461107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061418b6037913960400191505060405180910390fd5b611087886000612b21565b9250611094886020612b21565b9150876040815181106110a357fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561110d573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d8116911614975061163b9650505050505050565b600285600581111561116d57fe5b14156112bd5787516061146111cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061418b6037913960400191505060405180910390fd5b6111d8886000612b21565b92506111e5886020612b21565b9150876040815181106111f457fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa15801561110d573d6000803e3d6000fd5b60038560058111156112cb57fe5b141561148357604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b83811015611359578181015183820152602001611341565b50505050905090810190601f1680156113865780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156113b95781810151838201526020016113a1565b50505050905090810190601f1680156113e65780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561140557600080fd5b505afa158015611419573d6000803e3d6000fd5b505050506040513d602081101561142f57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b0000000000000000000000000000000000000000000000000000000014965061163b95505050505050565b600485600581111561149157fe5b14156115ea57604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b83811015611521578181015183820152602001611509565b50505050905090810190601f16801561154e5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561156c57600080fd5b505afa158015611580573d6000803e3d6000fd5b505050506040513d602081101561159657600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014965061163b95505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614056603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c000000000000000000000000000000000000000000000000000000001415611697575060016103a4565b6103a182612b89565b6060816116e1575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526103a4565b818060005b82156116fa57600101600a830492506116e6565b60608167ffffffffffffffff8111801561171357600080fd5b506040519080825280601f01601f19166020018201604052801561173e576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b83156117c257600a840660300160f81b8282806001900393508151811061178857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611765565b5095945050505050565b815181518114611827576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806140fd6042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156118635750600081115b15611a355760008061187b856000815181106106b157fe5b73ffffffffffffffffffffffffffffffffffffffff89166000908152602081815260408083208584529091528120548751939550919350916118d391908490889085906118c457fe5b60200260200101516001612be6565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091611929919085908990859061191a57fe5b60200260200101516000612be6565b90508360015b868110156119e3576119468982815181106106b157fe5b90965094508186146119b55773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b6119c684868a84815181106118c457fe5b93506119d983868a848151811061191a57fe5b925060010161192f565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550611ad2565b60005b81811015611ad057828181518110611a4c57fe5b6020026020010151611a7187868481518110611a6457fe5b6020026020010151610341565b1015611ac8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061423b6036913960400191505060405180910390fd5b600101611a38565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611b7e578181015183820152602001611b66565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611bbd578181015183820152602001611ba5565b5050505090500194505050505060405180910390a45050505050565b611bf88573ffffffffffffffffffffffffffffffffffffffff16612df9565b15610e5a5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611cb0578181015183820152602001611c98565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611cef578181015183820152602001611cd7565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611d2b578181015183820152602001611d13565b50505050905090810190601f168015611d585780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611d7d57600080fd5b5087f1158015611d91573d6000803e3d6000fd5b50505050506040513d6020811015611da857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610e58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c81526020018061413f604c913960600191505060405180910390fd5b611e538383836001612e33565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b60608083806020019051810190611ec791906138ab565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611eff836041612b21565b9050818110801590611f1357508160640181105b611f49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613c27565b6000611f8586838780519060200120604051602001611f6a939291906139d9565b60405160208183030381529060405280519060200120612eba565b90506060868387604051602001611f9e93929190613a00565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf599161202991613e7d565b60405180910390a261203d89838388610e62565b612073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613c84565b50505050509392505050565b600061208e8260600151612a64565b60f81c9050600281106120cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613dc3565b60008160ff1660028111156120de57fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff1615612114578660400151612116565b335b9250600085600281111561212657fe5b1415612225578660600151806020019051810190612144919061323a565b909450915073ffffffffffffffffffffffffffffffffffffffff84163014156121955761217388848484612545565b6121908884845a85604051806020016040528060008152506125e9565b612220565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a906121ed908b90879087908790600401613a68565b600060405180830381600087803b15801561220757600080fd5b505af115801561221b573d6000803e3d6000fd5b505050505b61231e565b866060015180602001905181019061223d919061321e565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd90612296908b9087908690600401613a37565b602060405180830381600087803b1580156122b057600080fd5b505af11580156122c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e8919061384f565b61231e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613bca565b5050505050505050565b6123358484846000612e33565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610ad760008585855a866125e9565b8151815181146123f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806141fe603d913960400191505060405180910390fd5b60005b8181101561243d576124358585838151811061241257fe5b602002602001015185848151811061242657fe5b60200260200101516001612e33565b6001016123fa565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156124eb5781810151838201526020016124d3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561252a578181015183820152602001612512565b5050505090500194505050505060405180910390a450505050565b6125528483836001612e33565b61255f8383836000612e33565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6126088573ffffffffffffffffffffffffffffffffffffffff16612df9565b15610e5a5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156126c15781810151838201526020016126a9565b50505050905090810190601f1680156126ee5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561271157600080fd5b5087f1158015612725573d6000803e3d6000fd5b50505050506040513d602081101561273c57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610e58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806142a46047913960600191505060405180910390fd5b8151835114612834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806143e7603e913960400191505060405180910390fd5b8251156129545760008061284e856000815181106106b157fe5b73ffffffffffffffffffffffffffffffffffffffff8816600090815260208181526040808320858452909152812054875193955091935091612897919084908890859061191a57fe5b86519091508360015b8281101561291b576128b78982815181106106b157fe5b90965094508186146129005773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b61291184868a848151811061191a57fe5b93506001016128a0565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612a015781810151838201526020016129e9565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612a40578181015183820152602001612a28565b5050505090500194505050505060405180910390a4610ad760008585855a86611bd9565b600080825111612abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613fec6037913960400191505060405180910390fd5b81600183510381518110612acf57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612b80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180614366603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612bdd575060016103a4565b6103a182612fe9565b60006020840263ffffffff82846001811115612bfe57fe5b1415612ccc5784821b8701925086831015612c64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806144256032913960400191505060405180910390fd5b64010000000087831c8216860110612cc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806144256032913960400191505060405180910390fd5b612def565b6001846001811115612cda57fe5b1415612d9e5784821b8703925086831115612d40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806140236033913960400191505060405180910390fd5b84818389901c161015612cc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806140236033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806143a26045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612e2c57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080612e3f85610bd3565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150612e7f90828686612be6565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612f8757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612f4a565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f830112613081578081fd5b813561309461308f82613eb8565b613e94565b8181529150602080830190848101818402860182018710156130b557600080fd5b60005b848110156130d4578135845292820192908201906001016130b8565b505050505092915050565b600082601f8301126130ef578081fd5b81356130fd61308f82613ed6565b915080825283602082850101111561311457600080fd5b8060208401602084013760009082016020015292915050565b600082601f83011261313d578081fd5b815161314b61308f82613ed6565b915080825283602082850101111561316257600080fd5b613173816020840160208601613f16565b5092915050565b60006080828403121561318b578081fd5b6040516080810167ffffffffffffffff82821081831117156131a957fe5b816040528293508451835260208501516020840152604085015191506131ce82613f42565b81604084015260608501519150808211156131e857600080fd5b506131f58582860161312d565b6060830152505092915050565b600060208284031215613213578081fd5b8135612e2c81613f42565b60006020828403121561322f578081fd5b8151612e2c81613f42565b6000806040838503121561324c578081fd5b825161325781613f42565b6020939093015192949293505050565b60008060408385031215613279578182fd5b823561328481613f42565b9150602083013561329481613f42565b809150509250929050565b60008060008060008060c087890312156132b7578182fd5b86356132c281613f42565b955060208701356132d281613f42565b9450604087013567ffffffffffffffff808211156132ee578384fd5b6132fa8a838b01613071565b9550606089013591508082111561330f578384fd5b61331b8a838b01613071565b94506080890135915061332d82613f67565b90925060a08801359080821115613342578283fd5b5061334f89828a016130df565b9150509295509295509295565b600080600080600060a08688031215613373578081fd5b853561337e81613f42565b9450602086013561338e81613f42565b9350604086013567ffffffffffffffff808211156133aa578283fd5b6133b689838a01613071565b945060608801359150808211156133cb578283fd5b6133d789838a01613071565b935060808801359150808211156133ec578283fd5b506133f9888289016130df565b9150509295509295909350565b600080600080600060a0868803121561341d578081fd5b853561342881613f42565b9450602086013561343881613f42565b9350604086013561344881613f67565b9250606086013561345881613f67565b9150608086013567ffffffffffffffff811115613473578182fd5b6133f9888289016130df565b60008060008060008060c08789031215613497578384fd5b86356134a281613f42565b955060208701356134b281613f42565b9450604087013593506060870135925060808701356134d081613f67565b915060a087013567ffffffffffffffff8111156134eb578182fd5b61334f89828a016130df565b600080600080600060a0868803121561350e578283fd5b853561351981613f42565b9450602086013561352981613f42565b93506040860135925060608601359150608086013567ffffffffffffffff811115613473578182fd5b600080600060608486031215613566578081fd5b833561357181613f42565b9250602084013567ffffffffffffffff8082111561358d578283fd5b61359987838801613071565b935060408601359150808211156135ae578283fd5b506135bb86828701613071565b9150509250925092565b600080600080608085870312156135da578182fd5b84356135e581613f42565b9350602085013567ffffffffffffffff80821115613601578384fd5b61360d88838901613071565b94506040870135915080821115613622578384fd5b61362e88838901613071565b93506060870135915080821115613643578283fd5b50613650878288016130df565b91505092959194509250565b6000806040838503121561366e578182fd5b823561367981613f42565b9150602083013561329481613f67565b6000806000806080858703121561369e578182fd5b84356136a981613f42565b935060208501359250604085013567ffffffffffffffff808211156136cc578384fd5b61362e888389016130df565b600080604083850312156136ea578182fd5b82356136f581613f42565b946020939093013593505050565b600080600060608486031215613717578081fd5b833561372281613f42565b95602085013595506040909401359392505050565b6000806000806080858703121561374c578182fd5b843561375781613f42565b93506020850135925060408501359150606085013567ffffffffffffffff811115613780578182fd5b613650878288016130df565b6000806040838503121561379e578182fd5b823567ffffffffffffffff808211156137b5578384fd5b818501915085601f8301126137c8578384fd5b81356137d661308f82613eb8565b80828252602080830192508086018a8283870289010111156137f6578889fd5b8896505b8487101561382157803561380d81613f42565b8452600196909601959281019281016137fa565b509096508701359350505080821115613838578283fd5b5061384585828601613071565b9150509250929050565b600060208284031215613860578081fd5b8151612e2c81613f67565b60006020828403121561387c578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612e2c578182fd5b600080604083850312156138bd578182fd5b825167ffffffffffffffff808211156138d4578384fd5b6138e08683870161312d565b935060208501519150808211156138f5578283fd5b506138458582860161312d565b600060208284031215613913578081fd5b815167ffffffffffffffff811115613929578182fd5b61163b8482850161317a565b60008060408385031215613947578182fd5b825167ffffffffffffffff8082111561395e578384fd5b6138e08683870161317a565b60006020828403121561397b578081fd5b5035919050565b60008060408385031215613994578182fd5b50508035926020909101359150565b815160009082906020808601845b838110156139cd578151855293820193908201906001016139b1565b50929695505050505050565b600084516139eb818460208901613f16565b91909101928352506020820152604001919050565b60008451613a12818460208901613f16565b82018481528351613a2a816020808501908801613f16565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b81811015613ae557835183529284019291840191600101613ac9565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b6000602082528251806020840152613b98816040850160208701613f16565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6020808252603f908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a2045524332305f5452414e534645525f4641494c454400606082015260800190565b6020808252603c908201527f455243313135354d6574615061636b656442616c616e6365235f7369676e617460408201527f75726556616c69646174696f6e3a20494e56414c49445f4e4f4e434500000000606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365235f7369676e6174908201527f75726556616c69646174696f6e3a20494e56414c49445f5349474e4154555245606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365236d657461536166908201527f655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54606082015260800190565b60208082526045908201527f455243313135354d6574615061636b656442616c616e6365236d65746153616660408201527f6542617463685472616e7366657246726f6d3a20494e56414c49445f5245434960608201527f5049454e54000000000000000000000000000000000000000000000000000000608082015260a00190565b6020808252603b908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a20554e535550504f525445445f544f4b454e0000000000606082015260800190565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715613eb057fe5b604052919050565b600067ffffffffffffffff821115613ecc57fe5b5060209081020190565b600067ffffffffffffffff821115613eea57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015613f31578181015183820152602001613f19565b83811115610ad75750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114613f6457600080fd5b50565b8015158114613f6457600080fdfe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e4154555245455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e4154555245455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f5245515549524544455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e4552455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a264697066735822122019be05877fb85bb8642e043044f9c6ceb709fe50b18d08c0aa3d18114927e9bd64736f6c63430007040033"; +var _bytecode = "0x60806040523480156200001157600080fd5b506040516200483b3803806200483b8339810160408190526200003491620001dc565b8151829082906200004d9060049060208501906200006e565b508051620000639060039060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b6145e780620002546000396000f3fe608060405234801561001057600080fd5b50600436106101765760003560e01c8063a3d4926e116100d8578063db90e83c1161008c578063f242432a11610066578063f242432a1461033e578063f5d4c82014610351578063fa4e12d71461036457610176565b8063db90e83c146102f7578063e985e9c514610318578063eaec5f811461032b57610176565b8063bd7a6c41116100bd578063bd7a6c41146102be578063ce0b514b146102d1578063d7a0ad90146102e457610176565b8063a3d4926e14610298578063a3f091f5146102ab57610176565b80632eb2c2d61161012f5780634e1273f4116101145780634e1273f41461025d5780636c0360eb1461027d578063a22cb4651461028557610176565b80632eb2c2d614610235578063437ecbe91461024a57610176565b806306fdde031161016057806306fdde03146101fa5780630e89341c1461020f5780632d0335ab1461022257610176565b8062fdd58e146101b157806301ffc9a7146101da575b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613f7b565b60405180910390fd5b6101c46101bf366004613833565b610377565b6040516101d19190613fd8565b60405180910390f35b6101ed6101e83660046139c6565b6103cc565b6040516101d19190613c4c565b6102026103df565b6040516101d19190613cd4565b61020261021d366004613ac5565b61048b565b6101c461023036600461335d565b6105de565b6102486102433660046134b7565b610606565b005b61024861025836600461385e565b610711565b61027061026b3660046138e7565b610721565b6040516101d19190613c08565b6102026109a0565b6102486102933660046137b7565b610a19565b6102486102a63660046133fa565b610ab2565b6102486102b9366004613892565b610c26565b6102486102cc3660046136ad565b610c38565b6102486102df3660046135da565b610c43565b6102486102f2366004613720565b610d22565b61030a610305366004613ac5565b610d2e565b6040516101d1929190613fe1565b6101ed6103263660046133c2565b610d3b565b6101c4610339366004613add565b610d76565b61024861034c366004613652565b610d89565b61024861035f366004613561565b610e8d565b6101ed6103723660046137e4565b610fbd565b600080600061038584610d2e565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506103c39082610d76565b95945050505050565b60006103d78261179e565b90505b919050565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104835780601f1061045857610100808354040283529160200191610483565b820191906000526020600020905b81548152906001019060200180831161046657829003601f168201915b505050505081565b60606003610498836117fb565b60405160200180838054600181600116156101000203166002900480156104f65780601f106104d45761010080835404028352918201916104f6565b820191906000526020600020905b8154815290600101906020018083116104e2575b5050825160208401908083835b6020831061054057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610503565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff8616148061062f575061062f8533610d3b565b610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c81526020018061431d603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166106f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061410a603d913960400191505060405180910390fd5b6106fc85858585611927565b61070a858585855a86611d34565b5050505050565b61071c838383611fa1565b505050565b81518151606091908114610780576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806140d16039913960400191505060405180910390fd5b6000806107a08560008151811061079357fe5b6020026020010151610d2e565b915091506000806000886000815181106107b657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561082a57600080fd5b50604051908082528060200260200182016040528015610854578160200160208202803683370190505b5090506108618385610d76565b8160008151811061086e57fe5b602090810291909101015260015b868110156109935761089389828151811061079357fe5b909650945082861415806108fc57508981815181106108ae57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106108db57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561096a576000808b838151811061091057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6109748486610d76565b82828151811061098057fe5b602090810291909101015260010161087c565b5098975050505050505050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104835780601f1061045857610100808354040283529160200191610483565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8516610aff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613e9b565b6060610b0961318e565b6060610bbc89857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c604051602001610b479190613afe565b604051602081830303815290604052805190602001208c604051602001610b6e9190613afe565b604051602081830303815290604052805190602001208c610b90576000610b93565b60015b604051602001610ba896959493929190613c57565b60405160208183030381529060405261200b565b9050610bca89898989611927565b8415610c0d5780806020019051810190610be49190613a90565b8094508193505050610bfe89898989866020015188611d34565b610c0889836121da565b610c1b565b610c1b898989895a86611d34565b505050505050505050565b610c3284848484612483565b50505050565b61071c8383836124f7565b73ffffffffffffffffffffffffffffffffffffffff8516610c90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613e3d565b6060610c9a61318e565b6060610cd289857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c610b90576000610b93565b9050610ce0898989896126a0565b8415610d145780806020019051810190610cfa9190613a90565b8094508193505050610bfe89898989866020015188612744565b610c1b898989895a86612744565b610c3284848484612935565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610db25750610db28533610d3b565b610e07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141eb6037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610e73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806144896038913960400191505060405180910390fd5b610e7f858585856126a0565b61070a858585855a86612744565b6060610ee986837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610ec3576000610ec6565b60015b89610ed2576000610ed5565b60015b604051602001610ba8959493929190613c98565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610f7d908890613c4c565b60405180910390a38215610fb557610f9361318e565b81806020019051810190610fa79190613a5d565b9050610fb387826121da565b505b505050505050565b600080825111611018576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806144466043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516611084576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806143cc6033913960400191505060405180910390fd5b600061108f83612bbf565b60f81c9050600581106110ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806141b1603a913960400191505060405180910390fd5b60008160ff1660058111156110fe57fe5b905060008080808085600581111561111257fe5b1415611169576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806142226036913960400191505060405180910390fd5b600185600581111561117757fe5b14156112ba5787516061146111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806142e66037913960400191505060405180910390fd5b6111e2886000612c7c565b92506111ef886020612c7c565b9150876040815181106111fe57fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611268573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d811691161497506117969650505050505050565b60028560058111156112c857fe5b1415611418578751606114611328576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806142e66037913960400191505060405180910390fd5b611333886000612c7c565b9250611340886020612c7c565b91508760408151811061134f57fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611268573d6000803e3d6000fd5b600385600581111561142657fe5b14156115de57604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b838110156114b457818101518382015260200161149c565b50505050905090810190601f1680156114e15780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156115145781810151838201526020016114fc565b50505050905090810190601f1680156115415780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561156057600080fd5b505afa158015611574573d6000803e3d6000fd5b505050506040513d602081101561158a57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b0000000000000000000000000000000000000000000000000000000014965061179695505050505050565b60048560058111156115ec57fe5b141561174557604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b8381101561167c578181015183820152602001611664565b50505050905090810190601f1680156116a95780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156116c757600080fd5b505afa1580156116db573d6000803e3d6000fd5b505050506040513d60208110156116f157600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014965061179695505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806141b1603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156117f2575060016103da565b6103d782612ce4565b60608161183c575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526103da565b818060005b821561185557600101600a83049250611841565b60608167ffffffffffffffff8111801561186e57600080fd5b506040519080825280601f01601f191660200182016040528015611899576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561191d57600a840660300160f81b828280600190039350815181106118e357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506118c0565b5095945050505050565b815181518114611982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806142586042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156119be5750600081115b15611b90576000806119d68560008151811061079357fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091611a2e9190849088908590611a1f57fe5b60200260200101516001612d41565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091611a849190859089908590611a7557fe5b60200260200101516000612d41565b90508360015b86811015611b3e57611aa189828151811061079357fe5b9096509450818614611b105773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b611b2184868a8481518110611a1f57fe5b9350611b3483868a8481518110611a7557fe5b9250600101611a8a565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550611c2d565b60005b81811015611c2b57828181518110611ba757fe5b6020026020010151611bcc87868481518110611bbf57fe5b6020026020010151610377565b1015611c23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806143966036913960400191505060405180910390fd5b600101611b93565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611cd9578181015183820152602001611cc1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611d18578181015183820152602001611d00565b5050505090500194505050505060405180910390a45050505050565b611d538573ffffffffffffffffffffffffffffffffffffffff16612f54565b15610fb55760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611e0b578181015183820152602001611df3565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611e4a578181015183820152602001611e32565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611e86578181015183820152602001611e6e565b50505050905090810190601f168015611eb35780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611ed857600080fd5b5087f1158015611eec573d6000803e3d6000fd5b50505050506040513d6020811015611f0357600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610fb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c81526020018061429a604c913960600191505060405180910390fd5b611fae8383836001612f8e565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b606080838060200190518101906120229190613a06565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600260205260408120549194509192509061205a836041612c7c565b905081811080159061206e57508160640181105b6120a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613d82565b60006120e0868387805190602001206040516020016120c593929190613b34565b60405160208183030381529060405280519060200120613015565b905060608683876040516020016120f993929190613b5b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf599161218491613fd8565b60405180910390a261219889838388610fbd565b6121ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613ddf565b50505050509392505050565b60006121e98260600151612bbf565b60f81c905060028110612228576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613f1e565b60008160ff16600281111561223957fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff161561226f578660400151612271565b335b9250600085600281111561228157fe5b141561238057866060015180602001905181019061229f9190613395565b909450915073ffffffffffffffffffffffffffffffffffffffff84163014156122f0576122ce888484846126a0565b6122eb8884845a8560405180602001604052806000815250612744565b61237b565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a90612348908b90879087908790600401613bc3565b600060405180830381600087803b15801561236257600080fd5b505af1158015612376573d6000803e3d6000fd5b505050505b612479565b86606001518060200190518101906123989190613379565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd906123f1908b9087908690600401613b92565b602060405180830381600087803b15801561240b57600080fd5b505af115801561241f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244391906139aa565b612479576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613d25565b5050505050505050565b6124908484846000612f8e565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610c3260008585855a86612744565b815181518114612552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180614359603d913960400191505060405180910390fd5b60005b81811015612598576125908585838151811061256d57fe5b602002602001015185848151811061258157fe5b60200260200101516001612f8e565b600101612555565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561264657818101518382015260200161262e565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561268557818101518382015260200161266d565b5050505090500194505050505060405180910390a450505050565b6126ad8483836001612f8e565b6126ba8383836000612f8e565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6127638573ffffffffffffffffffffffffffffffffffffffff16612f54565b15610fb55760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561281c578181015183820152602001612804565b50505050905090810190601f1680156128495780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561286c57600080fd5b5087f1158015612880573d6000803e3d6000fd5b50505050506040513d602081101561289757600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610fb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806143ff6047913960600191505060405180910390fd5b815183511461298f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180614542603e913960400191505060405180910390fd5b825115612aaf576000806129a98560008151811061079357fe5b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091528120548751939550919350916129f29190849088908590611a7557fe5b86519091508360015b82811015612a7657612a1289828151811061079357fe5b9096509450818614612a5b5773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b612a6c84868a8481518110611a7557fe5b93506001016129fb565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612b5c578181015183820152602001612b44565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612b9b578181015183820152602001612b83565b5050505090500194505050505060405180910390a4610c3260008585855a86611d34565b600080825111612c1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141476037913960400191505060405180910390fd5b81600183510381518110612c2a57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612cdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806144c1603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612d38575060016103da565b6103d782613144565b60006020840263ffffffff82846001811115612d5957fe5b1415612e275784821b8701925086831015612dbf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806145806032913960400191505060405180910390fd5b64010000000087831c8216860110612e22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806145806032913960400191505060405180910390fd5b612f4a565b6001846001811115612e3557fe5b1415612ef95784821b8703925086831115612e9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603381526020018061417e6033913960400191505060405180910390fd5b84818389901c161015612e22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603381526020018061417e6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806144fd6045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612f8757507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080612f9a85610d2e565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150612fda90828686612d41565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b602083106130e257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016130a5565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f8301126131dc578081fd5b81356131ef6131ea82614013565b613fef565b81815291506020808301908481018184028601820187101561321057600080fd5b60005b8481101561322f57813584529282019290820190600101613213565b505050505092915050565b600082601f83011261324a578081fd5b81356132586131ea82614031565b915080825283602082850101111561326f57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112613298578081fd5b81516132a66131ea82614031565b91508082528360208285010111156132bd57600080fd5b6132ce816020840160208601614071565b5092915050565b6000608082840312156132e6578081fd5b6040516080810167ffffffffffffffff828210818311171561330457fe5b816040528293508451835260208501516020840152604085015191506133298261409d565b816040840152606085015191508082111561334357600080fd5b5061335085828601613288565b6060830152505092915050565b60006020828403121561336e578081fd5b8135612f878161409d565b60006020828403121561338a578081fd5b8151612f878161409d565b600080604083850312156133a7578081fd5b82516133b28161409d565b6020939093015192949293505050565b600080604083850312156133d4578182fd5b82356133df8161409d565b915060208301356133ef8161409d565b809150509250929050565b60008060008060008060c08789031215613412578182fd5b863561341d8161409d565b9550602087013561342d8161409d565b9450604087013567ffffffffffffffff80821115613449578384fd5b6134558a838b016131cc565b9550606089013591508082111561346a578384fd5b6134768a838b016131cc565b945060808901359150613488826140c2565b90925060a0880135908082111561349d578283fd5b506134aa89828a0161323a565b9150509295509295509295565b600080600080600060a086880312156134ce578081fd5b85356134d98161409d565b945060208601356134e98161409d565b9350604086013567ffffffffffffffff80821115613505578283fd5b61351189838a016131cc565b94506060880135915080821115613526578283fd5b61353289838a016131cc565b93506080880135915080821115613547578283fd5b506135548882890161323a565b9150509295509295909350565b600080600080600060a08688031215613578578081fd5b85356135838161409d565b945060208601356135938161409d565b935060408601356135a3816140c2565b925060608601356135b3816140c2565b9150608086013567ffffffffffffffff8111156135ce578182fd5b6135548882890161323a565b60008060008060008060c087890312156135f2578384fd5b86356135fd8161409d565b9550602087013561360d8161409d565b94506040870135935060608701359250608087013561362b816140c2565b915060a087013567ffffffffffffffff811115613646578182fd5b6134aa89828a0161323a565b600080600080600060a08688031215613669578283fd5b85356136748161409d565b945060208601356136848161409d565b93506040860135925060608601359150608086013567ffffffffffffffff8111156135ce578182fd5b6000806000606084860312156136c1578081fd5b83356136cc8161409d565b9250602084013567ffffffffffffffff808211156136e8578283fd5b6136f4878388016131cc565b93506040860135915080821115613709578283fd5b50613716868287016131cc565b9150509250925092565b60008060008060808587031215613735578182fd5b84356137408161409d565b9350602085013567ffffffffffffffff8082111561375c578384fd5b613768888389016131cc565b9450604087013591508082111561377d578384fd5b613789888389016131cc565b9350606087013591508082111561379e578283fd5b506137ab8782880161323a565b91505092959194509250565b600080604083850312156137c9578182fd5b82356137d48161409d565b915060208301356133ef816140c2565b600080600080608085870312156137f9578182fd5b84356138048161409d565b935060208501359250604085013567ffffffffffffffff80821115613827578384fd5b6137898883890161323a565b60008060408385031215613845578182fd5b82356138508161409d565b946020939093013593505050565b600080600060608486031215613872578081fd5b833561387d8161409d565b95602085013595506040909401359392505050565b600080600080608085870312156138a7578182fd5b84356138b28161409d565b93506020850135925060408501359150606085013567ffffffffffffffff8111156138db578182fd5b6137ab8782880161323a565b600080604083850312156138f9578182fd5b823567ffffffffffffffff80821115613910578384fd5b818501915085601f830112613923578384fd5b81356139316131ea82614013565b80828252602080830192508086018a828387028901011115613951578889fd5b8896505b8487101561397c5780356139688161409d565b845260019690960195928101928101613955565b509096508701359350505080821115613993578283fd5b506139a0858286016131cc565b9150509250929050565b6000602082840312156139bb578081fd5b8151612f87816140c2565b6000602082840312156139d7578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612f87578182fd5b60008060408385031215613a18578182fd5b825167ffffffffffffffff80821115613a2f578384fd5b613a3b86838701613288565b93506020850151915080821115613a50578283fd5b506139a085828601613288565b600060208284031215613a6e578081fd5b815167ffffffffffffffff811115613a84578182fd5b611796848285016132d5565b60008060408385031215613aa2578182fd5b825167ffffffffffffffff80821115613ab9578384fd5b613a3b868387016132d5565b600060208284031215613ad6578081fd5b5035919050565b60008060408385031215613aef578182fd5b50508035926020909101359150565b815160009082906020808601845b83811015613b2857815185529382019390820190600101613b0c565b50929695505050505050565b60008451613b46818460208901614071565b91909101928352506020820152604001919050565b60008451613b6d818460208901614071565b82018481528351613b85816020808501908801614071565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b81811015613c4057835183529284019291840191600101613c24565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b6000602082528251806020840152613cf3816040850160208701614071565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6020808252603f908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a2045524332305f5452414e534645525f4641494c454400606082015260800190565b6020808252603c908201527f455243313135354d6574615061636b656442616c616e6365235f7369676e617460408201527f75726556616c69646174696f6e3a20494e56414c49445f4e4f4e434500000000606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365235f7369676e6174908201527f75726556616c69646174696f6e3a20494e56414c49445f5349474e4154555245606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365236d657461536166908201527f655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54606082015260800190565b60208082526045908201527f455243313135354d6574615061636b656442616c616e6365236d65746153616660408201527f6542617463685472616e7366657246726f6d3a20494e56414c49445f5245434960608201527f5049454e54000000000000000000000000000000000000000000000000000000608082015260a00190565b6020808252603b908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a20554e535550504f525445445f544f4b454e0000000000606082015260800190565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561400b57fe5b604052919050565b600067ffffffffffffffff82111561402757fe5b5060209081020190565b600067ffffffffffffffff82111561404557fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561408c578181015183820152602001614074565b83811115610c325750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146140bf57600080fd5b50565b80151581146140bf57600080fdfe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e4154555245455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e4154555245455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f5245515549524544455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e4552455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a2646970667358221220bf9bed61a3fbfa3bd78b8b925b5837c0234cb1c64c9bdc2d860315998538204a64736f6c63430007040033"; diff --git a/src/gen/adapter/factories/ERC1155MetadataMock__factory.js b/src/gen/adapter/factories/ERC1155MetadataMock__factory.js index e2f1ce6..c1a637f 100644 --- a/src/gen/adapter/factories/ERC1155MetadataMock__factory.js +++ b/src/gen/adapter/factories/ERC1155MetadataMock__factory.js @@ -25,11 +25,11 @@ var ERC1155MetadataMock__factory = /** @class */ (function (_super) { function ERC1155MetadataMock__factory(signer) { return _super.call(this, _abi, _bytecode, signer) || this; } - ERC1155MetadataMock__factory.prototype.deploy = function (overrides) { - return _super.prototype.deploy.call(this, overrides || {}); + ERC1155MetadataMock__factory.prototype.deploy = function (_name, _baseURI, overrides) { + return _super.prototype.deploy.call(this, _name, _baseURI, overrides || {}); }; - ERC1155MetadataMock__factory.prototype.getDeployTransaction = function (overrides) { - return _super.prototype.getDeployTransaction.call(this, overrides || {}); + ERC1155MetadataMock__factory.prototype.getDeployTransaction = function (_name, _baseURI, overrides) { + return _super.prototype.getDeployTransaction.call(this, _name, _baseURI, overrides || {}); }; ERC1155MetadataMock__factory.prototype.attach = function (address) { return _super.prototype.attach.call(this, address); @@ -44,6 +44,22 @@ var ERC1155MetadataMock__factory = /** @class */ (function (_super) { }(ethers_1.ContractFactory)); exports.ERC1155MetadataMock__factory = ERC1155MetadataMock__factory; var _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string" + }, + { + internalType: "string", + name: "_baseURI", + type: "string" + }, + ], + stateMutability: "nonpayable", + type: "constructor" + }, { anonymous: false, inputs: [ @@ -69,25 +85,6 @@ var _abi = [ name: "ApprovalForAll", type: "event" }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "signer", - type: "address" - }, - { - indexed: false, - internalType: "uint256", - name: "newNonce", - type: "uint256" - }, - ], - name: "NonceChange", - type: "event" - }, { anonymous: false, inputs: [ @@ -234,93 +231,13 @@ var _abi = [ type: "function" }, { - inputs: [ - { - internalType: "address", - name: "_from", - type: "address" - }, - { - internalType: "uint256[]", - name: "_ids", - type: "uint256[]" - }, - { - internalType: "uint256[]", - name: "_values", - type: "uint256[]" - }, - ], - name: "batchBurnMock", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - internalType: "address", - name: "_to", - type: "address" - }, - { - internalType: "uint256[]", - name: "_ids", - type: "uint256[]" - }, - { - internalType: "uint256[]", - name: "_values", - type: "uint256[]" - }, - { - internalType: "bytes", - name: "_data", - type: "bytes" - }, - ], - name: "batchMintMock", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - internalType: "address", - name: "_from", - type: "address" - }, - { - internalType: "uint256", - name: "_id", - type: "uint256" - }, - { - internalType: "uint256", - name: "_value", - type: "uint256" - }, - ], - name: "burnMock", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - internalType: "address", - name: "_signer", - type: "address" - }, - ], - name: "getNonce", + inputs: [], + name: "baseURI", outputs: [ { - internalType: "uint256", - name: "nonce", - type: "uint256" + internalType: "string", + name: "", + type: "string" }, ], stateMutability: "view", @@ -350,40 +267,6 @@ var _abi = [ stateMutability: "view", type: "function" }, - { - inputs: [ - { - internalType: "address", - name: "_signerAddress", - type: "address" - }, - { - internalType: "bytes32", - name: "_hash", - type: "bytes32" - }, - { - internalType: "bytes", - name: "_data", - type: "bytes" - }, - { - internalType: "bytes", - name: "_sig", - type: "bytes" - }, - ], - name: "isValidSignature", - outputs: [ - { - internalType: "bool", - name: "isValid", - type: "bool" - }, - ], - stateMutability: "view", - type: "function" - }, { inputs: [ { @@ -398,140 +281,16 @@ var _abi = [ type: "function" }, { - inputs: [ - { - internalType: "address", - name: "_from", - type: "address" - }, - { - internalType: "address", - name: "_to", - type: "address" - }, - { - internalType: "uint256[]", - name: "_ids", - type: "uint256[]" - }, - { - internalType: "uint256[]", - name: "_amounts", - type: "uint256[]" - }, - { - internalType: "bool", - name: "_isGasFee", - type: "bool" - }, - { - internalType: "bytes", - name: "_data", - type: "bytes" - }, - ], - name: "metaSafeBatchTransferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - internalType: "address", - name: "_from", - type: "address" - }, - { - internalType: "address", - name: "_to", - type: "address" - }, - { - internalType: "uint256", - name: "_id", - type: "uint256" - }, - { - internalType: "uint256", - name: "_amount", - type: "uint256" - }, - { - internalType: "bool", - name: "_isGasFee", - type: "bool" - }, - { - internalType: "bytes", - name: "_data", - type: "bytes" - }, - ], - name: "metaSafeTransferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - internalType: "address", - name: "_owner", - type: "address" - }, - { - internalType: "address", - name: "_operator", - type: "address" - }, - { - internalType: "bool", - name: "_approved", - type: "bool" - }, - { - internalType: "bool", - name: "_isGasFee", - type: "bool" - }, - { - internalType: "bytes", - name: "_data", - type: "bytes" - }, - ], - name: "metaSetApprovalForAll", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - internalType: "address", - name: "_to", - type: "address" - }, - { - internalType: "uint256", - name: "_id", - type: "uint256" - }, - { - internalType: "uint256", - name: "_value", - type: "uint256" - }, + inputs: [], + name: "name", + outputs: [ { - internalType: "bytes", - name: "_data", - type: "bytes" + internalType: "string", + name: "", + type: "string" }, ], - name: "mintMock", - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", type: "function" }, { @@ -670,4 +429,4 @@ var _abi = [ type: "function" }, ]; -var _bytecode = "0x608060405234801561001057600080fd5b50614417806100206000396000f3fe608060405234801561001057600080fd5b50600436106101505760003560e01c8063a22cb465116100cd578063d7a0ad9011610081578063f242432a11610066578063f242432a146102fa578063f5d4c8201461030d578063fa4e12d71461032057610150565b8063d7a0ad90146102d4578063e985e9c5146102e757610150565b8063a3f091f5116100b2578063a3f091f51461029b578063bd7a6c41146102ae578063ce0b514b146102c157610150565b8063a22cb46514610275578063a3d4926e1461028857610150565b80632d0335ab11610124578063437ecbe911610109578063437ecbe91461022f5780634e1273f4146102425780637e518ec81461026257610150565b80632d0335ab146102095780632eb2c2d61461021c57610150565b8062fdd58e1461018b57806301ffc9a7146101b45780630e89341c146101d45780631ea430d4146101f4575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613dab565b60405180910390fd5b61019e6101993660046137ba565b610333565b6040516101ab9190613f7c565b60405180910390f35b6101c76101c2366004613980565b610366565b6040516101ab9190613c18565b6101e76101e2366004613ab2565b610379565b6040516101ab9190613ca0565b610207610202366004613931565b6104cc565b005b61019e6102173660046132e4565b6104d8565b61020761022a36600461343e565b610500565b61020761023d3660046137e5565b61060b565b61025561025036600461386e565b61061b565b6040516101ab9190613bd4565b610207610270366004613a17565b610767565b61020761028336600461373e565b610770565b610207610296366004613381565b610809565b6102076102a9366004613819565b61097d565b6102076102bc366004613634565b61098f565b6102076102cf366004613561565b61099a565b6102076102e23660046136a7565b610a79565b6101c76102f5366004613349565b610a85565b6102076103083660046135d9565b610ac0565b61020761031b3660046134e8565b610bc4565b6101c761032e36600461376b565b610cf4565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b6000610371826114d5565b90505b919050565b6060600361038683611532565b60405160200180838054600181600116156101000203166002900480156103e45780601f106103c25761010080835404028352918201916103e4565b820191906000526020600020905b8154815290600101906020018083116103d0575b5050825160208401908083835b6020831061042e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016103f1565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b6104d58161165e565b50565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff8616148061052957506105298533610a85565b61057e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061428b602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166105ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806141cc6030913960400191505060405180910390fd5b6105f685858585611922565b610604858585855a86611c76565b5050505050565b610616838383611ee3565b505050565b60608151835114610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061422c602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561069157600080fd5b506040519080825280602002602001820160405280156106bb578160200160208202803683370190505b50905060005b845181101561075f576000808683815181106106d957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085838151811061072957fe5b602002602001015181526020019081526020016000205482828151811061074c57fe5b60209081029190910101526001016106c1565b509392505050565b6104d581611f8e565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8516610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613e65565b6060610860613074565b606061091389857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c60405160200161089e9190613aca565b604051602081830303815290604052805190602001208c6040516020016108c59190613aca565b604051602081830303815290604052805190602001208c6108e75760006108ea565b60015b6040516020016108ff96959493929190613c23565b604051602081830303815290604052611fa5565b905061092189898989611922565b8415610964578080602001905181019061093b9190613a7d565b809450819350505061095589898989866020015188611c76565b61095f8983612174565b610972565b610972898989895a86611c76565b505050505050505050565b6109898484848461241d565b50505050565b6106168383836124d2565b73ffffffffffffffffffffffffffffffffffffffff85166109e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613cf1565b60606109f1613074565b6060610a2989857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c6108e75760006108ea565b9050610a3789898989612712565b8415610a6b5780806020019051810190610a519190613a7d565b809450819350505061095589898989866020015188612815565b610972898989895a86612815565b61098984848484612a06565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610ae95750610ae98533610a85565b610b3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806140c6602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610baa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614064602b913960400191505060405180910390fd5b610bb685858585612712565b610604858585855a86612815565b6060610c2086837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610bfa576000610bfd565b60015b89610c09576000610c0c565b60015b6040516020016108ff959493929190613c64565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610cb4908890613c18565b60405180910390a38215610cec57610cca613074565b81806020019051810190610cde9190613a4a565b9050610cea8782612174565b505b505050505050565b600080825111610d4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806142ba6043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610dbb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806142586033913960400191505060405180910390fd5b6000610dc683612c50565b60f81c905060058110610e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614125603a913960400191505060405180910390fd5b60008160ff166005811115610e3557fe5b9050600080808080856005811115610e4957fe5b1415610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061415f6036913960400191505060405180910390fd5b6001856005811115610eae57fe5b1415610ff1578751606114610f0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141956037913960400191505060405180910390fd5b610f19886000612d0d565b9250610f26886020612d0d565b915087604081518110610f3557fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610f9f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d811691161497506114cd9650505050505050565b6002856005811115610fff57fe5b141561114f57875160611461105f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141956037913960400191505060405180910390fd5b61106a886000612d0d565b9250611077886020612d0d565b91508760408151811061108657fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610f9f573d6000803e3d6000fd5b600385600581111561115d57fe5b141561131557604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b838110156111eb5781810151838201526020016111d3565b50505050905090810190601f1680156112185780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561124b578181015183820152602001611233565b50505050905090810190601f1680156112785780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b000000000000000000000000000000000000000000000000000000001496506114cd95505050505050565b600485600581111561132357fe5b141561147c57604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b838110156113b357818101518382015260200161139b565b50505050905090810190601f1680156113e05780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156113fe57600080fd5b505afa158015611412573d6000803e3d6000fd5b505050506040513d602081101561142857600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e000000000000000000000000000000000000000000000000000000001496506114cd95505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614125603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561152957506001610374565b61037182612d75565b606081611573575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610374565b818060005b821561158c57600101600a83049250611578565b60608167ffffffffffffffff811180156115a557600080fd5b506040519080825280601f01601f1916602001820160405280156115d0576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561165457600a840660300160f81b8282806001900393508151811061161a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506115f7565b5095945050505050565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156117085780601f106116dd57610100808354040283529160200191611708565b820191906000526020600020905b8154815290600101906020018083116116eb57829003601f168201915b50505050509050606060005b8351811015610989578261173a85838151811061172d57fe5b6020026020010151611532565b6040516020018083805190602001908083835b6020831061178a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161174d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905285519190930192850191508083835b6020831061180e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016117d1565b6001836020036101000a038019825116818451168082178552505050505050905001807f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060050192505050604051602081830303815290604052915083818151811061187957fe5b60200260200101517f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b836040518080602001828103825283818151815260200191508051906020019080838360005b838110156118e05781810151838201526020016118c8565b50505050905090810190601f16801561190d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2600101611714565b805182511461197c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806140f06035913960400191505060405180910390fd5b815160005b81811015611b6e57611a1183828151811061199857fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106119ec57fe5b6020026020010151815260200190815260200160002054612dd290919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110611a5d57fe5b6020026020010151815260200190815260200160002081905550611aff838281518110611a8657fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110611ada57fe5b6020026020010151815260200190815260200160002054612e4990919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110611b4b57fe5b602090810291909101810151825281019190915260400160002055600101611981565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611c1b578181015183820152602001611c03565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c5a578181015183820152602001611c42565b5050505090500194505050505060405180910390a45050505050565b611c958573ffffffffffffffffffffffffffffffffffffffff16612ec4565b15610cec5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611d4d578181015183820152602001611d35565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611d8c578181015183820152602001611d74565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611dc8578181015183820152602001611db0565b50505050905090810190601f168015611df55780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611e1a57600080fd5b5087f1158015611e2e573d6000803e3d6000fd5b50505050506040513d6020811015611e4557600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610cea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f81526020018061432d603f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611f1c9082612dd2565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b8051611fa19060039060208401906130b2565b5050565b60608083806020019051810190611fbc91906139c0565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611ff4836041612d0d565b905081811080159061200857508160640181105b61203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613ec2565b600061207a8683878051906020012060405160200161205f93929190613b00565b60405160208183030381529060405280519060200120612efb565b9050606086838760405160200161209393929190613b27565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf599161211e91613f7c565b60405180910390a261213289838388610cf4565b612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613d4e565b50505050509392505050565b60006121838260600151612c50565b60f81c9050600281106121c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613f1f565b60008160ff1660028111156121d357fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff161561220957866040015161220b565b335b9250600085600281111561221b57fe5b141561231a578660600151806020019051810190612239919061331c565b909450915073ffffffffffffffffffffffffffffffffffffffff841630141561228a5761226888848484612712565b6122858884845a8560405180602001604052806000815250612815565b612315565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a906122e2908b90879087908790600401613b8f565b600060405180830381600087803b1580156122fc57600080fd5b505af1158015612310573d6000803e3d6000fd5b505050505b612413565b86606001518060200190518101906123329190613300565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd9061238b908b9087908690600401613b5e565b602060405180830381600087803b1580156123a557600080fd5b505af11580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd9190613964565b612413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613e08565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208684529091529020546124569083612e49565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461098960008585855a86612815565b81518151811461252d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806141fc6030913960400191505060405180910390fd5b60005b8181101561260a5761259b83828151811061254757fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106119ec57fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008684815181106125e757fe5b602090810291909101810151825281019190915260400160002055600101612530565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156126b85781810151838201526020016126a0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156126f75781810151838201526020016126df565b5050505090500194505050505060405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832085845290915290205461274b9082612dd2565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152602081815260408083208784528252808320949094559186168152808252828120858252909152205461279b9082612e49565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6128348573ffffffffffffffffffffffffffffffffffffffff16612ec4565b15610cec5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156128ed5781810151838201526020016128d5565b50505050905090810190601f16801561291a5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561293d57600080fd5b5087f1158015612951573d6000803e3d6000fd5b50505050506040513d602081101561296857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610cea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061436c603a913960400191505060405180910390fd5b8151835114612a60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806142fd6030913960400191505060405180910390fd5b825160005b81811015612b3f57612ad0848281518110612a7c57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888581518110611ada57fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878481518110612b1c57fe5b602090810291909101810151825281019190915260400160002055600101612a65565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612bed578181015183820152602001612bd5565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612c2c578181015183820152602001612c14565b5050505090500194505050505060405180910390a461060460008686865a87611c76565b600080825111612cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061408f6037913960400191505060405180910390fd5b81600183510381518110612cbb57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612d6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806143a6603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612dc957506001610374565b6103718261302a565b600082821115612e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015612ebd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590612ebd57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612fc857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612f8b565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826130e8576000855561312e565b82601f1061310157805160ff191683800117855561312e565b8280016001018555821561312e579182015b8281111561312e578251825591602001919060010190613113565b5061313a92915061313e565b5090565b5b8082111561313a576000815560010161313f565b600082601f830112613163578081fd5b813561317661317182613fa9565b613f85565b81815291506020808301908481018184028601820187101561319757600080fd5b60005b848110156131b65781358452928201929082019060010161319a565b505050505092915050565b600082601f8301126131d1578081fd5b81356131df61317182613fc7565b91508082528360208285010111156131f657600080fd5b8060208401602084013760009082016020015292915050565b600082601f83011261321f578081fd5b815161322d61317182613fc7565b915080825283602082850101111561324457600080fd5b613255816020840160208601614007565b5092915050565b60006080828403121561326d578081fd5b6040516080810167ffffffffffffffff828210818311171561328b57fe5b816040528293508451835260208501516020840152604085015191506132b082614033565b81604084015260608501519150808211156132ca57600080fd5b506132d78582860161320f565b6060830152505092915050565b6000602082840312156132f5578081fd5b8135612ebd81614033565b600060208284031215613311578081fd5b8151612ebd81614033565b6000806040838503121561332e578081fd5b825161333981614033565b6020939093015192949293505050565b6000806040838503121561335b578182fd5b823561336681614033565b9150602083013561337681614033565b809150509250929050565b60008060008060008060c08789031215613399578182fd5b86356133a481614033565b955060208701356133b481614033565b9450604087013567ffffffffffffffff808211156133d0578384fd5b6133dc8a838b01613153565b955060608901359150808211156133f1578384fd5b6133fd8a838b01613153565b94506080890135915061340f82614055565b90925060a08801359080821115613424578283fd5b5061343189828a016131c1565b9150509295509295509295565b600080600080600060a08688031215613455578081fd5b853561346081614033565b9450602086013561347081614033565b9350604086013567ffffffffffffffff8082111561348c578283fd5b61349889838a01613153565b945060608801359150808211156134ad578283fd5b6134b989838a01613153565b935060808801359150808211156134ce578283fd5b506134db888289016131c1565b9150509295509295909350565b600080600080600060a086880312156134ff578283fd5b853561350a81614033565b9450602086013561351a81614033565b9350604086013561352a81614055565b9250606086013561353a81614055565b9150608086013567ffffffffffffffff811115613555578182fd5b6134db888289016131c1565b60008060008060008060c08789031215613579578384fd5b863561358481614033565b9550602087013561359481614033565b9450604087013593506060870135925060808701356135b281614055565b915060a087013567ffffffffffffffff8111156135cd578182fd5b61343189828a016131c1565b600080600080600060a086880312156135f0578283fd5b85356135fb81614033565b9450602086013561360b81614033565b93506040860135925060608601359150608086013567ffffffffffffffff811115613555578182fd5b600080600060608486031215613648578081fd5b833561365381614033565b9250602084013567ffffffffffffffff8082111561366f578283fd5b61367b87838801613153565b93506040860135915080821115613690578283fd5b5061369d86828701613153565b9150509250925092565b600080600080608085870312156136bc578182fd5b84356136c781614033565b9350602085013567ffffffffffffffff808211156136e3578384fd5b6136ef88838901613153565b94506040870135915080821115613704578384fd5b61371088838901613153565b93506060870135915080821115613725578283fd5b50613732878288016131c1565b91505092959194509250565b60008060408385031215613750578182fd5b823561375b81614033565b9150602083013561337681614055565b60008060008060808587031215613780578182fd5b843561378b81614033565b935060208501359250604085013567ffffffffffffffff808211156137ae578384fd5b613710888389016131c1565b600080604083850312156137cc578182fd5b82356137d781614033565b946020939093013593505050565b6000806000606084860312156137f9578081fd5b833561380481614033565b95602085013595506040909401359392505050565b6000806000806080858703121561382e578182fd5b843561383981614033565b93506020850135925060408501359150606085013567ffffffffffffffff811115613862578182fd5b613732878288016131c1565b60008060408385031215613880578182fd5b823567ffffffffffffffff80821115613897578384fd5b818501915085601f8301126138aa578384fd5b81356138b861317182613fa9565b80828252602080830192508086018a8283870289010111156138d8578889fd5b8896505b848710156139035780356138ef81614033565b8452600196909601959281019281016138dc565b50909650870135935050508082111561391a578283fd5b5061392785828601613153565b9150509250929050565b600060208284031215613942578081fd5b813567ffffffffffffffff811115613958578182fd5b6114cd84828501613153565b600060208284031215613975578081fd5b8151612ebd81614055565b600060208284031215613991578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612ebd578182fd5b600080604083850312156139d2578182fd5b825167ffffffffffffffff808211156139e9578384fd5b6139f58683870161320f565b93506020850151915080821115613a0a578283fd5b506139278582860161320f565b600060208284031215613a28578081fd5b813567ffffffffffffffff811115613a3e578182fd5b6114cd848285016131c1565b600060208284031215613a5b578081fd5b815167ffffffffffffffff811115613a71578182fd5b6114cd8482850161325c565b60008060408385031215613a8f578182fd5b825167ffffffffffffffff80821115613aa6578384fd5b6139f58683870161325c565b600060208284031215613ac3578081fd5b5035919050565b815160009082906020808601845b83811015613af457815185529382019390820190600101613ad8565b50929695505050505050565b60008451613b12818460208901614007565b91909101928352506020820152604001919050565b60008451613b39818460208901614007565b82018481528351613b51816020808501908801614007565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b81811015613c0c57835183529284019291840191600101613bf0565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b6000602082528251806020840152613cbf816040850160208701614007565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526033908201527f455243313135354d657461236d657461536166655472616e7366657246726f6d60408201527f3a20494e56414c49445f524543495049454e5400000000000000000000000000606082015260800190565b60208082526033908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f5349474e415455524500000000000000000000000000606082015260800190565b60208082526023908201527f455243313135354d657461646174614d6f636b3a20494e56414c49445f4d455460408201527f484f440000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f455243313135354d657461235f7472616e736665724761734665653a2045524360408201527f32305f5452414e534645525f4641494c45440000000000000000000000000000606082015260800190565b60208082526038908201527f455243313135354d657461236d6574615361666542617463685472616e73666560408201527f7246726f6d3a20494e56414c49445f524543495049454e540000000000000000606082015260800190565b6020808252602f908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f4e4f4e43450000000000000000000000000000000000606082015260800190565b6020808252602e908201527f455243313135354d657461235f7472616e736665724761734665653a20554e5360408201527f5550504f525445445f544f4b454e000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715613fa157fe5b604052919050565b600067ffffffffffffffff821115613fbd57fe5b5060209081020190565b600067ffffffffffffffff821115613fdb57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561402257818101518382015260200161400a565b838111156109895750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146104d557600080fd5b80151581146104d557600080fdfe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f52455155495245444552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f524551554952454445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e455245524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147454c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544a26469706673582212205b6ba23a17207368593df6be7d3051176898a23f96953308375c5482290d6e9064736f6c63430007040033"; +var _bytecode = "0x60806040523480156200001157600080fd5b506040516200226d3803806200226d8339810160408190526200003491620001dc565b8151829082906200004d9060039060208501906200006e565b508051620000639060029060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b61201980620002546000396000f3fe608060405234801561001057600080fd5b50600436106100d35760003560e01c80634e1273f411610081578063a22cb4651161005b578063a22cb465146101e2578063e985e9c5146101f5578063f242432a14610208576100d3565b80634e1273f4146101a75780636c0360eb146101c75780637e518ec8146101cf576100d3565b80630e89341c116100b25780630e89341c1461016c5780631ea430d41461017f5780632eb2c2d614610194576100d3565b8062fdd58e1461010e57806301ffc9a71461013757806306fdde0314610157575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010590611dad565b60405180910390fd5b61012161011c366004611b3d565b61021b565b60405161012e9190611e0a565b60405180910390f35b61014a610145366004611c62565b61024e565b60405161012e9190611d31565b61015f610261565b60405161012e9190611d3c565b61015f61017a366004611cd5565b61030d565b61019261018d366004611c27565b610460565b005b6101926101a23660046119fa565b61046c565b6101ba6101b5366004611b66565b610577565b60405161012e9190611ced565b61015f6106c3565b6101926101dd366004611ca2565b610739565b6101926101f0366004611b03565b610742565b61014a6102033660046119c8565b6107db565b610192610216366004611aa0565b610816565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b60006102598261091a565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b505050505081565b6060600261031a83610977565b60405160200180838054600181600116156101000203166002900480156103785780601f10610356576101008083540402835291820191610378565b820191906000526020600020905b815481529060010190602001808311610364575b5050825160208401908083835b602083106103c257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610385565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b61046981610aa3565b50565b3373ffffffffffffffffffffffffffffffffffffffff86161480610495575061049585336107db565b6104ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611f3c602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610556576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180611ee06030913960400191505060405180910390fd5b61056285858585610d6a565b610570858585855a866110be565b5050505050565b606081518351146105d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611f10602c913960400191505060405180910390fd5b6060835167ffffffffffffffff811180156105ed57600080fd5b50604051908082528060200260200182016040528015610617578160200160208202803683370190505b50905060005b84518110156106bb5760008086838151811061063557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085838151811061068557fe5b60200260200101518152602001908152602001600020548282815181106106a857fe5b602090810291909101015260010161061d565b509392505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f810184900484028201840190925281815292918301828280156103055780601f106102da57610100808354040283529160200191610305565b61046981611335565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061083f575061083f85336107db565b610894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611e81602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610900576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611e56602b913960400191505060405180910390fd5b61090c8585858561134c565b610570858585855a8661144f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561096e5750600161025c565b61025982611640565b6060816109b8575060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015261025c565b818060005b82156109d157600101600a830492506109bd565b60608167ffffffffffffffff811180156109ea57600080fd5b506040519080825280601f01601f191660200182016040528015610a15576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610a9957600a840660300160f81b82828060019003935081518110610a5f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610a3c565b5095945050505050565b60028054604080516020601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b820191906000526020600020905b815481529060010190602001808311610b2d57829003601f168201915b50505050509050606060005b8351811015610d645782610b7c858381518110610b6f57fe5b6020026020010151610977565b6040516020018083805190602001908083835b60208310610bcc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b8f565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905285519190930192850191508083835b60208310610c5057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c13565b6001836020036101000a038019825116818451168082178552505050505050905001807f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600501925050506040516020818303038152906040529150838181518110610cbb57fe5b60200260200101517f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b836040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d22578181015183820152602001610d0a565b50505050905090810190601f168015610d4f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2600101610b56565b50505050565b8051825114610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180611eab6035913960400191505060405180910390fd5b815160005b81811015610fb657610e59838281518110610de057fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610e3457fe5b602002602001015181526020019081526020016000205461169d90919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610ea557fe5b6020026020010151815260200190815260200160002081905550610f47838281518110610ece57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610f2257fe5b602002602001015181526020019081526020016000205461171490919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610f9357fe5b602090810291909101810151825281019190915260400160002055600101610dc9565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561106357818101518382015260200161104b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110a257818101518382015260200161108a565b5050505090500194505050505060405180910390a45050505050565b6110dd8573ffffffffffffffffffffffffffffffffffffffff1661178f565b1561132d5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561119557818101518382015260200161117d565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156111d45781810151838201526020016111bc565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156112105781810151838201526020016111f8565b50505050905090810190601f16801561123d5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561126257600080fd5b5087f1158015611276573d6000803e3d6000fd5b50505050506040513d602081101561128d57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c81000000000000000000000000000000000000000000000000000000001461132b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180611f6b603f913960400191505060405180910390fd5b505b505050505050565b8051611348906002906020840190611810565b5050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320858452909152902054611385908261169d565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546113d59082611714565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b61146e8573ffffffffffffffffffffffffffffffffffffffff1661178f565b1561132d5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561152757818101518382015260200161150f565b50505050905090810190601f1680156115545780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561157757600080fd5b5087f115801561158b573d6000803e3d6000fd5b50505050506040513d60208110156115a257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e61000000000000000000000000000000000000000000000000000000001461132b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180611faa603a913960400191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156116945750600161025c565b610259826117c6565b60008282111561170e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561178857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f801580159061178857507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611846576000855561188c565b82601f1061185f57805160ff191683800117855561188c565b8280016001018555821561188c579182015b8281111561188c578251825591602001919060010190611871565b5061189892915061189c565b5090565b5b80821115611898576000815560010161189d565b803573ffffffffffffffffffffffffffffffffffffffff8116811461025c57600080fd5b600082601f8301126118e5578081fd5b81356118f86118f382611e37565b611e13565b81815291506020808301908481018184028601820187101561191957600080fd5b60005b848110156119385781358452928201929082019060010161191c565b505050505092915050565b600082601f830112611953578081fd5b813567ffffffffffffffff81111561196757fe5b61199860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611e13565b91508082528360208285010111156119af57600080fd5b8060208401602084013760009082016020015292915050565b600080604083850312156119da578182fd5b6119e3836118b1565b91506119f1602084016118b1565b90509250929050565b600080600080600060a08688031215611a11578081fd5b611a1a866118b1565b9450611a28602087016118b1565b9350604086013567ffffffffffffffff80821115611a44578283fd5b611a5089838a016118d5565b94506060880135915080821115611a65578283fd5b611a7189838a016118d5565b93506080880135915080821115611a86578283fd5b50611a9388828901611943565b9150509295509295909350565b600080600080600060a08688031215611ab7578081fd5b611ac0866118b1565b9450611ace602087016118b1565b93506040860135925060608601359150608086013567ffffffffffffffff811115611af7578182fd5b611a9388828901611943565b60008060408385031215611b15578182fd5b611b1e836118b1565b915060208301358015158114611b32578182fd5b809150509250929050565b60008060408385031215611b4f578182fd5b611b58836118b1565b946020939093013593505050565b60008060408385031215611b78578182fd5b823567ffffffffffffffff80821115611b8f578384fd5b818501915085601f830112611ba2578384fd5b8135611bb06118f382611e37565b80828252602080830192508086018a828387028901011115611bd0578889fd5b8896505b84871015611bf957611be5816118b1565b845260019690960195928101928101611bd4565b509096508701359350505080821115611c10578283fd5b50611c1d858286016118d5565b9150509250929050565b600060208284031215611c38578081fd5b813567ffffffffffffffff811115611c4e578182fd5b611c5a848285016118d5565b949350505050565b600060208284031215611c73578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611788578182fd5b600060208284031215611cb3578081fd5b813567ffffffffffffffff811115611cc9578182fd5b611c5a84828501611943565b600060208284031215611ce6578081fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015611d2557835183529284019291840191600101611d09565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015611d6857858101830151858201604001528201611d4c565b81811115611d795783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526023908201527f455243313135354d657461646174614d6f636b3a20494e56414c49445f4d455460408201527f484f440000000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715611e2f57fe5b604052919050565b600067ffffffffffffffff821115611e4b57fe5b506020908102019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a26469706673582212206acf14916287dcf68036e71958bb6100555ba2097d10d0fbb7720841796a077d64736f6c63430007040033"; diff --git a/src/gen/adapter/factories/ERC1155Metadata__factory.js b/src/gen/adapter/factories/ERC1155Metadata__factory.js index 511cc82..cced4ce 100644 --- a/src/gen/adapter/factories/ERC1155Metadata__factory.js +++ b/src/gen/adapter/factories/ERC1155Metadata__factory.js @@ -25,11 +25,11 @@ var ERC1155Metadata__factory = /** @class */ (function (_super) { function ERC1155Metadata__factory(signer) { return _super.call(this, _abi, _bytecode, signer) || this; } - ERC1155Metadata__factory.prototype.deploy = function (overrides) { - return _super.prototype.deploy.call(this, overrides || {}); + ERC1155Metadata__factory.prototype.deploy = function (_name, _baseURI, overrides) { + return _super.prototype.deploy.call(this, _name, _baseURI, overrides || {}); }; - ERC1155Metadata__factory.prototype.getDeployTransaction = function (overrides) { - return _super.prototype.getDeployTransaction.call(this, overrides || {}); + ERC1155Metadata__factory.prototype.getDeployTransaction = function (_name, _baseURI, overrides) { + return _super.prototype.getDeployTransaction.call(this, _name, _baseURI, overrides || {}); }; ERC1155Metadata__factory.prototype.attach = function (address) { return _super.prototype.attach.call(this, address); @@ -44,6 +44,22 @@ var ERC1155Metadata__factory = /** @class */ (function (_super) { }(ethers_1.ContractFactory)); exports.ERC1155Metadata__factory = ERC1155Metadata__factory; var _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string" + }, + { + internalType: "string", + name: "_baseURI", + type: "string" + }, + ], + stateMutability: "nonpayable", + type: "constructor" + }, { anonymous: false, inputs: [ @@ -63,6 +79,32 @@ var _abi = [ name: "URI", type: "event" }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + }, + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + }, + ], + stateMutability: "view", + type: "function" + }, { inputs: [ { @@ -102,4 +144,4 @@ var _abi = [ type: "function" }, ]; -var _bytecode = "0x608060405234801561001057600080fd5b50610484806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806301ffc9a71461003b5780630e89341c1461008e575b600080fd5b61007a6004803603602081101561005157600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610120565b604080519115158252519081900360200190f35b6100ab600480360360208110156100a457600080fd5b5035610185565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e55781810151838201526020016100cd565b50505050905090810190601f1680156101125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561017457506001610180565b61017d826102d8565b90505b919050565b6060600061019283610322565b60405160200180838054600181600116156101000203166002900480156101f05780601f106101ce5761010080835404028352918201916101f0565b820191906000526020600020905b8154815290600101906020018083116101dc575b5050825160208401908083835b6020831061023a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016101fd565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b606081610363575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610180565b818060005b821561037c57600101600a83049250610368565b60608167ffffffffffffffff8111801561039557600080fd5b506040519080825280601f01601f1916602001820160405280156103c0576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561044457600a840660300160f81b8282806001900393508151811061040a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506103e7565b509594505050505056fea2646970667358221220004fd0d2d88e7458597be2dc675d4ebda19e8239cb1f21c313829ddfa6c8131864736f6c63430007040033"; +var _bytecode = "0x608060405234801561001057600080fd5b5060405161083c38038061083c8339818101604052604081101561003357600080fd5b810190808051604051939291908464010000000082111561005357600080fd5b90830190602082018581111561006857600080fd5b825164010000000081118282018810171561008257600080fd5b82525081516020918201929091019080838360005b838110156100af578181015183820152602001610097565b50505050905090810190601f1680156100dc5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156100ff57600080fd5b90830190602082018581111561011457600080fd5b825164010000000081118282018810171561012e57600080fd5b82525081516020918201929091019080838360005b8381101561015b578181015183820152602001610143565b50505050905090810190601f1680156101885780820380516001836020036101000a031916815260200191505b50604052505082516101a2915060019060208501906101be565b5080516101b69060009060208401906101be565b50505061025f565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826101f4576000855561023a565b82601f1061020d57805160ff191683800117855561023a565b8280016001018555821561023a579182015b8281111561023a57825182559160200191906001019061021f565b5061024692915061024a565b5090565b5b80821115610246576000815560010161024b565b6105ce8061026e6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806306fdde03146100a45780630e89341c146101215780636c0360eb1461013e575b600080fd5b6100906004803603602081101561006757600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610146565b604080519115158252519081900360200190f35b6100ac6101ab565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e65781810151838201526020016100ce565b50505050905090810190601f1680156101135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100ac6004803603602081101561013757600080fd5b5035610256565b6100ac6103a9565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561019a575060016101a6565b6101a382610422565b90505b919050565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561024e5780601f106102235761010080835404028352916020019161024e565b820191906000526020600020905b81548152906001019060200180831161023157829003601f168201915b505050505081565b606060006102638361046c565b60405160200180838054600181600116156101000203166002900480156102c15780601f1061029f5761010080835404028352918201916102c1565b820191906000526020600020905b8154815290600101906020018083116102ad575b5050825160208401908083835b6020831061030b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102ce565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561024e5780601f106102235761010080835404028352916020019161024e565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b6060816104ad575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526101a6565b818060005b82156104c657600101600a830492506104b2565b60608167ffffffffffffffff811180156104df57600080fd5b506040519080825280601f01601f19166020018201604052801561050a576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561058e57600a840660300160f81b8282806001900393508151811061055457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610531565b509594505050505056fea26469706673582212205abd37bd16639ca9fbf0ea9aa3edb56d4a300602416ce7dfcab6972d32fec15664736f6c63430007040033"; diff --git a/src/gen/adapter/factories/ERC1155MintBurnMock__factory.js b/src/gen/adapter/factories/ERC1155MintBurnMock__factory.js index d2afa44..338e261 100644 --- a/src/gen/adapter/factories/ERC1155MintBurnMock__factory.js +++ b/src/gen/adapter/factories/ERC1155MintBurnMock__factory.js @@ -25,11 +25,11 @@ var ERC1155MintBurnMock__factory = /** @class */ (function (_super) { function ERC1155MintBurnMock__factory(signer) { return _super.call(this, _abi, _bytecode, signer) || this; } - ERC1155MintBurnMock__factory.prototype.deploy = function (overrides) { - return _super.prototype.deploy.call(this, overrides || {}); + ERC1155MintBurnMock__factory.prototype.deploy = function (_name, _baseURI, overrides) { + return _super.prototype.deploy.call(this, _name, _baseURI, overrides || {}); }; - ERC1155MintBurnMock__factory.prototype.getDeployTransaction = function (overrides) { - return _super.prototype.getDeployTransaction.call(this, overrides || {}); + ERC1155MintBurnMock__factory.prototype.getDeployTransaction = function (_name, _baseURI, overrides) { + return _super.prototype.getDeployTransaction.call(this, _name, _baseURI, overrides || {}); }; ERC1155MintBurnMock__factory.prototype.attach = function (address) { return _super.prototype.attach.call(this, address); @@ -44,6 +44,22 @@ var ERC1155MintBurnMock__factory = /** @class */ (function (_super) { }(ethers_1.ContractFactory)); exports.ERC1155MintBurnMock__factory = ERC1155MintBurnMock__factory; var _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string" + }, + { + internalType: "string", + name: "_baseURI", + type: "string" + }, + ], + stateMutability: "nonpayable", + type: "constructor" + }, { anonymous: false, inputs: [ @@ -214,6 +230,19 @@ var _abi = [ stateMutability: "view", type: "function" }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + }, + ], + stateMutability: "view", + type: "function" + }, { inputs: [ { @@ -340,6 +369,19 @@ var _abi = [ stateMutability: "nonpayable", type: "function" }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + }, + ], + stateMutability: "view", + type: "function" + }, { inputs: [ { @@ -463,4 +505,4 @@ var _abi = [ type: "function" }, ]; -var _bytecode = "0x608060405234801561001057600080fd5b50612319806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d35760003560e01c8063a22cb46511610081578063d7a0ad901161005b578063d7a0ad90146101f8578063e985e9c51461020b578063f242432a1461021e576100d3565b8063a22cb465146101bf578063a3f091f5146101d2578063bd7a6c41146101e5576100d3565b80632eb2c2d6116100b25780632eb2c2d614610177578063437ecbe91461018c5780634e1273f41461019f576100d3565b8062fdd58e1461010e57806301ffc9a7146101375780630e89341c14610157575b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101059061204d565b60405180910390fd5b61012161011c366004611dc6565b610231565b60405161012e91906120aa565b60405180910390f35b61014a610145366004611f35565b610264565b60405161012e9190611fd1565b61016a610165366004611f75565b610277565b60405161012e9190611fdc565b61018a610185366004611b7d565b6103ca565b005b61018a61019a366004611def565b6104d5565b6101b26101ad366004611e74565b6104e5565b60405161012e9190611f8d565b61018a6101cd366004611d8c565b610631565b61018a6101e0366004611e21565b6106ca565b61018a6101f3366004611c86565b6106dc565b61018a610206366004611cf7565b6106e7565b61014a610219366004611b4b565b6106f3565b61018a61022c366004611c23565b61072e565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b600061026f82610832565b90505b919050565b606060026102848361088f565b60405160200180838054600181600116156101000203166002900480156102e25780601f106102c05761010080835404028352918201916102e2565b820191906000526020600020905b8154815290600101906020018083116102ce575b5050825160208401908083835b6020831061032c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102ef565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff861614806103f357506103f385336106f3565b610448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061220c602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166104b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806121806030913960400191505060405180910390fd5b6104c0858585856109bb565b6104ce858585855a86610d0f565b5050505050565b6104e0838383610f86565b505050565b60608151835114610541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121e0602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561055b57600080fd5b50604051908082528060200260200182016040528015610585578160200160208202803683370190505b50905060005b8451811015610629576000808683815181106105a357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106105f357fe5b602002602001015181526020019081526020016000205482828151811061061657fe5b602090810291909101015260010161058b565b509392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6106d684848484611031565b50505050565b6104e08383836110e6565b6106d684848484611326565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610757575061075785336106f3565b6107ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612121602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806120f6602b913960400191505060405180910390fd5b61082485858585611570565b6104ce858585855a86611673565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561088657506001610272565b61026f82611864565b6060816108d0575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610272565b818060005b82156108e957600101600a830492506108d5565b60608167ffffffffffffffff8111801561090257600080fd5b506040519080825280601f01601f19166020018201604052801561092d576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b83156109b157600a840660300160f81b8282806001900393508151811061097757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610954565b5095945050505050565b8051825114610a15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018061214b6035913960400191505060405180910390fd5b815160005b81811015610c0757610aaa838281518110610a3157fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610a8557fe5b60200260200101518152602001908152602001600020546118c190919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610af657fe5b6020026020010151815260200190815260200160002081905550610b98838281518110610b1f57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610b7357fe5b602002602001015181526020019081526020016000205461193890919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610be457fe5b602090810291909101810151825281019190915260400160002055600101610a1a565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610cb4578181015183820152602001610c9c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610cf3578181015183820152602001610cdb565b5050505090500194505050505060405180910390a45050505050565b610d2e8573ffffffffffffffffffffffffffffffffffffffff166119b3565b15610f7e5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610de6578181015183820152602001610dce565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015610e25578181015183820152602001610e0d565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015610e61578181015183820152602001610e49565b50505050905090810190601f168015610e8e5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015610eb357600080fd5b5087f1158015610ec7573d6000803e3d6000fd5b50505050506040513d6020811015610ede57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610f7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f81526020018061226b603f913960400191505060405180910390fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054610fbf90826118c1565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915290205461106a9083611938565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a46106d660008585855a86611673565b815181518114611141576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806121b06030913960400191505060405180910390fd5b60005b8181101561121e576111af83828151811061115b57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610a8557fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008684815181106111fb57fe5b602090810291909101810151825281019190915260400160002055600101611144565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156112cc5781810151838201526020016112b4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561130b5781810151838201526020016112f3565b5050505090500194505050505060405180910390a450505050565b8151835114611380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061223b6030913960400191505060405180910390fd5b825160005b8181101561145f576113f084828151811061139c57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888581518110610b7357fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087848151811061143c57fe5b602090810291909101810151825281019190915260400160002055600101611385565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561150d5781810151838201526020016114f5565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561154c578181015183820152602001611534565b5050505090500194505050505060405180910390a46104ce60008686865a87610d0f565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208584529091529020546115a990826118c1565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546115f99082611938565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6116928573ffffffffffffffffffffffffffffffffffffffff166119b3565b15610f7e5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561174b578181015183820152602001611733565b50505050905090810190601f1680156117785780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561179b57600080fd5b5087f11580156117af573d6000803e3d6000fd5b50505050506040513d60208110156117c657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610f7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806122aa603a913960400191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156118b857506001610272565b61026f826119ea565b60008282111561193257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b6000828201838110156119ac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f80158015906119ac57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461027257600080fd5b600082601f830112611a68578081fd5b8135611a7b611a76826120d7565b6120b3565b818152915060208083019084810181840286018201871015611a9c57600080fd5b60005b84811015611abb57813584529282019290820190600101611a9f565b505050505092915050565b600082601f830112611ad6578081fd5b813567ffffffffffffffff811115611aea57fe5b611b1b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016120b3565b9150808252836020828501011115611b3257600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611b5d578182fd5b611b6683611a34565b9150611b7460208401611a34565b90509250929050565b600080600080600060a08688031215611b94578081fd5b611b9d86611a34565b9450611bab60208701611a34565b9350604086013567ffffffffffffffff80821115611bc7578283fd5b611bd389838a01611a58565b94506060880135915080821115611be8578283fd5b611bf489838a01611a58565b93506080880135915080821115611c09578283fd5b50611c1688828901611ac6565b9150509295509295909350565b600080600080600060a08688031215611c3a578081fd5b611c4386611a34565b9450611c5160208701611a34565b93506040860135925060608601359150608086013567ffffffffffffffff811115611c7a578182fd5b611c1688828901611ac6565b600080600060608486031215611c9a578283fd5b611ca384611a34565b9250602084013567ffffffffffffffff80821115611cbf578384fd5b611ccb87838801611a58565b93506040860135915080821115611ce0578283fd5b50611ced86828701611a58565b9150509250925092565b60008060008060808587031215611d0c578384fd5b611d1585611a34565b9350602085013567ffffffffffffffff80821115611d31578485fd5b611d3d88838901611a58565b94506040870135915080821115611d52578384fd5b611d5e88838901611a58565b93506060870135915080821115611d73578283fd5b50611d8087828801611ac6565b91505092959194509250565b60008060408385031215611d9e578182fd5b611da783611a34565b915060208301358015158114611dbb578182fd5b809150509250929050565b60008060408385031215611dd8578182fd5b611de183611a34565b946020939093013593505050565b600080600060608486031215611e03578283fd5b611e0c84611a34565b95602085013595506040909401359392505050565b60008060008060808587031215611e36578384fd5b611e3f85611a34565b93506020850135925060408501359150606085013567ffffffffffffffff811115611e68578182fd5b611d8087828801611ac6565b60008060408385031215611e86578081fd5b823567ffffffffffffffff80821115611e9d578283fd5b818501915085601f830112611eb0578283fd5b8135611ebe611a76826120d7565b80828252602080830192508086018a828387028901011115611ede578788fd5b8796505b84871015611f0757611ef381611a34565b845260019690960195928101928101611ee2565b509096508701359350505080821115611f1e578283fd5b50611f2b85828601611a58565b9150509250929050565b600060208284031215611f46578081fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146119ac578182fd5b600060208284031215611f86578081fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015611fc557835183529284019291840191600101611fa9565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b8181101561200857858101830151858201604001528201611fec565b818111156120195783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff811182821017156120cf57fe5b604052919050565b600067ffffffffffffffff8211156120eb57fe5b506020908102019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a264697066735822122005eb5bcdc323736890462d08c987b3a961a21cf7a6fa3483643ef5186a261fc864736f6c63430007040033"; +var _bytecode = "0x60806040523480156200001157600080fd5b50604051620026b5380380620026b58339810160408190526200003491620001dc565b8151829082906200004d9060039060208501906200006e565b508051620000639060029060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b61246180620002546000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c80636c0360eb1161008c578063bd7a6c4111610066578063bd7a6c411461020b578063d7a0ad901461021e578063e985e9c514610231578063f242432a14610244576100e9565b80636c0360eb146101dd578063a22cb465146101e5578063a3f091f5146101f8576100e9565b80630e89341c116100c85780630e89341c146101825780632eb2c2d614610195578063437ecbe9146101aa5780634e1273f4146101bd576100e9565b8062fdd58e1461012457806301ffc9a71461014d57806306fdde031461016d575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011b90612195565b60405180910390fd5b610137610132366004611f0e565b610257565b60405161014491906121f2565b60405180910390f35b61016061015b36600461207d565b61028a565b6040516101449190612119565b61017561029d565b6040516101449190612124565b6101756101903660046120bd565b610349565b6101a86101a3366004611cc5565b61049c565b005b6101a86101b8366004611f37565b6105a7565b6101d06101cb366004611fbc565b6105b7565b60405161014491906120d5565b610175610703565b6101a86101f3366004611ed4565b610779565b6101a8610206366004611f69565b610812565b6101a8610219366004611dce565b610824565b6101a861022c366004611e3f565b61082f565b61016061023f366004611c93565b61083b565b6101a8610252366004611d6b565b610876565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b60006102958261097a565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b505050505081565b60606002610356836109d7565b60405160200180838054600181600116156101000203166002900480156103b45780601f106103925761010080835404028352918201916103b4565b820191906000526020600020905b8154815290600101906020018083116103a0575b5050825160208401908083835b602083106103fe57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016103c1565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff861614806104c557506104c5853361083b565b61051a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612354602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610586576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806122c86030913960400191505060405180910390fd5b61059285858585610b03565b6105a0858585855a86610e57565b5050505050565b6105b28383836110ce565b505050565b60608151835114610613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612328602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561062d57600080fd5b50604051908082528060200260200182016040528015610657578160200160208202803683370190505b50905060005b84518110156106fb5760008086838151811061067557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106106c557fe5b60200260200101518152602001908152602001600020548282815181106106e857fe5b602090810291909101015260010161065d565b509392505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f810184900484028201840190925281815292918301828280156103415780601f1061031657610100808354040283529160200191610341565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61081e84848484611179565b50505050565b6105b283838361122e565b61081e8484848461146e565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061089f575061089f853361083b565b6108f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612269602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061223e602b913960400191505060405180910390fd5b61096c858585856116b8565b6105a0858585855a866117bb565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156109ce57506001610298565b610295826119ac565b606081610a18575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610298565b818060005b8215610a3157600101600a83049250610a1d565b60608167ffffffffffffffff81118015610a4a57600080fd5b506040519080825280601f01601f191660200182016040528015610a75576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610af957600a840660300160f81b82828060019003935081518110610abf57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610a9c565b5095945050505050565b8051825114610b5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806122936035913960400191505060405180910390fd5b815160005b81811015610d4f57610bf2838281518110610b7957fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610bcd57fe5b6020026020010151815260200190815260200160002054611a0990919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610c3e57fe5b6020026020010151815260200190815260200160002081905550610ce0838281518110610c6757fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610cbb57fe5b6020026020010151815260200190815260200160002054611a8090919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610d2c57fe5b602090810291909101810151825281019190915260400160002055600101610b62565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610dfc578181015183820152602001610de4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610e3b578181015183820152602001610e23565b5050505090500194505050505060405180910390a45050505050565b610e768573ffffffffffffffffffffffffffffffffffffffff16611afb565b156110c65760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610f2e578181015183820152602001610f16565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015610f6d578181015183820152602001610f55565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015610fa9578181015183820152602001610f91565b50505050905090810190601f168015610fd65780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015610ffb57600080fd5b5087f115801561100f573d6000803e3d6000fd5b50505050506040513d602081101561102657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146110c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f8152602001806123b3603f913960400191505060405180910390fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081815260408083208584529091529020546111079082611a09565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208684529091529020546111b29083611a80565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461081e60008585855a866117bb565b815181518114611289576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806122f86030913960400191505060405180910390fd5b60005b81811015611366576112f78382815181106112a357fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610bcd57fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061134357fe5b60209081029190910181015182528101919091526040016000205560010161128c565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156114145781810151838201526020016113fc565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561145357818101518382015260200161143b565b5050505090500194505050505060405180910390a450505050565b81518351146114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806123836030913960400191505060405180910390fd5b825160005b818110156115a7576115388482815181106114e457fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888581518110610cbb57fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087848151811061158457fe5b6020908102919091018101518252810191909152604001600020556001016114cd565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561165557818101518382015260200161163d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561169457818101518382015260200161167c565b5050505090500194505050505060405180910390a46105a060008686865a87610e57565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208584529091529020546116f19082611a09565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546117419082611a80565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6117da8573ffffffffffffffffffffffffffffffffffffffff16611afb565b156110c65760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561189357818101518382015260200161187b565b50505050905090810190601f1680156118c05780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156118e357600080fd5b5087f11580156118f7573d6000803e3d6000fd5b50505050506040513d602081101561190e57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146110c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806123f2603a913960400191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415611a0057506001610298565b61029582611b32565b600082821115611a7a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015611af457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590611af457507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461029857600080fd5b600082601f830112611bb0578081fd5b8135611bc3611bbe8261221f565b6121fb565b818152915060208083019084810181840286018201871015611be457600080fd5b60005b84811015611c0357813584529282019290820190600101611be7565b505050505092915050565b600082601f830112611c1e578081fd5b813567ffffffffffffffff811115611c3257fe5b611c6360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016121fb565b9150808252836020828501011115611c7a57600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611ca5578182fd5b611cae83611b7c565b9150611cbc60208401611b7c565b90509250929050565b600080600080600060a08688031215611cdc578081fd5b611ce586611b7c565b9450611cf360208701611b7c565b9350604086013567ffffffffffffffff80821115611d0f578283fd5b611d1b89838a01611ba0565b94506060880135915080821115611d30578283fd5b611d3c89838a01611ba0565b93506080880135915080821115611d51578283fd5b50611d5e88828901611c0e565b9150509295509295909350565b600080600080600060a08688031215611d82578081fd5b611d8b86611b7c565b9450611d9960208701611b7c565b93506040860135925060608601359150608086013567ffffffffffffffff811115611dc2578182fd5b611d5e88828901611c0e565b600080600060608486031215611de2578283fd5b611deb84611b7c565b9250602084013567ffffffffffffffff80821115611e07578384fd5b611e1387838801611ba0565b93506040860135915080821115611e28578283fd5b50611e3586828701611ba0565b9150509250925092565b60008060008060808587031215611e54578384fd5b611e5d85611b7c565b9350602085013567ffffffffffffffff80821115611e79578485fd5b611e8588838901611ba0565b94506040870135915080821115611e9a578384fd5b611ea688838901611ba0565b93506060870135915080821115611ebb578283fd5b50611ec887828801611c0e565b91505092959194509250565b60008060408385031215611ee6578182fd5b611eef83611b7c565b915060208301358015158114611f03578182fd5b809150509250929050565b60008060408385031215611f20578182fd5b611f2983611b7c565b946020939093013593505050565b600080600060608486031215611f4b578283fd5b611f5484611b7c565b95602085013595506040909401359392505050565b60008060008060808587031215611f7e578384fd5b611f8785611b7c565b93506020850135925060408501359150606085013567ffffffffffffffff811115611fb0578182fd5b611ec887828801611c0e565b60008060408385031215611fce578081fd5b823567ffffffffffffffff80821115611fe5578283fd5b818501915085601f830112611ff8578283fd5b8135612006611bbe8261221f565b80828252602080830192508086018a828387028901011115612026578788fd5b8796505b8487101561204f5761203b81611b7c565b84526001969096019592810192810161202a565b509096508701359350505080821115612066578283fd5b5061207385828601611ba0565b9150509250929050565b60006020828403121561208e578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611af4578182fd5b6000602082840312156120ce578081fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b8181101561210d578351835292840192918401916001016120f1565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b8181101561215057858101830151858201604001528201612134565b818111156121615783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff8111828210171561221757fe5b604052919050565b600067ffffffffffffffff82111561223357fe5b506020908102019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a264697066735822122036edc9e542c649ef48ed8a2ffd68ded6621cdb7b12543ba186da29b6d3f6a0e064736f6c63430007040033"; diff --git a/src/gen/adapter/factories/ERC1155MintBurnPackedBalanceMock__factory.js b/src/gen/adapter/factories/ERC1155MintBurnPackedBalanceMock__factory.js index 984e033..540afa1 100644 --- a/src/gen/adapter/factories/ERC1155MintBurnPackedBalanceMock__factory.js +++ b/src/gen/adapter/factories/ERC1155MintBurnPackedBalanceMock__factory.js @@ -25,11 +25,11 @@ var ERC1155MintBurnPackedBalanceMock__factory = /** @class */ (function (_super) function ERC1155MintBurnPackedBalanceMock__factory(signer) { return _super.call(this, _abi, _bytecode, signer) || this; } - ERC1155MintBurnPackedBalanceMock__factory.prototype.deploy = function (overrides) { - return _super.prototype.deploy.call(this, overrides || {}); + ERC1155MintBurnPackedBalanceMock__factory.prototype.deploy = function (_name, _baseURI, overrides) { + return _super.prototype.deploy.call(this, _name, _baseURI, overrides || {}); }; - ERC1155MintBurnPackedBalanceMock__factory.prototype.getDeployTransaction = function (overrides) { - return _super.prototype.getDeployTransaction.call(this, overrides || {}); + ERC1155MintBurnPackedBalanceMock__factory.prototype.getDeployTransaction = function (_name, _baseURI, overrides) { + return _super.prototype.getDeployTransaction.call(this, _name, _baseURI, overrides || {}); }; ERC1155MintBurnPackedBalanceMock__factory.prototype.attach = function (address) { return _super.prototype.attach.call(this, address); @@ -44,6 +44,22 @@ var ERC1155MintBurnPackedBalanceMock__factory = /** @class */ (function (_super) }(ethers_1.ContractFactory)); exports.ERC1155MintBurnPackedBalanceMock__factory = ERC1155MintBurnPackedBalanceMock__factory; var _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string" + }, + { + internalType: "string", + name: "_baseURI", + type: "string" + }, + ], + stateMutability: "nonpayable", + type: "constructor" + }, { anonymous: false, inputs: [ @@ -214,6 +230,19 @@ var _abi = [ stateMutability: "view", type: "function" }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + }, + ], + stateMutability: "view", + type: "function" + }, { inputs: [ { @@ -388,6 +417,19 @@ var _abi = [ stateMutability: "nonpayable", type: "function" }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + }, + ], + stateMutability: "view", + type: "function" + }, { inputs: [ { @@ -511,4 +553,4 @@ var _abi = [ type: "function" }, ]; -var _bytecode = "0x608060405234801561001057600080fd5b50612796806100206000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c8063a3f091f51161008c578063db90e83c11610066578063db90e83c14610221578063e985e9c514610242578063eaec5f8114610255578063f242432a14610268576100e9565b8063a3f091f5146101e8578063bd7a6c41146101fb578063d7a0ad901461020e576100e9565b80632eb2c2d6116100c85780632eb2c2d61461018d578063437ecbe9146101a25780634e1273f4146101b5578063a22cb465146101d5576100e9565b8062fdd58e1461012457806301ffc9a71461014d5780630e89341c1461016d575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011b90612359565b60405180910390fd5b6101376101323660046120b1565b61027b565b60405161014491906123b6565b60405180910390f35b61016061015b366004612220565b6102d0565b60405161014491906122dd565b61018061017b366004612260565b6102e3565b60405161014491906122e8565b6101a061019b366004611e68565b610436565b005b6101a06101b03660046120da565b610541565b6101c86101c336600461215f565b610551565b6040516101449190612299565b6101a06101e3366004612077565b6107d0565b6101a06101f636600461210c565b610869565b6101a0610209366004611f71565b61087b565b6101a061021c366004611fe2565b610886565b61023461022f366004612260565b610892565b6040516101449291906123bf565b610160610250366004611e36565b61089f565b610137610263366004612278565b6108da565b6101a0610276366004611f0e565b6108ed565b600080600061028984610892565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506102c790826108da565b95945050505050565b60006102db826109f1565b90505b919050565b606060026102f083610a4e565b604051602001808380546001816001161561010002031660029004801561034e5780601f1061032c57610100808354040283529182019161034e565b820191906000526020600020905b81548152906001019060200180831161033a575b5050825160208401908083835b6020831061039857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161035b565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff8616148061045f575061045f853361089f565b6104b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c81526020018061257e603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612449603d913960400191505060405180910390fd5b61052c85858585610b7a565b61053a858585855a86610f87565b5050505050565b61054c8383836111fe565b505050565b815181516060919081146105b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806124106039913960400191505060405180910390fd5b6000806105d0856000815181106105c357fe5b6020026020010151610892565b915091506000806000886000815181106105e657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561065a57600080fd5b50604051908082528060200260200182016040528015610684578160200160208202803683370190505b50905061069183856108da565b8160008151811061069e57fe5b602090810291909101015260015b868110156107c3576106c38982815181106105c357fe5b9096509450828614158061072c57508981815181106106de57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061070b57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561079a576000808b838151811061074057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6107a484866108da565b8282815181106107b057fe5b60209081029190910101526001016106ac565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61087584848484611268565b50505050565b61054c8383836112dc565b61087584848484611485565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff861614806109165750610916853361089f565b61096b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806124b96037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806126746038913960400191505060405180910390fd5b6109e38585858561170f565b61053a858585855a866117b3565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c000000000000000000000000000000000000000000000000000000001415610a45575060016102de565b6102db826119a4565b606081610a8f575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526102de565b818060005b8215610aa857600101600a83049250610a94565b60608167ffffffffffffffff81118015610ac157600080fd5b506040519080825280601f01601f191660200182016040528015610aec576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610b7057600a840660300160f81b82828060019003935081518110610b3657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610b13565b5095945050505050565b815181518114610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806124f06042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610c115750600081115b15610de357600080610c29856000815181106105c357fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610c819190849088908590610c7257fe5b60200260200101516001611a01565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610cd79190859089908590610cc857fe5b60200260200101516000611a01565b90508360015b86811015610d9157610cf48982815181106105c357fe5b9096509450818614610d635773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610d7484868a8481518110610c7257fe5b9350610d8783868a8481518110610cc857fe5b9250600101610cdd565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550610e80565b60005b81811015610e7e57828181518110610dfa57fe5b6020026020010151610e1f87868481518110610e1257fe5b602002602001015161027b565b1015610e76576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806125f76036913960400191505060405180910390fd5b600101610de6565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610f2c578181015183820152602001610f14565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610f6b578181015183820152602001610f53565b5050505090500194505050505060405180910390a45050505050565b610fa68573ffffffffffffffffffffffffffffffffffffffff16611c14565b156111f65760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561105e578181015183820152602001611046565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561109d578181015183820152602001611085565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156110d95781810151838201526020016110c1565b50505050905090810190601f1680156111065780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561112b57600080fd5b5087f115801561113f573d6000803e3d6000fd5b50505050506040513d602081101561115657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612532604c913960600191505060405180910390fd5b505b505050505050565b61120b8383836001611c4e565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b6112758484846000611c4e565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a461087560008585855a866117b3565b815181518114611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806125ba603d913960400191505060405180910390fd5b60005b8181101561137d576113758585838151811061135257fe5b602002602001015185848151811061136657fe5b60200260200101516001611c4e565b60010161133a565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561142b578181015183820152602001611413565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561146a578181015183820152602001611452565b5050505090500194505050505060405180910390a450505050565b81518351146114df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806126f1603e913960400191505060405180910390fd5b8251156115ff576000806114f9856000815181106105c357fe5b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091528120548751939550919350916115429190849088908590610cc857fe5b86519091508360015b828110156115c6576115628982815181106105c357fe5b90965094508186146115ab5773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b6115bc84868a8481518110610cc857fe5b935060010161154b565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156116ac578181015183820152602001611694565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156116eb5781810151838201526020016116d3565b5050505090500194505050505060405180910390a461087560008585855a86610f87565b61171c8483836001611c4e565b6117298383836000611c4e565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6117d28573ffffffffffffffffffffffffffffffffffffffff16611c14565b156111f65760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561188b578181015183820152602001611873565b50505050905090810190601f1680156118b85780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156118db57600080fd5b5087f11580156118ef573d6000803e3d6000fd5b50505050506040513d602081101561190657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604781526020018061262d6047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156119f8575060016102de565b6102db82611cd5565b60006020840263ffffffff82846001811115611a1957fe5b1415611ae75784821b8701925086831015611a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061272f6032913960400191505060405180910390fd5b64010000000087831c8216860110611ae2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061272f6032913960400191505060405180910390fd5b611c0a565b6001846001811115611af557fe5b1415611bb95784821b8703925086831115611b5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806124866033913960400191505060405180910390fd5b84818389901c161015611ae2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806124866033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806126ac6045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590611c4757507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080611c5a85610892565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150611c9a90828686611a01565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102de57600080fd5b600082601f830112611d53578081fd5b8135611d66611d61826123f1565b6123cd565b818152915060208083019084810181840286018201871015611d8757600080fd5b60005b84811015611da657813584529282019290820190600101611d8a565b505050505092915050565b600082601f830112611dc1578081fd5b813567ffffffffffffffff811115611dd557fe5b611e0660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016123cd565b9150808252836020828501011115611e1d57600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611e48578182fd5b611e5183611d1f565b9150611e5f60208401611d1f565b90509250929050565b600080600080600060a08688031215611e7f578081fd5b611e8886611d1f565b9450611e9660208701611d1f565b9350604086013567ffffffffffffffff80821115611eb2578283fd5b611ebe89838a01611d43565b94506060880135915080821115611ed3578283fd5b611edf89838a01611d43565b93506080880135915080821115611ef4578283fd5b50611f0188828901611db1565b9150509295509295909350565b600080600080600060a08688031215611f25578081fd5b611f2e86611d1f565b9450611f3c60208701611d1f565b93506040860135925060608601359150608086013567ffffffffffffffff811115611f65578182fd5b611f0188828901611db1565b600080600060608486031215611f85578283fd5b611f8e84611d1f565b9250602084013567ffffffffffffffff80821115611faa578384fd5b611fb687838801611d43565b93506040860135915080821115611fcb578283fd5b50611fd886828701611d43565b9150509250925092565b60008060008060808587031215611ff7578384fd5b61200085611d1f565b9350602085013567ffffffffffffffff8082111561201c578485fd5b61202888838901611d43565b9450604087013591508082111561203d578384fd5b61204988838901611d43565b9350606087013591508082111561205e578283fd5b5061206b87828801611db1565b91505092959194509250565b60008060408385031215612089578182fd5b61209283611d1f565b9150602083013580151581146120a6578182fd5b809150509250929050565b600080604083850312156120c3578182fd5b6120cc83611d1f565b946020939093013593505050565b6000806000606084860312156120ee578283fd5b6120f784611d1f565b95602085013595506040909401359392505050565b60008060008060808587031215612121578384fd5b61212a85611d1f565b93506020850135925060408501359150606085013567ffffffffffffffff811115612153578182fd5b61206b87828801611db1565b60008060408385031215612171578081fd5b823567ffffffffffffffff80821115612188578283fd5b818501915085601f83011261219b578283fd5b81356121a9611d61826123f1565b80828252602080830192508086018a8283870289010111156121c9578788fd5b8796505b848710156121f2576121de81611d1f565b8452600196909601959281019281016121cd565b509096508701359350505080821115612209578283fd5b5061221685828601611d43565b9150509250929050565b600060208284031215612231578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c47578182fd5b600060208284031215612271578081fd5b5035919050565b6000806040838503121561228a578182fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156122d1578351835292840192918401916001016122b5565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015612314578581018301518582016040015282016122f8565b818111156123255783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156123e957fe5b604052919050565b600067ffffffffffffffff82111561240557fe5b506020908102019056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a2646970667358221220cfaa0248ab3cd2216b2aa8933fcad401337cc5abff0d89fa02c42db1a3fc41cb64736f6c63430007040033"; +var _bytecode = "0x60806040523480156200001157600080fd5b5060405162002b3238038062002b328339810160408190526200003491620001dc565b8151829082906200004d9060039060208501906200006e565b508051620000639060029060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b6128de80620002546000396000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c8063a22cb46511610097578063db90e83c11610066578063db90e83c14610247578063e985e9c514610268578063eaec5f811461027b578063f242432a1461028e576100ff565b8063a22cb465146101fb578063a3f091f51461020e578063bd7a6c4114610221578063d7a0ad9014610234576100ff565b80632eb2c2d6116100d35780632eb2c2d6146101ab578063437ecbe9146101c05780634e1273f4146101d35780636c0360eb146101f3576100ff565b8062fdd58e1461013a57806301ffc9a71461016357806306fdde03146101835780630e89341c14610198575b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610131906124a1565b60405180910390fd5b61014d6101483660046121f9565b6102a1565b60405161015a91906124fe565b60405180910390f35b610176610171366004612368565b6102f6565b60405161015a9190612425565b61018b610309565b60405161015a9190612430565b61018b6101a63660046123a8565b6103b5565b6101be6101b9366004611fb0565b610508565b005b6101be6101ce366004612222565b610613565b6101e66101e13660046122a7565b610623565b60405161015a91906123e1565b61018b6108a2565b6101be6102093660046121bf565b610918565b6101be61021c366004612254565b6109b1565b6101be61022f3660046120b9565b6109c3565b6101be61024236600461212a565b6109ce565b61025a6102553660046123a8565b6109da565b60405161015a929190612507565b610176610276366004611f7e565b6109e7565b61014d6102893660046123c0565b610a22565b6101be61029c366004612056565b610a35565b60008060006102af846109da565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506102ed9082610a22565b95945050505050565b600061030182610b39565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156103ad5780601f10610382576101008083540402835291602001916103ad565b820191906000526020600020905b81548152906001019060200180831161039057829003601f168201915b505050505081565b606060026103c283610b96565b60405160200180838054600181600116156101000203166002900480156104205780601f106103fe576101008083540402835291820191610420565b820191906000526020600020905b81548152906001019060200180831161040c575b5050825160208401908083835b6020831061046a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161042d565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610531575061053185336109e7565b610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806126c6603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166105f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612591603d913960400191505060405180910390fd5b6105fe85858585610cc2565b61060c858585855a866110cf565b5050505050565b61061e838383611346565b505050565b81518151606091908114610682576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806125586039913960400191505060405180910390fd5b6000806106a28560008151811061069557fe5b60200260200101516109da565b915091506000806000886000815181106106b857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561072c57600080fd5b50604051908082528060200260200182016040528015610756578160200160208202803683370190505b5090506107638385610a22565b8160008151811061077057fe5b602090810291909101015260015b868110156108955761079589828151811061069557fe5b909650945082861415806107fe57508981815181106107b057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106107dd57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561086c576000808b838151811061081257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6108768486610a22565b82828151811061088257fe5b602090810291909101015260010161077e565b5098975050505050505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f810184900484028201840190925281815292918301828280156103ad5780601f10610382576101008083540402835291602001916103ad565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6109bd848484846113b0565b50505050565b61061e838383611424565b6109bd848484846115cd565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610a5e5750610a5e85336109e7565b610ab3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806126016037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610b1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806127bc6038913960400191505060405180910390fd5b610b2b85858585611857565b61060c858585855a866118fb565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c000000000000000000000000000000000000000000000000000000001415610b8d57506001610304565b61030182611aec565b606081610bd7575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610304565b818060005b8215610bf057600101600a83049250610bdc565b60608167ffffffffffffffff81118015610c0957600080fd5b506040519080825280601f01601f191660200182016040528015610c34576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610cb857600a840660300160f81b82828060019003935081518110610c7e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610c5b565b5095945050505050565b815181518114610d1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806126386042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610d595750600081115b15610f2b57600080610d718560008151811061069557fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610dc99190849088908590610dba57fe5b60200260200101516001611b49565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610e1f9190859089908590610e1057fe5b60200260200101516000611b49565b90508360015b86811015610ed957610e3c89828151811061069557fe5b9096509450818614610eab5773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610ebc84868a8481518110610dba57fe5b9350610ecf83868a8481518110610e1057fe5b9250600101610e25565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550610fc8565b60005b81811015610fc657828181518110610f4257fe5b6020026020010151610f6787868481518110610f5a57fe5b60200260200101516102a1565b1015610fbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061273f6036913960400191505060405180910390fd5b600101610f2e565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561107457818101518382015260200161105c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110b357818101518382015260200161109b565b5050505090500194505050505060405180910390a45050505050565b6110ee8573ffffffffffffffffffffffffffffffffffffffff16611d5c565b1561133e5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156111a657818101518382015260200161118e565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156111e55781810151838201526020016111cd565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611221578181015183820152602001611209565b50505050905090810190601f16801561124e5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561127357600080fd5b5087f1158015611287573d6000803e3d6000fd5b50505050506040513d602081101561129e57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c81000000000000000000000000000000000000000000000000000000001461133c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c81526020018061267a604c913960600191505060405180910390fd5b505b505050505050565b6113538383836001611d96565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b6113bd8484846000611d96565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a46109bd60008585855a866118fb565b81518151811461147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612702603d913960400191505060405180910390fd5b60005b818110156114c5576114bd8585838151811061149a57fe5b60200260200101518584815181106114ae57fe5b60200260200101516001611d96565b600101611482565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561157357818101518382015260200161155b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156115b257818101518382015260200161159a565b5050505090500194505050505060405180910390a450505050565b8151835114611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180612839603e913960400191505060405180910390fd5b825115611747576000806116418560008151811061069557fe5b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832085845290915281205487519395509193509161168a9190849088908590610e1057fe5b86519091508360015b8281101561170e576116aa89828151811061069557fe5b90965094508186146116f35773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b61170484868a8481518110610e1057fe5b9350600101611693565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156117f45781810151838201526020016117dc565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561183357818101518382015260200161181b565b5050505090500194505050505060405180910390a46109bd60008585855a866110cf565b6118648483836001611d96565b6118718383836000611d96565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b61191a8573ffffffffffffffffffffffffffffffffffffffff16611d5c565b1561133e5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156119d35781810151838201526020016119bb565b50505050905090810190601f168015611a005780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b158015611a2357600080fd5b5087f1158015611a37573d6000803e3d6000fd5b50505050506040513d6020811015611a4e57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e61000000000000000000000000000000000000000000000000000000001461133c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806127756047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415611b4057506001610304565b61030182611e1d565b60006020840263ffffffff82846001811115611b6157fe5b1415611c2f5784821b8701925086831015611bc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806128776032913960400191505060405180910390fd5b64010000000087831c8216860110611c2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806128776032913960400191505060405180910390fd5b611d52565b6001846001811115611c3d57fe5b1415611d015784821b8703925086831115611ca3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806125ce6033913960400191505060405180910390fd5b84818389901c161015611c2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806125ce6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806127f46045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590611d8f57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080611da2856109da565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150611de290828686611b49565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461030457600080fd5b600082601f830112611e9b578081fd5b8135611eae611ea982612539565b612515565b818152915060208083019084810181840286018201871015611ecf57600080fd5b60005b84811015611eee57813584529282019290820190600101611ed2565b505050505092915050565b600082601f830112611f09578081fd5b813567ffffffffffffffff811115611f1d57fe5b611f4e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612515565b9150808252836020828501011115611f6557600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611f90578182fd5b611f9983611e67565b9150611fa760208401611e67565b90509250929050565b600080600080600060a08688031215611fc7578081fd5b611fd086611e67565b9450611fde60208701611e67565b9350604086013567ffffffffffffffff80821115611ffa578283fd5b61200689838a01611e8b565b9450606088013591508082111561201b578283fd5b61202789838a01611e8b565b9350608088013591508082111561203c578283fd5b5061204988828901611ef9565b9150509295509295909350565b600080600080600060a0868803121561206d578081fd5b61207686611e67565b945061208460208701611e67565b93506040860135925060608601359150608086013567ffffffffffffffff8111156120ad578182fd5b61204988828901611ef9565b6000806000606084860312156120cd578283fd5b6120d684611e67565b9250602084013567ffffffffffffffff808211156120f2578384fd5b6120fe87838801611e8b565b93506040860135915080821115612113578283fd5b5061212086828701611e8b565b9150509250925092565b6000806000806080858703121561213f578384fd5b61214885611e67565b9350602085013567ffffffffffffffff80821115612164578485fd5b61217088838901611e8b565b94506040870135915080821115612185578384fd5b61219188838901611e8b565b935060608701359150808211156121a6578283fd5b506121b387828801611ef9565b91505092959194509250565b600080604083850312156121d1578182fd5b6121da83611e67565b9150602083013580151581146121ee578182fd5b809150509250929050565b6000806040838503121561220b578182fd5b61221483611e67565b946020939093013593505050565b600080600060608486031215612236578283fd5b61223f84611e67565b95602085013595506040909401359392505050565b60008060008060808587031215612269578384fd5b61227285611e67565b93506020850135925060408501359150606085013567ffffffffffffffff81111561229b578182fd5b6121b387828801611ef9565b600080604083850312156122b9578081fd5b823567ffffffffffffffff808211156122d0578283fd5b818501915085601f8301126122e3578283fd5b81356122f1611ea982612539565b80828252602080830192508086018a828387028901011115612311578788fd5b8796505b8487101561233a5761232681611e67565b845260019690960195928101928101612315565b509096508701359350505080821115612351578283fd5b5061235e85828601611e8b565b9150509250929050565b600060208284031215612379578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611d8f578182fd5b6000602082840312156123b9578081fd5b5035919050565b600080604083850312156123d2578182fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015612419578351835292840192918401916001016123fd565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b8181101561245c57858101830151858201604001528201612440565b8181111561246d5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561253157fe5b604052919050565b600067ffffffffffffffff82111561254d57fe5b506020908102019056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212204aa1b13560e71a37f5fadb28a853fe4d62dec0731bc5ba1c017dbdc08fd3f98464736f6c63430007040033"; diff --git a/src/gen/adapter/factories/ERC2981GlobalMock__factory.js b/src/gen/adapter/factories/ERC2981GlobalMock__factory.js new file mode 100644 index 0000000..dd28bf6 --- /dev/null +++ b/src/gen/adapter/factories/ERC2981GlobalMock__factory.js @@ -0,0 +1,573 @@ +"use strict"; +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +exports.__esModule = true; +exports.ERC2981GlobalMock__factory = void 0; +var ethers_1 = require("ethers"); +var ERC2981GlobalMock__factory = /** @class */ (function (_super) { + __extends(ERC2981GlobalMock__factory, _super); + function ERC2981GlobalMock__factory(signer) { + return _super.call(this, _abi, _bytecode, signer) || this; + } + ERC2981GlobalMock__factory.prototype.deploy = function (_name, _baseURI, overrides) { + return _super.prototype.deploy.call(this, _name, _baseURI, overrides || {}); + }; + ERC2981GlobalMock__factory.prototype.getDeployTransaction = function (_name, _baseURI, overrides) { + return _super.prototype.getDeployTransaction.call(this, _name, _baseURI, overrides || {}); + }; + ERC2981GlobalMock__factory.prototype.attach = function (address) { + return _super.prototype.attach.call(this, address); + }; + ERC2981GlobalMock__factory.prototype.connect = function (signer) { + return _super.prototype.connect.call(this, signer); + }; + ERC2981GlobalMock__factory.connect = function (address, signerOrProvider) { + return new ethers_1.Contract(address, _abi, signerOrProvider); + }; + return ERC2981GlobalMock__factory; +}(ethers_1.ContractFactory)); +exports.ERC2981GlobalMock__factory = ERC2981GlobalMock__factory; +var _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string" + }, + { + internalType: "string", + name: "_baseURI", + type: "string" + }, + ], + stateMutability: "nonpayable", + type: "constructor" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "_owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "_operator", + type: "address" + }, + { + indexed: false, + internalType: "bool", + name: "_approved", + type: "bool" + }, + ], + name: "ApprovalForAll", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "_operator", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "_from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "_to", + type: "address" + }, + { + indexed: false, + internalType: "uint256[]", + name: "_ids", + type: "uint256[]" + }, + { + indexed: false, + internalType: "uint256[]", + name: "_amounts", + type: "uint256[]" + }, + ], + name: "TransferBatch", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "_operator", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "_from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "_to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "_id", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "_amount", + type: "uint256" + }, + ], + name: "TransferSingle", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "_uri", + type: "string" + }, + { + indexed: true, + internalType: "uint256", + name: "_id", + type: "uint256" + }, + ], + name: "URI", + type: "event" + }, + { + stateMutability: "nonpayable", + type: "fallback" + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address" + }, + { + internalType: "uint256", + name: "_id", + type: "uint256" + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + }, + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address[]", + name: "_owners", + type: "address[]" + }, + { + internalType: "uint256[]", + name: "_ids", + type: "uint256[]" + }, + ], + name: "balanceOfBatch", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]" + }, + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + }, + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address" + }, + { + internalType: "uint256[]", + name: "_ids", + type: "uint256[]" + }, + { + internalType: "uint256[]", + name: "_values", + type: "uint256[]" + }, + ], + name: "batchBurnMock", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_to", + type: "address" + }, + { + internalType: "uint256[]", + name: "_ids", + type: "uint256[]" + }, + { + internalType: "uint256[]", + name: "_values", + type: "uint256[]" + }, + { + internalType: "bytes", + name: "_data", + type: "bytes" + }, + ], + name: "batchMintMock", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address" + }, + { + internalType: "uint256", + name: "_id", + type: "uint256" + }, + { + internalType: "uint256", + name: "_value", + type: "uint256" + }, + ], + name: "burnMock", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "globalRoyaltyInfo", + outputs: [ + { + internalType: "address", + name: "receiver", + type: "address" + }, + { + internalType: "uint256", + name: "feeBasisPoints", + type: "uint256" + }, + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address" + }, + { + internalType: "address", + name: "_operator", + type: "address" + }, + ], + name: "isApprovedForAll", + outputs: [ + { + internalType: "bool", + name: "isOperator", + type: "bool" + }, + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_to", + type: "address" + }, + { + internalType: "uint256", + name: "_id", + type: "uint256" + }, + { + internalType: "uint256", + name: "_value", + type: "uint256" + }, + { + internalType: "bytes", + name: "_data", + type: "bytes" + }, + ], + name: "mintMock", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + }, + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "_saleCost", + type: "uint256" + }, + ], + name: "royaltyInfo", + outputs: [ + { + internalType: "address", + name: "receiver", + type: "address" + }, + { + internalType: "uint256", + name: "royaltyAmount", + type: "uint256" + }, + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address" + }, + { + internalType: "address", + name: "_to", + type: "address" + }, + { + internalType: "uint256[]", + name: "_ids", + type: "uint256[]" + }, + { + internalType: "uint256[]", + name: "_amounts", + type: "uint256[]" + }, + { + internalType: "bytes", + name: "_data", + type: "bytes" + }, + ], + name: "safeBatchTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address" + }, + { + internalType: "address", + name: "_to", + type: "address" + }, + { + internalType: "uint256", + name: "_id", + type: "uint256" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + }, + { + internalType: "bytes", + name: "_data", + type: "bytes" + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_operator", + type: "address" + }, + { + internalType: "bool", + name: "_approved", + type: "bool" + }, + ], + name: "setApprovalForAll", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_recipient", + type: "address" + }, + { + internalType: "uint256", + name: "_royaltyBasisPoints", + type: "uint256" + }, + ], + name: "setGlobalRoyaltyInfo", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "bytes4", + name: "_interfaceID", + type: "bytes4" + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + }, + ], + stateMutability: "pure", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "_id", + type: "uint256" + }, + ], + name: "uri", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + }, + ], + stateMutability: "view", + type: "function" + }, +]; +var _bytecode = "0x60806040523480156200001157600080fd5b5060405162002daf38038062002daf833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604052505050818181818160039080519060200190620001bb929190620001de565b508051620001d1906002906020840190620001de565b505050505050506200028a565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000216576000855562000261565b82601f106200023157805160ff191683800117855562000261565b8280016001018555821562000261579182015b828111156200026157825182559160200191906001019062000244565b506200026f92915062000273565b5090565b5b808211156200026f576000815560010162000274565b612b15806200029a6000396000f3fe608060405234801561001057600080fd5b506004361061011a5760003560e01c80636c0360eb116100b2578063bd7a6c4111610081578063d7a0ad9011610066578063d7a0ad9014610903578063e985e9c514610ace578063f242432a14610b095761011a565b8063bd7a6c41146107b7578063c9823cc6146108fb5761011a565b80636c0360eb1461066c57806393cfa68214610674578063a22cb465146106ad578063a3f091f5146106e85761011a565b80632a55205a116100ee5780632a55205a1461028d5780632eb2c2d6146102e0578063437ecbe9146104b65780634e1273f4146104f55761011a565b8062fdd58e1461015557806301ffc9a7146101a057806306fdde03146101f35780630e89341c14610270575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c9061282a565b60405180910390fd5b61018e6004803603604081101561016b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610be1565b60408051918252519081900360200190f35b6101df600480360360208110156101b657600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610c17565b604080519115158252519081900360200190f35b6101fb610c2a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023557818101518382015260200161021d565b50505050905090810190601f1680156102625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb6004803603602081101561028657600080fd5b5035610cd6565b6102b0600480360360408110156102a357600080fd5b5080359060200135610e29565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091528051918290030190f35b6104b4600480360360a08110156102f657600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561033757600080fd5b82018360208201111561034957600080fd5b8035906020019184602083028401116401000000008311171561036b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103bb57600080fd5b8201836020820111156103cd57600080fd5b803590602001918460208302840111640100000000831117156103ef57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561043f57600080fd5b82018360208201111561045157600080fd5b8035906020019184600183028401116401000000008311171561047357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e8a945050505050565b005b6104b4600480360360608110156104cc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060400135610f95565b61061c6004803603604081101561050b57600080fd5b81019060208101813564010000000081111561052657600080fd5b82018360208201111561053857600080fd5b8035906020019184602083028401116401000000008311171561055a57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156105aa57600080fd5b8201836020820111156105bc57600080fd5b803590602001918460208302840111640100000000831117156105de57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fa5945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610658578181015183820152602001610640565b505050509050019250505060405180910390f35b6101fb6110f1565b6104b46004803603604081101561068a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611167565b6104b4600480360360408110156106c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611175565b6104b4600480360360808110156106fe57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561074257600080fd5b82018360208201111561075457600080fd5b8035906020019184600183028401116401000000008311171561077657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061120e945050505050565b6104b4600480360360608110156107cd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561080557600080fd5b82018360208201111561081757600080fd5b8035906020019184602083028401116401000000008311171561083957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561088957600080fd5b82018360208201111561089b57600080fd5b803590602001918460208302840111640100000000831117156108bd57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611220945050505050565b6102b061122b565b6104b46004803603608081101561091957600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561095157600080fd5b82018360208201111561096357600080fd5b8035906020019184602083028401116401000000008311171561098557600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156109d557600080fd5b8201836020820111156109e757600080fd5b80359060200191846020830284011164010000000083111715610a0957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a5957600080fd5b820183602082011115610a6b57600080fd5b80359060200191846001830284011164010000000083111715610a8d57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061124d945050505050565b6101df60048036036040811015610ae457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611259565b6104b4600480360360a0811015610b1f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610b6c57600080fd5b820183602082011115610b7e57600080fd5b80359060200191846001830284011164010000000083111715610ba057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611294945050505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152602081815260408083208484529091529020545b92915050565b6000610c2282611398565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081565b60606002610ce3836113f5565b6040516020018083805460018160011615610100020316600290048015610d415780601f10610d1f576101008083540402835291820191610d41565b820191906000526020600020905b815481529060010190602001808311610d2d575b5050825160208401908083835b60208310610d8b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d4e565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b600080610e34612813565b506040805180820190915260045473ffffffffffffffffffffffffffffffffffffffff1680825260055460208301819052610e7e906103e890610e78908890611521565b906115b1565b92509250509250929050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610eb35750610eb38533611259565b610f08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612a08602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610f74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806129126030913960400191505060405180910390fd5b610f8085858585611635565b610f8e858585855a86611989565b5050505050565b610fa0838383611c00565b505050565b60608151835114611001576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806129a3602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561101b57600080fd5b50604051908082528060200260200182016040528015611045578160200160208202803683370190505b50905060005b84518110156110e95760008086838151811061106357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106110b357fe5b60200260200101518152602001908152602001600020548282815181106110d657fe5b602090810291909101015260010161104b565b509392505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f81018490048402820184019092528181529291830182828015610cce5780601f10610ca357610100808354040283529160200191610cce565b6111718282611cab565b5050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61121a84848484611dbd565b50505050565b610fa0838383611e72565b60045460055473ffffffffffffffffffffffffffffffffffffffff9091169082565b61121a848484846120b2565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff861614806112bd57506112bd8533611259565b611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806128b3602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612888602b913960400191505060405180910390fd5b61138a858585856122fc565b610f8e858585855a866123ff565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a0000000000000000000000000000000000000000000000000000000014156113ec57506001610c25565b610c22826125f0565b606081611436575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610c25565b818060005b821561144f57600101600a8304925061143b565b60608167ffffffffffffffff8111801561146857600080fd5b506040519080825280601f01601f191660200182016040528015611493576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561151757600a840660300160f81b828280600190039350815181106114dd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506114ba565b5095945050505050565b60008261153057506000610c11565b8282028284828161153d57fe5b04146115aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236d756c3a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b600080821161162157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d617468236469763a204449564953494f4e5f42595f5a45524f0000604482015290519081900360640190fd5b600082848161162c57fe5b04949350505050565b805182511461168f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806128dd6035913960400191505060405180910390fd5b815160005b81811015611881576117248382815181106116ab57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116ff57fe5b60200260200101518152602001908152602001600020546125fb90919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061177057fe5b602002602001015181526020019081526020016000208190555061181283828151811061179957fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106117ed57fe5b602002602001015181526020019081526020016000205461267290919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061185e57fe5b602090810291909101810151825281019190915260400160002055600101611694565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561192e578181015183820152602001611916565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561196d578181015183820152602001611955565b5050505090500194505050505060405180910390a45050505050565b6119a88573ffffffffffffffffffffffffffffffffffffffff166126e6565b15611bf85760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611a60578181015183820152602001611a48565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611a9f578181015183820152602001611a87565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611adb578181015183820152602001611ac3565b50505050905090810190601f168015611b085780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611b2d57600080fd5b5087f1158015611b41573d6000803e3d6000fd5b50505050506040513d6020811015611b5857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180612a67603f913960400191505060405180910390fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611c3990826125fb565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b73ffffffffffffffffffffffffffffffffffffffff8216611d17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806129726031913960400191505060405180910390fd5b6103e8811115611d72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806129cf6039913960400191505060405180910390fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155600555565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320868452909152902054611df69083612672565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461121a60008585855a866123ff565b815181518114611ecd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806129426030913960400191505060405180910390fd5b60005b81811015611faa57611f3b838281518110611ee757fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116ff57fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110611f8757fe5b602090810291909101810151825281019190915260400160002055600101611ed0565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612058578181015183820152602001612040565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561209757818101518382015260200161207f565b5050505090500194505050505060405180910390a450505050565b815183511461210c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612a376030913960400191505060405180910390fd5b825160005b818110156121eb5761217c84828151811061212857fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008885815181106117ed57fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008784815181106121c857fe5b602090810291909101810151825281019190915260400160002055600101612111565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612299578181015183820152602001612281565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156122d85781810151838201526020016122c0565b5050505090500194505050505060405180910390a4610f8e60008686865a87611989565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832085845290915290205461233590826125fb565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546123859082612672565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b61241e8573ffffffffffffffffffffffffffffffffffffffff166126e6565b15611bf85760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156124d75781810151838201526020016124bf565b50505050905090810190601f1680156125045780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561252757600080fd5b5087f115801561253b573d6000803e3d6000fd5b50505050506040513d602081101561255257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612aa6603a913960400191505060405180910390fd5b6000610c228261271d565b60008282111561266c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b6000828201838110156115aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b6000813f80158015906115aa57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561277157506001610c25565b610c228260007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156127c957506001610c25565b7f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610c22565b604080518082019091526000808252602082015290565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f440000000000000000000000000000000000000000000000000060608201526080019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e47544845524332393831476c6f62616c235f736574476c6f62616c526f79616c74793a20524543495049454e545f49535f307830455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524332393831476c6f62616c235f736574476c6f62616c526f79616c74793a204645455f49535f41424f56455f3130305f50455243454e5445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a2646970667358221220ceacbcdce353ae53948aa9b972423089875d1f569d105a9e37edc2a23df2421264736f6c63430007040033"; diff --git a/src/gen/adapter/factories/ERC2981Global__factory.js b/src/gen/adapter/factories/ERC2981Global__factory.js new file mode 100644 index 0000000..743d702 --- /dev/null +++ b/src/gen/adapter/factories/ERC2981Global__factory.js @@ -0,0 +1,114 @@ +"use strict"; +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +exports.__esModule = true; +exports.ERC2981Global__factory = void 0; +var ethers_1 = require("ethers"); +var ERC2981Global__factory = /** @class */ (function (_super) { + __extends(ERC2981Global__factory, _super); + function ERC2981Global__factory(signer) { + return _super.call(this, _abi, _bytecode, signer) || this; + } + ERC2981Global__factory.prototype.deploy = function (overrides) { + return _super.prototype.deploy.call(this, overrides || {}); + }; + ERC2981Global__factory.prototype.getDeployTransaction = function (overrides) { + return _super.prototype.getDeployTransaction.call(this, overrides || {}); + }; + ERC2981Global__factory.prototype.attach = function (address) { + return _super.prototype.attach.call(this, address); + }; + ERC2981Global__factory.prototype.connect = function (signer) { + return _super.prototype.connect.call(this, signer); + }; + ERC2981Global__factory.connect = function (address, signerOrProvider) { + return new ethers_1.Contract(address, _abi, signerOrProvider); + }; + return ERC2981Global__factory; +}(ethers_1.ContractFactory)); +exports.ERC2981Global__factory = ERC2981Global__factory; +var _abi = [ + { + inputs: [], + name: "globalRoyaltyInfo", + outputs: [ + { + internalType: "address", + name: "receiver", + type: "address" + }, + { + internalType: "uint256", + name: "feeBasisPoints", + type: "uint256" + }, + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "_saleCost", + type: "uint256" + }, + ], + name: "royaltyInfo", + outputs: [ + { + internalType: "address", + name: "receiver", + type: "address" + }, + { + internalType: "uint256", + name: "royaltyAmount", + type: "uint256" + }, + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "bytes4", + name: "_interfaceID", + type: "bytes4" + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + }, + ], + stateMutability: "pure", + type: "function" + }, +]; +var _bytecode = "0x608060405234801561001057600080fd5b50610389806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a7146100465780632a55205a14610099578063c9823cc6146100ec575b600080fd5b6100856004803603602081101561005c57600080fd5b50357fffffffff00000000000000000000000000000000000000000000000000000000166100f4565b604080519115158252519081900360200190f35b6100bc600480360360408110156100af57600080fd5b5080359060200135610159565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091528051918290030190f35b6100bc6101ba565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000141561014857506001610154565b610151826101dc565b90505b919050565b60008061016461033c565b506040805180820190915260005473ffffffffffffffffffffffffffffffffffffffff16808252600154602083018190526101ae906103e8906101a8908890610226565b906102b8565b92509250509250929050565b60005460015473ffffffffffffffffffffffffffffffffffffffff9091169082565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b600082610235575060006102b2565b8282028284828161024257fe5b04146102af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236d756c3a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b90505b92915050565b600080821161032857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d617468236469763a204449564953494f4e5f42595f5a45524f0000604482015290519081900360640190fd5b600082848161033357fe5b04949350505050565b60408051808201909152600080825260208201529056fea2646970667358221220500d0606933313f45141c424c5b303e333204707c19b03c34b061c17f69006f964736f6c63430007040033"; diff --git a/src/gen/adapter/factories/IERC2981__factory.js b/src/gen/adapter/factories/IERC2981__factory.js new file mode 100644 index 0000000..7a55100 --- /dev/null +++ b/src/gen/adapter/factories/IERC2981__factory.js @@ -0,0 +1,66 @@ +"use strict"; +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +exports.__esModule = true; +exports.IERC2981__factory = void 0; +var ethers_1 = require("ethers"); +var IERC2981__factory = /** @class */ (function () { + function IERC2981__factory() { + } + IERC2981__factory.connect = function (address, signerOrProvider) { + return new ethers_1.Contract(address, _abi, signerOrProvider); + }; + return IERC2981__factory; +}()); +exports.IERC2981__factory = IERC2981__factory; +var _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "_tokenId", + type: "uint256" + }, + { + internalType: "uint256", + name: "_saleCost", + type: "uint256" + }, + ], + name: "royaltyInfo", + outputs: [ + { + internalType: "address", + name: "receiver", + type: "address" + }, + { + internalType: "uint256", + name: "royaltyAmount", + type: "uint256" + }, + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "bytes4", + name: "_interfaceId", + type: "bytes4" + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + }, + ], + stateMutability: "view", + type: "function" + }, +]; diff --git a/src/gen/adapter/index.js b/src/gen/adapter/index.js index 6c7eeee..e18cd15 100644 --- a/src/gen/adapter/index.js +++ b/src/gen/adapter/index.js @@ -7,7 +7,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi o[k2] = m[k]; })); exports.__esModule = true; -exports.SignatureValidator__factory = exports.Ownable__factory = exports.ERC165__factory = exports.ERC1155PackedBalance__factory = exports.ERC1155MintBurnPackedBalance__factory = exports.ERC1155MetaPackedBalance__factory = exports.ERC1155MintBurn__factory = exports.ERC1155Metadata__factory = exports.ERC1155Meta__factory = exports.ERC1155__factory = exports.OwnableMock__factory = exports.ERC20Mock__factory = exports.ERC20__factory = exports.LibEIP712__factory = exports.ERC1271WalletValidationMock__factory = exports.ERC1155ReceiverMock__factory = exports.ERC1155OperatorMock__factory = exports.ERC1155MintBurnPackedBalanceMock__factory = exports.ERC1155MintBurnMock__factory = exports.ERC1155MetaMintBurnPackedBalanceMock__factory = exports.ERC1155MetaMintBurnMock__factory = exports.ERC1155MetadataMock__factory = exports.IERC20__factory = exports.IERC165__factory = exports.IERC1271Wallet__factory = exports.IERC1155TokenReceiver__factory = exports.IERC1155MintBurn__factory = exports.IERC1155Metadata__factory = exports.IERC1155Meta__factory = exports.IERC1155__factory = void 0; +exports.SignatureValidator__factory = exports.Ownable__factory = exports.ERC165__factory = exports.ERC2981Global__factory = exports.ERC1155PackedBalance__factory = exports.ERC1155MintBurnPackedBalance__factory = exports.ERC1155MetaPackedBalance__factory = exports.ERC1155MintBurn__factory = exports.ERC1155Metadata__factory = exports.ERC1155Meta__factory = exports.ERC1155__factory = exports.OwnableMock__factory = exports.ERC2981GlobalMock__factory = exports.ERC20Mock__factory = exports.ERC20__factory = exports.LibEIP712__factory = exports.ERC1271WalletValidationMock__factory = exports.ERC1155ReceiverMock__factory = exports.ERC1155OperatorMock__factory = exports.ERC1155MintBurnPackedBalanceMock__factory = exports.ERC1155MintBurnMock__factory = exports.ERC1155MetaMintBurnPackedBalanceMock__factory = exports.ERC1155MetaMintBurnMock__factory = exports.ERC1155MetadataMock__factory = exports.IERC2981__factory = exports.IERC20__factory = exports.IERC165__factory = exports.IERC1271Wallet__factory = exports.IERC1155TokenReceiver__factory = exports.IERC1155MintBurn__factory = exports.IERC1155Metadata__factory = exports.IERC1155Meta__factory = exports.IERC1155__factory = void 0; var IERC1155__factory_1 = require("./factories/IERC1155__factory"); __createBinding(exports, IERC1155__factory_1, "IERC1155__factory"); var IERC1155Meta__factory_1 = require("./factories/IERC1155Meta__factory"); @@ -24,6 +24,8 @@ var IERC165__factory_1 = require("./factories/IERC165__factory"); __createBinding(exports, IERC165__factory_1, "IERC165__factory"); var IERC20__factory_1 = require("./factories/IERC20__factory"); __createBinding(exports, IERC20__factory_1, "IERC20__factory"); +var IERC2981__factory_1 = require("./factories/IERC2981__factory"); +__createBinding(exports, IERC2981__factory_1, "IERC2981__factory"); var ERC1155MetadataMock__factory_1 = require("./factories/ERC1155MetadataMock__factory"); __createBinding(exports, ERC1155MetadataMock__factory_1, "ERC1155MetadataMock__factory"); var ERC1155MetaMintBurnMock__factory_1 = require("./factories/ERC1155MetaMintBurnMock__factory"); @@ -46,6 +48,8 @@ var ERC20__factory_1 = require("./factories/ERC20__factory"); __createBinding(exports, ERC20__factory_1, "ERC20__factory"); var ERC20Mock__factory_1 = require("./factories/ERC20Mock__factory"); __createBinding(exports, ERC20Mock__factory_1, "ERC20Mock__factory"); +var ERC2981GlobalMock__factory_1 = require("./factories/ERC2981GlobalMock__factory"); +__createBinding(exports, ERC2981GlobalMock__factory_1, "ERC2981GlobalMock__factory"); var OwnableMock__factory_1 = require("./factories/OwnableMock__factory"); __createBinding(exports, OwnableMock__factory_1, "OwnableMock__factory"); var ERC1155__factory_1 = require("./factories/ERC1155__factory"); @@ -62,6 +66,8 @@ var ERC1155MintBurnPackedBalance__factory_1 = require("./factories/ERC1155MintBu __createBinding(exports, ERC1155MintBurnPackedBalance__factory_1, "ERC1155MintBurnPackedBalance__factory"); var ERC1155PackedBalance__factory_1 = require("./factories/ERC1155PackedBalance__factory"); __createBinding(exports, ERC1155PackedBalance__factory_1, "ERC1155PackedBalance__factory"); +var ERC2981Global__factory_1 = require("./factories/ERC2981Global__factory"); +__createBinding(exports, ERC2981Global__factory_1, "ERC2981Global__factory"); var ERC165__factory_1 = require("./factories/ERC165__factory"); __createBinding(exports, ERC165__factory_1, "ERC165__factory"); var Ownable__factory_1 = require("./factories/Ownable__factory"); diff --git a/src/gen/typechain/ERC1155MetaMintBurnMock.d.ts b/src/gen/typechain/ERC1155MetaMintBurnMock.d.ts index a780dcb..da08112 100644 --- a/src/gen/typechain/ERC1155MetaMintBurnMock.d.ts +++ b/src/gen/typechain/ERC1155MetaMintBurnMock.d.ts @@ -23,6 +23,7 @@ interface ERC1155MetaMintBurnMockInterface extends ethers.utils.Interface { functions: { "balanceOf(address,uint256)": FunctionFragment; "balanceOfBatch(address[],uint256[])": FunctionFragment; + "baseURI()": FunctionFragment; "batchBurnMock(address,uint256[],uint256[])": FunctionFragment; "batchMintMock(address,uint256[],uint256[],bytes)": FunctionFragment; "burnMock(address,uint256,uint256)": FunctionFragment; @@ -33,6 +34,7 @@ interface ERC1155MetaMintBurnMockInterface extends ethers.utils.Interface { "metaSafeTransferFrom(address,address,uint256,uint256,bool,bytes)": FunctionFragment; "metaSetApprovalForAll(address,address,bool,bool,bytes)": FunctionFragment; "mintMock(address,uint256,uint256,bytes)": FunctionFragment; + "name()": FunctionFragment; "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": FunctionFragment; "safeTransferFrom(address,address,uint256,uint256,bytes)": FunctionFragment; "setApprovalForAll(address,bool)": FunctionFragment; @@ -48,6 +50,7 @@ interface ERC1155MetaMintBurnMockInterface extends ethers.utils.Interface { functionFragment: "balanceOfBatch", values: [string[], BigNumberish[]] ): string; + encodeFunctionData(functionFragment: "baseURI", values?: undefined): string; encodeFunctionData( functionFragment: "batchBurnMock", values: [string, BigNumberish[], BigNumberish[]] @@ -85,6 +88,7 @@ interface ERC1155MetaMintBurnMockInterface extends ethers.utils.Interface { functionFragment: "mintMock", values: [string, BigNumberish, BigNumberish, BytesLike] ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData( functionFragment: "safeBatchTransferFrom", values: [string, string, BigNumberish[], BigNumberish[], BytesLike] @@ -108,6 +112,7 @@ interface ERC1155MetaMintBurnMockInterface extends ethers.utils.Interface { functionFragment: "balanceOfBatch", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "baseURI", data: BytesLike): Result; decodeFunctionResult( functionFragment: "batchBurnMock", data: BytesLike @@ -139,6 +144,7 @@ interface ERC1155MetaMintBurnMockInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "mintMock", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult( functionFragment: "safeBatchTransferFrom", data: BytesLike @@ -240,6 +246,10 @@ export class ERC1155MetaMintBurnMock extends Contract { overrides?: CallOverrides ): Promise<[BigNumber[]]>; + baseURI(overrides?: CallOverrides): Promise<[string]>; + + "baseURI()"(overrides?: CallOverrides): Promise<[string]>; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -396,6 +406,10 @@ export class ERC1155MetaMintBurnMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise<[string]>; + + "name()"(overrides?: CallOverrides): Promise<[string]>; + safeBatchTransferFrom( _from: string, _to: string, @@ -486,6 +500,10 @@ export class ERC1155MetaMintBurnMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -639,6 +657,10 @@ export class ERC1155MetaMintBurnMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, @@ -726,6 +748,10 @@ export class ERC1155MetaMintBurnMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -879,6 +905,10 @@ export class ERC1155MetaMintBurnMock extends Contract { overrides?: CallOverrides ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, @@ -1028,6 +1058,10 @@ export class ERC1155MetaMintBurnMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -1181,6 +1215,10 @@ export class ERC1155MetaMintBurnMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, @@ -1272,6 +1310,10 @@ export class ERC1155MetaMintBurnMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -1428,6 +1470,10 @@ export class ERC1155MetaMintBurnMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, diff --git a/src/gen/typechain/ERC1155MetaMintBurnPackedBalanceMock.d.ts b/src/gen/typechain/ERC1155MetaMintBurnPackedBalanceMock.d.ts index 642597c..2288524 100644 --- a/src/gen/typechain/ERC1155MetaMintBurnPackedBalanceMock.d.ts +++ b/src/gen/typechain/ERC1155MetaMintBurnPackedBalanceMock.d.ts @@ -24,6 +24,7 @@ interface ERC1155MetaMintBurnPackedBalanceMockInterface functions: { "balanceOf(address,uint256)": FunctionFragment; "balanceOfBatch(address[],uint256[])": FunctionFragment; + "baseURI()": FunctionFragment; "batchBurnMock(address,uint256[],uint256[])": FunctionFragment; "batchMintMock(address,uint256[],uint256[],bytes)": FunctionFragment; "burnMock(address,uint256,uint256)": FunctionFragment; @@ -36,6 +37,7 @@ interface ERC1155MetaMintBurnPackedBalanceMockInterface "metaSafeTransferFrom(address,address,uint256,uint256,bool,bytes)": FunctionFragment; "metaSetApprovalForAll(address,address,bool,bool,bytes)": FunctionFragment; "mintMock(address,uint256,uint256,bytes)": FunctionFragment; + "name()": FunctionFragment; "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": FunctionFragment; "safeTransferFrom(address,address,uint256,uint256,bytes)": FunctionFragment; "setApprovalForAll(address,bool)": FunctionFragment; @@ -51,6 +53,7 @@ interface ERC1155MetaMintBurnPackedBalanceMockInterface functionFragment: "balanceOfBatch", values: [string[], BigNumberish[]] ): string; + encodeFunctionData(functionFragment: "baseURI", values?: undefined): string; encodeFunctionData( functionFragment: "batchBurnMock", values: [string, BigNumberish[], BigNumberish[]] @@ -96,6 +99,7 @@ interface ERC1155MetaMintBurnPackedBalanceMockInterface functionFragment: "mintMock", values: [string, BigNumberish, BigNumberish, BytesLike] ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData( functionFragment: "safeBatchTransferFrom", values: [string, string, BigNumberish[], BigNumberish[], BytesLike] @@ -119,6 +123,7 @@ interface ERC1155MetaMintBurnPackedBalanceMockInterface functionFragment: "balanceOfBatch", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "baseURI", data: BytesLike): Result; decodeFunctionResult( functionFragment: "batchBurnMock", data: BytesLike @@ -158,6 +163,7 @@ interface ERC1155MetaMintBurnPackedBalanceMockInterface data: BytesLike ): Result; decodeFunctionResult(functionFragment: "mintMock", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult( functionFragment: "safeBatchTransferFrom", data: BytesLike @@ -259,6 +265,10 @@ export class ERC1155MetaMintBurnPackedBalanceMock extends Contract { overrides?: CallOverrides ): Promise<[BigNumber[]]>; + baseURI(overrides?: CallOverrides): Promise<[string]>; + + "baseURI()"(overrides?: CallOverrides): Promise<[string]>; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -437,6 +447,10 @@ export class ERC1155MetaMintBurnPackedBalanceMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise<[string]>; + + "name()"(overrides?: CallOverrides): Promise<[string]>; + safeBatchTransferFrom( _from: string, _to: string, @@ -527,6 +541,10 @@ export class ERC1155MetaMintBurnPackedBalanceMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -702,6 +720,10 @@ export class ERC1155MetaMintBurnPackedBalanceMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, @@ -789,6 +811,10 @@ export class ERC1155MetaMintBurnPackedBalanceMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -964,6 +990,10 @@ export class ERC1155MetaMintBurnPackedBalanceMock extends Contract { overrides?: CallOverrides ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, @@ -1113,6 +1143,10 @@ export class ERC1155MetaMintBurnPackedBalanceMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -1288,6 +1322,10 @@ export class ERC1155MetaMintBurnPackedBalanceMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, @@ -1379,6 +1417,10 @@ export class ERC1155MetaMintBurnPackedBalanceMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -1557,6 +1599,10 @@ export class ERC1155MetaMintBurnPackedBalanceMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, diff --git a/src/gen/typechain/ERC1155Metadata.d.ts b/src/gen/typechain/ERC1155Metadata.d.ts index 285715d..0c2787b 100644 --- a/src/gen/typechain/ERC1155Metadata.d.ts +++ b/src/gen/typechain/ERC1155Metadata.d.ts @@ -20,16 +20,22 @@ import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; interface ERC1155MetadataInterface extends ethers.utils.Interface { functions: { + "baseURI()": FunctionFragment; + "name()": FunctionFragment; "supportsInterface(bytes4)": FunctionFragment; "uri(uint256)": FunctionFragment; }; + encodeFunctionData(functionFragment: "baseURI", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData( functionFragment: "supportsInterface", values: [BytesLike] ): string; encodeFunctionData(functionFragment: "uri", values: [BigNumberish]): string; + decodeFunctionResult(functionFragment: "baseURI", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult( functionFragment: "supportsInterface", data: BytesLike @@ -87,6 +93,14 @@ export class ERC1155Metadata extends Contract { interface: ERC1155MetadataInterface; functions: { + baseURI(overrides?: CallOverrides): Promise<[string]>; + + "baseURI()"(overrides?: CallOverrides): Promise<[string]>; + + name(overrides?: CallOverrides): Promise<[string]>; + + "name()"(overrides?: CallOverrides): Promise<[string]>; + supportsInterface( _interfaceID: BytesLike, overrides?: CallOverrides @@ -105,6 +119,14 @@ export class ERC1155Metadata extends Contract { ): Promise<[string]>; }; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + supportsInterface( _interfaceID: BytesLike, overrides?: CallOverrides @@ -120,6 +142,14 @@ export class ERC1155Metadata extends Contract { "uri(uint256)"(_id: BigNumberish, overrides?: CallOverrides): Promise; callStatic: { + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + supportsInterface( _interfaceID: BytesLike, overrides?: CallOverrides @@ -146,6 +176,14 @@ export class ERC1155Metadata extends Contract { }; estimateGas: { + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + supportsInterface( _interfaceID: BytesLike, overrides?: CallOverrides @@ -165,6 +203,14 @@ export class ERC1155Metadata extends Contract { }; populateTransaction: { + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + supportsInterface( _interfaceID: BytesLike, overrides?: CallOverrides diff --git a/src/gen/typechain/ERC1155MetadataMock.d.ts b/src/gen/typechain/ERC1155MetadataMock.d.ts index 032c515..612995b 100644 --- a/src/gen/typechain/ERC1155MetadataMock.d.ts +++ b/src/gen/typechain/ERC1155MetadataMock.d.ts @@ -23,17 +23,10 @@ interface ERC1155MetadataMockInterface extends ethers.utils.Interface { functions: { "balanceOf(address,uint256)": FunctionFragment; "balanceOfBatch(address[],uint256[])": FunctionFragment; - "batchBurnMock(address,uint256[],uint256[])": FunctionFragment; - "batchMintMock(address,uint256[],uint256[],bytes)": FunctionFragment; - "burnMock(address,uint256,uint256)": FunctionFragment; - "getNonce(address)": FunctionFragment; + "baseURI()": FunctionFragment; "isApprovedForAll(address,address)": FunctionFragment; - "isValidSignature(address,bytes32,bytes,bytes)": FunctionFragment; "logURIsMock(uint256[])": FunctionFragment; - "metaSafeBatchTransferFrom(address,address,uint256[],uint256[],bool,bytes)": FunctionFragment; - "metaSafeTransferFrom(address,address,uint256,uint256,bool,bytes)": FunctionFragment; - "metaSetApprovalForAll(address,address,bool,bool,bytes)": FunctionFragment; - "mintMock(address,uint256,uint256,bytes)": FunctionFragment; + "name()": FunctionFragment; "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": FunctionFragment; "safeTransferFrom(address,address,uint256,uint256,bytes)": FunctionFragment; "setApprovalForAll(address,bool)": FunctionFragment; @@ -50,47 +43,16 @@ interface ERC1155MetadataMockInterface extends ethers.utils.Interface { functionFragment: "balanceOfBatch", values: [string[], BigNumberish[]] ): string; - encodeFunctionData( - functionFragment: "batchBurnMock", - values: [string, BigNumberish[], BigNumberish[]] - ): string; - encodeFunctionData( - functionFragment: "batchMintMock", - values: [string, BigNumberish[], BigNumberish[], BytesLike] - ): string; - encodeFunctionData( - functionFragment: "burnMock", - values: [string, BigNumberish, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "getNonce", values: [string]): string; + encodeFunctionData(functionFragment: "baseURI", values?: undefined): string; encodeFunctionData( functionFragment: "isApprovedForAll", values: [string, string] ): string; - encodeFunctionData( - functionFragment: "isValidSignature", - values: [string, BytesLike, BytesLike, BytesLike] - ): string; encodeFunctionData( functionFragment: "logURIsMock", values: [BigNumberish[]] ): string; - encodeFunctionData( - functionFragment: "metaSafeBatchTransferFrom", - values: [string, string, BigNumberish[], BigNumberish[], boolean, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "metaSafeTransferFrom", - values: [string, string, BigNumberish, BigNumberish, boolean, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "metaSetApprovalForAll", - values: [string, string, boolean, boolean, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "mintMock", - values: [string, BigNumberish, BigNumberish, BytesLike] - ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData( functionFragment: "safeBatchTransferFrom", values: [string, string, BigNumberish[], BigNumberish[], BytesLike] @@ -118,41 +80,16 @@ interface ERC1155MetadataMockInterface extends ethers.utils.Interface { functionFragment: "balanceOfBatch", data: BytesLike ): Result; - decodeFunctionResult( - functionFragment: "batchBurnMock", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "batchMintMock", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "burnMock", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "getNonce", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "baseURI", data: BytesLike): Result; decodeFunctionResult( functionFragment: "isApprovedForAll", data: BytesLike ): Result; - decodeFunctionResult( - functionFragment: "isValidSignature", - data: BytesLike - ): Result; decodeFunctionResult( functionFragment: "logURIsMock", data: BytesLike ): Result; - decodeFunctionResult( - functionFragment: "metaSafeBatchTransferFrom", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "metaSafeTransferFrom", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "metaSetApprovalForAll", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "mintMock", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult( functionFragment: "safeBatchTransferFrom", data: BytesLike @@ -177,14 +114,12 @@ interface ERC1155MetadataMockInterface extends ethers.utils.Interface { events: { "ApprovalForAll(address,address,bool)": EventFragment; - "NonceChange(address,uint256)": EventFragment; "TransferBatch(address,address,address,uint256[],uint256[])": EventFragment; "TransferSingle(address,address,address,uint256,uint256)": EventFragment; "URI(string,uint256)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "ApprovalForAll"): EventFragment; - getEvent(nameOrSignatureOrTopic: "NonceChange"): EventFragment; getEvent(nameOrSignatureOrTopic: "TransferBatch"): EventFragment; getEvent(nameOrSignatureOrTopic: "TransferSingle"): EventFragment; getEvent(nameOrSignatureOrTopic: "URI"): EventFragment; @@ -258,59 +193,9 @@ export class ERC1155MetadataMock extends Contract { overrides?: CallOverrides ): Promise<[BigNumber[]]>; - batchBurnMock( - _from: string, - _ids: BigNumberish[], - _values: BigNumberish[], - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "batchBurnMock(address,uint256[],uint256[])"( - _from: string, - _ids: BigNumberish[], - _values: BigNumberish[], - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - batchMintMock( - _to: string, - _ids: BigNumberish[], - _values: BigNumberish[], - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "batchMintMock(address,uint256[],uint256[],bytes)"( - _to: string, - _ids: BigNumberish[], - _values: BigNumberish[], - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - burnMock( - _from: string, - _id: BigNumberish, - _value: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "burnMock(address,uint256,uint256)"( - _from: string, - _id: BigNumberish, - _value: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - getNonce( - _signer: string, - overrides?: CallOverrides - ): Promise<[BigNumber] & { nonce: BigNumber }>; + baseURI(overrides?: CallOverrides): Promise<[string]>; - "getNonce(address)"( - _signer: string, - overrides?: CallOverrides - ): Promise<[BigNumber] & { nonce: BigNumber }>; + "baseURI()"(overrides?: CallOverrides): Promise<[string]>; isApprovedForAll( _owner: string, @@ -324,22 +209,6 @@ export class ERC1155MetadataMock extends Contract { overrides?: CallOverrides ): Promise<[boolean] & { isOperator: boolean }>; - isValidSignature( - _signerAddress: string, - _hash: BytesLike, - _data: BytesLike, - _sig: BytesLike, - overrides?: CallOverrides - ): Promise<[boolean] & { isValid: boolean }>; - - "isValidSignature(address,bytes32,bytes,bytes)"( - _signerAddress: string, - _hash: BytesLike, - _data: BytesLike, - _sig: BytesLike, - overrides?: CallOverrides - ): Promise<[boolean] & { isValid: boolean }>; - logURIsMock( _tokenIDs: BigNumberish[], overrides?: Overrides & { from?: string | Promise } @@ -350,79 +219,9 @@ export class ERC1155MetadataMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; - metaSafeBatchTransferFrom( - _from: string, - _to: string, - _ids: BigNumberish[], - _amounts: BigNumberish[], - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "metaSafeBatchTransferFrom(address,address,uint256[],uint256[],bool,bytes)"( - _from: string, - _to: string, - _ids: BigNumberish[], - _amounts: BigNumberish[], - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - metaSafeTransferFrom( - _from: string, - _to: string, - _id: BigNumberish, - _amount: BigNumberish, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "metaSafeTransferFrom(address,address,uint256,uint256,bool,bytes)"( - _from: string, - _to: string, - _id: BigNumberish, - _amount: BigNumberish, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - metaSetApprovalForAll( - _owner: string, - _operator: string, - _approved: boolean, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "metaSetApprovalForAll(address,address,bool,bool,bytes)"( - _owner: string, - _operator: string, - _approved: boolean, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - mintMock( - _to: string, - _id: BigNumberish, - _value: BigNumberish, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; + name(overrides?: CallOverrides): Promise<[string]>; - "mintMock(address,uint256,uint256,bytes)"( - _to: string, - _id: BigNumberish, - _value: BigNumberish, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; + "name()"(overrides?: CallOverrides): Promise<[string]>; safeBatchTransferFrom( _from: string, @@ -524,56 +323,9 @@ export class ERC1155MetadataMock extends Contract { overrides?: CallOverrides ): Promise; - batchBurnMock( - _from: string, - _ids: BigNumberish[], - _values: BigNumberish[], - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "batchBurnMock(address,uint256[],uint256[])"( - _from: string, - _ids: BigNumberish[], - _values: BigNumberish[], - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - batchMintMock( - _to: string, - _ids: BigNumberish[], - _values: BigNumberish[], - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "batchMintMock(address,uint256[],uint256[],bytes)"( - _to: string, - _ids: BigNumberish[], - _values: BigNumberish[], - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - burnMock( - _from: string, - _id: BigNumberish, - _value: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "burnMock(address,uint256,uint256)"( - _from: string, - _id: BigNumberish, - _value: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - getNonce(_signer: string, overrides?: CallOverrides): Promise; + baseURI(overrides?: CallOverrides): Promise; - "getNonce(address)"( - _signer: string, - overrides?: CallOverrides - ): Promise; + "baseURI()"(overrides?: CallOverrides): Promise; isApprovedForAll( _owner: string, @@ -587,22 +339,6 @@ export class ERC1155MetadataMock extends Contract { overrides?: CallOverrides ): Promise; - isValidSignature( - _signerAddress: string, - _hash: BytesLike, - _data: BytesLike, - _sig: BytesLike, - overrides?: CallOverrides - ): Promise; - - "isValidSignature(address,bytes32,bytes,bytes)"( - _signerAddress: string, - _hash: BytesLike, - _data: BytesLike, - _sig: BytesLike, - overrides?: CallOverrides - ): Promise; - logURIsMock( _tokenIDs: BigNumberish[], overrides?: Overrides & { from?: string | Promise } @@ -613,79 +349,9 @@ export class ERC1155MetadataMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; - metaSafeBatchTransferFrom( - _from: string, - _to: string, - _ids: BigNumberish[], - _amounts: BigNumberish[], - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "metaSafeBatchTransferFrom(address,address,uint256[],uint256[],bool,bytes)"( - _from: string, - _to: string, - _ids: BigNumberish[], - _amounts: BigNumberish[], - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - metaSafeTransferFrom( - _from: string, - _to: string, - _id: BigNumberish, - _amount: BigNumberish, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "metaSafeTransferFrom(address,address,uint256,uint256,bool,bytes)"( - _from: string, - _to: string, - _id: BigNumberish, - _amount: BigNumberish, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - metaSetApprovalForAll( - _owner: string, - _operator: string, - _approved: boolean, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "metaSetApprovalForAll(address,address,bool,bool,bytes)"( - _owner: string, - _operator: string, - _approved: boolean, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - mintMock( - _to: string, - _id: BigNumberish, - _value: BigNumberish, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; + name(overrides?: CallOverrides): Promise; - "mintMock(address,uint256,uint256,bytes)"( - _to: string, - _id: BigNumberish, - _value: BigNumberish, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; + "name()"(overrides?: CallOverrides): Promise; safeBatchTransferFrom( _from: string, @@ -784,174 +450,41 @@ export class ERC1155MetadataMock extends Contract { overrides?: CallOverrides ): Promise; - batchBurnMock( - _from: string, - _ids: BigNumberish[], - _values: BigNumberish[], + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + + isApprovedForAll( + _owner: string, + _operator: string, + overrides?: CallOverrides + ): Promise; + + "isApprovedForAll(address,address)"( + _owner: string, + _operator: string, + overrides?: CallOverrides + ): Promise; + + logURIsMock( + _tokenIDs: BigNumberish[], overrides?: CallOverrides ): Promise; - "batchBurnMock(address,uint256[],uint256[])"( - _from: string, - _ids: BigNumberish[], - _values: BigNumberish[], + "logURIsMock(uint256[])"( + _tokenIDs: BigNumberish[], overrides?: CallOverrides ): Promise; - batchMintMock( + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + + safeBatchTransferFrom( + _from: string, _to: string, _ids: BigNumberish[], - _values: BigNumberish[], - _data: BytesLike, - overrides?: CallOverrides - ): Promise; - - "batchMintMock(address,uint256[],uint256[],bytes)"( - _to: string, - _ids: BigNumberish[], - _values: BigNumberish[], - _data: BytesLike, - overrides?: CallOverrides - ): Promise; - - burnMock( - _from: string, - _id: BigNumberish, - _value: BigNumberish, - overrides?: CallOverrides - ): Promise; - - "burnMock(address,uint256,uint256)"( - _from: string, - _id: BigNumberish, - _value: BigNumberish, - overrides?: CallOverrides - ): Promise; - - getNonce(_signer: string, overrides?: CallOverrides): Promise; - - "getNonce(address)"( - _signer: string, - overrides?: CallOverrides - ): Promise; - - isApprovedForAll( - _owner: string, - _operator: string, - overrides?: CallOverrides - ): Promise; - - "isApprovedForAll(address,address)"( - _owner: string, - _operator: string, - overrides?: CallOverrides - ): Promise; - - isValidSignature( - _signerAddress: string, - _hash: BytesLike, - _data: BytesLike, - _sig: BytesLike, - overrides?: CallOverrides - ): Promise; - - "isValidSignature(address,bytes32,bytes,bytes)"( - _signerAddress: string, - _hash: BytesLike, - _data: BytesLike, - _sig: BytesLike, - overrides?: CallOverrides - ): Promise; - - logURIsMock( - _tokenIDs: BigNumberish[], - overrides?: CallOverrides - ): Promise; - - "logURIsMock(uint256[])"( - _tokenIDs: BigNumberish[], - overrides?: CallOverrides - ): Promise; - - metaSafeBatchTransferFrom( - _from: string, - _to: string, - _ids: BigNumberish[], - _amounts: BigNumberish[], - _isGasFee: boolean, - _data: BytesLike, - overrides?: CallOverrides - ): Promise; - - "metaSafeBatchTransferFrom(address,address,uint256[],uint256[],bool,bytes)"( - _from: string, - _to: string, - _ids: BigNumberish[], - _amounts: BigNumberish[], - _isGasFee: boolean, - _data: BytesLike, - overrides?: CallOverrides - ): Promise; - - metaSafeTransferFrom( - _from: string, - _to: string, - _id: BigNumberish, - _amount: BigNumberish, - _isGasFee: boolean, - _data: BytesLike, - overrides?: CallOverrides - ): Promise; - - "metaSafeTransferFrom(address,address,uint256,uint256,bool,bytes)"( - _from: string, - _to: string, - _id: BigNumberish, - _amount: BigNumberish, - _isGasFee: boolean, - _data: BytesLike, - overrides?: CallOverrides - ): Promise; - - metaSetApprovalForAll( - _owner: string, - _operator: string, - _approved: boolean, - _isGasFee: boolean, - _data: BytesLike, - overrides?: CallOverrides - ): Promise; - - "metaSetApprovalForAll(address,address,bool,bool,bytes)"( - _owner: string, - _operator: string, - _approved: boolean, - _isGasFee: boolean, - _data: BytesLike, - overrides?: CallOverrides - ): Promise; - - mintMock( - _to: string, - _id: BigNumberish, - _value: BigNumberish, - _data: BytesLike, - overrides?: CallOverrides - ): Promise; - - "mintMock(address,uint256,uint256,bytes)"( - _to: string, - _id: BigNumberish, - _value: BigNumberish, - _data: BytesLike, - overrides?: CallOverrides - ): Promise; - - safeBatchTransferFrom( - _from: string, - _to: string, - _ids: BigNumberish[], - _amounts: BigNumberish[], + _amounts: BigNumberish[], _data: BytesLike, overrides?: CallOverrides ): Promise; @@ -1033,14 +566,6 @@ export class ERC1155MetadataMock extends Contract { { _owner: string; _operator: string; _approved: boolean } >; - NonceChange( - signer: string | null, - newNonce: null - ): TypedEventFilter< - [string, BigNumber], - { signer: string; newNonce: BigNumber } - >; - TransferBatch( _operator: string | null, _from: string | null, @@ -1106,56 +631,9 @@ export class ERC1155MetadataMock extends Contract { overrides?: CallOverrides ): Promise; - batchBurnMock( - _from: string, - _ids: BigNumberish[], - _values: BigNumberish[], - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "batchBurnMock(address,uint256[],uint256[])"( - _from: string, - _ids: BigNumberish[], - _values: BigNumberish[], - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - batchMintMock( - _to: string, - _ids: BigNumberish[], - _values: BigNumberish[], - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; + baseURI(overrides?: CallOverrides): Promise; - "batchMintMock(address,uint256[],uint256[],bytes)"( - _to: string, - _ids: BigNumberish[], - _values: BigNumberish[], - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - burnMock( - _from: string, - _id: BigNumberish, - _value: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "burnMock(address,uint256,uint256)"( - _from: string, - _id: BigNumberish, - _value: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - getNonce(_signer: string, overrides?: CallOverrides): Promise; - - "getNonce(address)"( - _signer: string, - overrides?: CallOverrides - ): Promise; + "baseURI()"(overrides?: CallOverrides): Promise; isApprovedForAll( _owner: string, @@ -1169,22 +647,6 @@ export class ERC1155MetadataMock extends Contract { overrides?: CallOverrides ): Promise; - isValidSignature( - _signerAddress: string, - _hash: BytesLike, - _data: BytesLike, - _sig: BytesLike, - overrides?: CallOverrides - ): Promise; - - "isValidSignature(address,bytes32,bytes,bytes)"( - _signerAddress: string, - _hash: BytesLike, - _data: BytesLike, - _sig: BytesLike, - overrides?: CallOverrides - ): Promise; - logURIsMock( _tokenIDs: BigNumberish[], overrides?: Overrides & { from?: string | Promise } @@ -1195,79 +657,9 @@ export class ERC1155MetadataMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; - metaSafeBatchTransferFrom( - _from: string, - _to: string, - _ids: BigNumberish[], - _amounts: BigNumberish[], - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "metaSafeBatchTransferFrom(address,address,uint256[],uint256[],bool,bytes)"( - _from: string, - _to: string, - _ids: BigNumberish[], - _amounts: BigNumberish[], - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - metaSafeTransferFrom( - _from: string, - _to: string, - _id: BigNumberish, - _amount: BigNumberish, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "metaSafeTransferFrom(address,address,uint256,uint256,bool,bytes)"( - _from: string, - _to: string, - _id: BigNumberish, - _amount: BigNumberish, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; + name(overrides?: CallOverrides): Promise; - metaSetApprovalForAll( - _owner: string, - _operator: string, - _approved: boolean, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "metaSetApprovalForAll(address,address,bool,bool,bytes)"( - _owner: string, - _operator: string, - _approved: boolean, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - mintMock( - _to: string, - _id: BigNumberish, - _value: BigNumberish, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "mintMock(address,uint256,uint256,bytes)"( - _to: string, - _id: BigNumberish, - _value: BigNumberish, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; + "name()"(overrides?: CallOverrides): Promise; safeBatchTransferFrom( _from: string, @@ -1370,59 +762,9 @@ export class ERC1155MetadataMock extends Contract { overrides?: CallOverrides ): Promise; - batchBurnMock( - _from: string, - _ids: BigNumberish[], - _values: BigNumberish[], - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "batchBurnMock(address,uint256[],uint256[])"( - _from: string, - _ids: BigNumberish[], - _values: BigNumberish[], - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - batchMintMock( - _to: string, - _ids: BigNumberish[], - _values: BigNumberish[], - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "batchMintMock(address,uint256[],uint256[],bytes)"( - _to: string, - _ids: BigNumberish[], - _values: BigNumberish[], - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - burnMock( - _from: string, - _id: BigNumberish, - _value: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "burnMock(address,uint256,uint256)"( - _from: string, - _id: BigNumberish, - _value: BigNumberish, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - getNonce( - _signer: string, - overrides?: CallOverrides - ): Promise; + baseURI(overrides?: CallOverrides): Promise; - "getNonce(address)"( - _signer: string, - overrides?: CallOverrides - ): Promise; + "baseURI()"(overrides?: CallOverrides): Promise; isApprovedForAll( _owner: string, @@ -1436,22 +778,6 @@ export class ERC1155MetadataMock extends Contract { overrides?: CallOverrides ): Promise; - isValidSignature( - _signerAddress: string, - _hash: BytesLike, - _data: BytesLike, - _sig: BytesLike, - overrides?: CallOverrides - ): Promise; - - "isValidSignature(address,bytes32,bytes,bytes)"( - _signerAddress: string, - _hash: BytesLike, - _data: BytesLike, - _sig: BytesLike, - overrides?: CallOverrides - ): Promise; - logURIsMock( _tokenIDs: BigNumberish[], overrides?: Overrides & { from?: string | Promise } @@ -1462,79 +788,9 @@ export class ERC1155MetadataMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; - metaSafeBatchTransferFrom( - _from: string, - _to: string, - _ids: BigNumberish[], - _amounts: BigNumberish[], - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "metaSafeBatchTransferFrom(address,address,uint256[],uint256[],bool,bytes)"( - _from: string, - _to: string, - _ids: BigNumberish[], - _amounts: BigNumberish[], - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; + name(overrides?: CallOverrides): Promise; - metaSafeTransferFrom( - _from: string, - _to: string, - _id: BigNumberish, - _amount: BigNumberish, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "metaSafeTransferFrom(address,address,uint256,uint256,bool,bytes)"( - _from: string, - _to: string, - _id: BigNumberish, - _amount: BigNumberish, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - metaSetApprovalForAll( - _owner: string, - _operator: string, - _approved: boolean, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "metaSetApprovalForAll(address,address,bool,bool,bytes)"( - _owner: string, - _operator: string, - _approved: boolean, - _isGasFee: boolean, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - mintMock( - _to: string, - _id: BigNumberish, - _value: BigNumberish, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; - - "mintMock(address,uint256,uint256,bytes)"( - _to: string, - _id: BigNumberish, - _value: BigNumberish, - _data: BytesLike, - overrides?: Overrides & { from?: string | Promise } - ): Promise; + "name()"(overrides?: CallOverrides): Promise; safeBatchTransferFrom( _from: string, diff --git a/src/gen/typechain/ERC1155MintBurnMock.d.ts b/src/gen/typechain/ERC1155MintBurnMock.d.ts index 184464d..8900273 100644 --- a/src/gen/typechain/ERC1155MintBurnMock.d.ts +++ b/src/gen/typechain/ERC1155MintBurnMock.d.ts @@ -23,11 +23,13 @@ interface ERC1155MintBurnMockInterface extends ethers.utils.Interface { functions: { "balanceOf(address,uint256)": FunctionFragment; "balanceOfBatch(address[],uint256[])": FunctionFragment; + "baseURI()": FunctionFragment; "batchBurnMock(address,uint256[],uint256[])": FunctionFragment; "batchMintMock(address,uint256[],uint256[],bytes)": FunctionFragment; "burnMock(address,uint256,uint256)": FunctionFragment; "isApprovedForAll(address,address)": FunctionFragment; "mintMock(address,uint256,uint256,bytes)": FunctionFragment; + "name()": FunctionFragment; "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": FunctionFragment; "safeTransferFrom(address,address,uint256,uint256,bytes)": FunctionFragment; "setApprovalForAll(address,bool)": FunctionFragment; @@ -43,6 +45,7 @@ interface ERC1155MintBurnMockInterface extends ethers.utils.Interface { functionFragment: "balanceOfBatch", values: [string[], BigNumberish[]] ): string; + encodeFunctionData(functionFragment: "baseURI", values?: undefined): string; encodeFunctionData( functionFragment: "batchBurnMock", values: [string, BigNumberish[], BigNumberish[]] @@ -63,6 +66,7 @@ interface ERC1155MintBurnMockInterface extends ethers.utils.Interface { functionFragment: "mintMock", values: [string, BigNumberish, BigNumberish, BytesLike] ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData( functionFragment: "safeBatchTransferFrom", values: [string, string, BigNumberish[], BigNumberish[], BytesLike] @@ -86,6 +90,7 @@ interface ERC1155MintBurnMockInterface extends ethers.utils.Interface { functionFragment: "balanceOfBatch", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "baseURI", data: BytesLike): Result; decodeFunctionResult( functionFragment: "batchBurnMock", data: BytesLike @@ -100,6 +105,7 @@ interface ERC1155MintBurnMockInterface extends ethers.utils.Interface { data: BytesLike ): Result; decodeFunctionResult(functionFragment: "mintMock", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult( functionFragment: "safeBatchTransferFrom", data: BytesLike @@ -199,6 +205,10 @@ export class ERC1155MintBurnMock extends Contract { overrides?: CallOverrides ): Promise<[BigNumber[]]>; + baseURI(overrides?: CallOverrides): Promise<[string]>; + + "baseURI()"(overrides?: CallOverrides): Promise<[string]>; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -271,6 +281,10 @@ export class ERC1155MintBurnMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise<[string]>; + + "name()"(overrides?: CallOverrides): Promise<[string]>; + safeBatchTransferFrom( _from: string, _to: string, @@ -361,6 +375,10 @@ export class ERC1155MintBurnMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -433,6 +451,10 @@ export class ERC1155MintBurnMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, @@ -520,6 +542,10 @@ export class ERC1155MintBurnMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -592,6 +618,10 @@ export class ERC1155MintBurnMock extends Contract { overrides?: CallOverrides ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, @@ -733,6 +763,10 @@ export class ERC1155MintBurnMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -805,6 +839,10 @@ export class ERC1155MintBurnMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, @@ -896,6 +934,10 @@ export class ERC1155MintBurnMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -968,6 +1010,10 @@ export class ERC1155MintBurnMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, diff --git a/src/gen/typechain/ERC1155MintBurnPackedBalanceMock.d.ts b/src/gen/typechain/ERC1155MintBurnPackedBalanceMock.d.ts index 5b43948..7d64d7f 100644 --- a/src/gen/typechain/ERC1155MintBurnPackedBalanceMock.d.ts +++ b/src/gen/typechain/ERC1155MintBurnPackedBalanceMock.d.ts @@ -24,6 +24,7 @@ interface ERC1155MintBurnPackedBalanceMockInterface functions: { "balanceOf(address,uint256)": FunctionFragment; "balanceOfBatch(address[],uint256[])": FunctionFragment; + "baseURI()": FunctionFragment; "batchBurnMock(address,uint256[],uint256[])": FunctionFragment; "batchMintMock(address,uint256[],uint256[],bytes)": FunctionFragment; "burnMock(address,uint256,uint256)": FunctionFragment; @@ -31,6 +32,7 @@ interface ERC1155MintBurnPackedBalanceMockInterface "getValueInBin(uint256,uint256)": FunctionFragment; "isApprovedForAll(address,address)": FunctionFragment; "mintMock(address,uint256,uint256,bytes)": FunctionFragment; + "name()": FunctionFragment; "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": FunctionFragment; "safeTransferFrom(address,address,uint256,uint256,bytes)": FunctionFragment; "setApprovalForAll(address,bool)": FunctionFragment; @@ -46,6 +48,7 @@ interface ERC1155MintBurnPackedBalanceMockInterface functionFragment: "balanceOfBatch", values: [string[], BigNumberish[]] ): string; + encodeFunctionData(functionFragment: "baseURI", values?: undefined): string; encodeFunctionData( functionFragment: "batchBurnMock", values: [string, BigNumberish[], BigNumberish[]] @@ -74,6 +77,7 @@ interface ERC1155MintBurnPackedBalanceMockInterface functionFragment: "mintMock", values: [string, BigNumberish, BigNumberish, BytesLike] ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData( functionFragment: "safeBatchTransferFrom", values: [string, string, BigNumberish[], BigNumberish[], BytesLike] @@ -97,6 +101,7 @@ interface ERC1155MintBurnPackedBalanceMockInterface functionFragment: "balanceOfBatch", data: BytesLike ): Result; + decodeFunctionResult(functionFragment: "baseURI", data: BytesLike): Result; decodeFunctionResult( functionFragment: "batchBurnMock", data: BytesLike @@ -119,6 +124,7 @@ interface ERC1155MintBurnPackedBalanceMockInterface data: BytesLike ): Result; decodeFunctionResult(functionFragment: "mintMock", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult( functionFragment: "safeBatchTransferFrom", data: BytesLike @@ -218,6 +224,10 @@ export class ERC1155MintBurnPackedBalanceMock extends Contract { overrides?: CallOverrides ): Promise<[BigNumber[]]>; + baseURI(overrides?: CallOverrides): Promise<[string]>; + + "baseURI()"(overrides?: CallOverrides): Promise<[string]>; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -312,6 +322,10 @@ export class ERC1155MintBurnPackedBalanceMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise<[string]>; + + "name()"(overrides?: CallOverrides): Promise<[string]>; + safeBatchTransferFrom( _from: string, _to: string, @@ -402,6 +416,10 @@ export class ERC1155MintBurnPackedBalanceMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -496,6 +514,10 @@ export class ERC1155MintBurnPackedBalanceMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, @@ -583,6 +605,10 @@ export class ERC1155MintBurnPackedBalanceMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -677,6 +703,10 @@ export class ERC1155MintBurnPackedBalanceMock extends Contract { overrides?: CallOverrides ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, @@ -818,6 +848,10 @@ export class ERC1155MintBurnPackedBalanceMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -912,6 +946,10 @@ export class ERC1155MintBurnPackedBalanceMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, @@ -1003,6 +1041,10 @@ export class ERC1155MintBurnPackedBalanceMock extends Contract { overrides?: CallOverrides ): Promise; + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + batchBurnMock( _from: string, _ids: BigNumberish[], @@ -1097,6 +1139,10 @@ export class ERC1155MintBurnPackedBalanceMock extends Contract { overrides?: Overrides & { from?: string | Promise } ): Promise; + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + safeBatchTransferFrom( _from: string, _to: string, diff --git a/src/gen/typechain/ERC2981Global.d.ts b/src/gen/typechain/ERC2981Global.d.ts new file mode 100644 index 0000000..106e8a0 --- /dev/null +++ b/src/gen/typechain/ERC2981Global.d.ts @@ -0,0 +1,277 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + Contract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface ERC2981GlobalInterface extends ethers.utils.Interface { + functions: { + "globalRoyaltyInfo()": FunctionFragment; + "royaltyInfo(uint256,uint256)": FunctionFragment; + "supportsInterface(bytes4)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "globalRoyaltyInfo", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "royaltyInfo", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "globalRoyaltyInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "royaltyInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + + events: {}; +} + +export class ERC2981Global extends Contract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: ERC2981GlobalInterface; + + functions: { + globalRoyaltyInfo( + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; feeBasisPoints: BigNumber } + >; + + "globalRoyaltyInfo()"( + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; feeBasisPoints: BigNumber } + >; + + royaltyInfo( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + "royaltyInfo(uint256,uint256)"( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + supportsInterface( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + "supportsInterface(bytes4)"( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + }; + + globalRoyaltyInfo( + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; feeBasisPoints: BigNumber } + >; + + "globalRoyaltyInfo()"( + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; feeBasisPoints: BigNumber } + >; + + royaltyInfo( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + "royaltyInfo(uint256,uint256)"( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + supportsInterface( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + + "supportsInterface(bytes4)"( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + globalRoyaltyInfo( + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; feeBasisPoints: BigNumber } + >; + + "globalRoyaltyInfo()"( + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; feeBasisPoints: BigNumber } + >; + + royaltyInfo( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + "royaltyInfo(uint256,uint256)"( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + supportsInterface( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + + "supportsInterface(bytes4)"( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + globalRoyaltyInfo(overrides?: CallOverrides): Promise; + + "globalRoyaltyInfo()"(overrides?: CallOverrides): Promise; + + royaltyInfo( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "royaltyInfo(uint256,uint256)"( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise; + + supportsInterface( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + + "supportsInterface(bytes4)"( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + globalRoyaltyInfo(overrides?: CallOverrides): Promise; + + "globalRoyaltyInfo()"( + overrides?: CallOverrides + ): Promise; + + royaltyInfo( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "royaltyInfo(uint256,uint256)"( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise; + + supportsInterface( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + + "supportsInterface(bytes4)"( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/gen/typechain/ERC2981GlobalMock.d.ts b/src/gen/typechain/ERC2981GlobalMock.d.ts new file mode 100644 index 0000000..e6ce374 --- /dev/null +++ b/src/gen/typechain/ERC2981GlobalMock.d.ts @@ -0,0 +1,1290 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + Contract, + ContractTransaction, + Overrides, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface ERC2981GlobalMockInterface extends ethers.utils.Interface { + functions: { + "balanceOf(address,uint256)": FunctionFragment; + "balanceOfBatch(address[],uint256[])": FunctionFragment; + "baseURI()": FunctionFragment; + "batchBurnMock(address,uint256[],uint256[])": FunctionFragment; + "batchMintMock(address,uint256[],uint256[],bytes)": FunctionFragment; + "burnMock(address,uint256,uint256)": FunctionFragment; + "globalRoyaltyInfo()": FunctionFragment; + "isApprovedForAll(address,address)": FunctionFragment; + "mintMock(address,uint256,uint256,bytes)": FunctionFragment; + "name()": FunctionFragment; + "royaltyInfo(uint256,uint256)": FunctionFragment; + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": FunctionFragment; + "safeTransferFrom(address,address,uint256,uint256,bytes)": FunctionFragment; + "setApprovalForAll(address,bool)": FunctionFragment; + "setGlobalRoyaltyInfo(address,uint256)": FunctionFragment; + "supportsInterface(bytes4)": FunctionFragment; + "uri(uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "balanceOf", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOfBatch", + values: [string[], BigNumberish[]] + ): string; + encodeFunctionData(functionFragment: "baseURI", values?: undefined): string; + encodeFunctionData( + functionFragment: "batchBurnMock", + values: [string, BigNumberish[], BigNumberish[]] + ): string; + encodeFunctionData( + functionFragment: "batchMintMock", + values: [string, BigNumberish[], BigNumberish[], BytesLike] + ): string; + encodeFunctionData( + functionFragment: "burnMock", + values: [string, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "globalRoyaltyInfo", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "isApprovedForAll", + values: [string, string] + ): string; + encodeFunctionData( + functionFragment: "mintMock", + values: [string, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData( + functionFragment: "royaltyInfo", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "safeBatchTransferFrom", + values: [string, string, BigNumberish[], BigNumberish[], BytesLike] + ): string; + encodeFunctionData( + functionFragment: "safeTransferFrom", + values: [string, string, BigNumberish, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setApprovalForAll", + values: [string, boolean] + ): string; + encodeFunctionData( + functionFragment: "setGlobalRoyaltyInfo", + values: [string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + encodeFunctionData(functionFragment: "uri", values: [BigNumberish]): string; + + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "balanceOfBatch", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "baseURI", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "batchBurnMock", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "batchMintMock", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "burnMock", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "globalRoyaltyInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "isApprovedForAll", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "mintMock", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "royaltyInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "safeBatchTransferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "safeTransferFrom", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setApprovalForAll", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setGlobalRoyaltyInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "uri", data: BytesLike): Result; + + events: { + "ApprovalForAll(address,address,bool)": EventFragment; + "TransferBatch(address,address,address,uint256[],uint256[])": EventFragment; + "TransferSingle(address,address,address,uint256,uint256)": EventFragment; + "URI(string,uint256)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "ApprovalForAll"): EventFragment; + getEvent(nameOrSignatureOrTopic: "TransferBatch"): EventFragment; + getEvent(nameOrSignatureOrTopic: "TransferSingle"): EventFragment; + getEvent(nameOrSignatureOrTopic: "URI"): EventFragment; +} + +export class ERC2981GlobalMock extends Contract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: ERC2981GlobalMockInterface; + + functions: { + balanceOf( + _owner: string, + _id: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + "balanceOf(address,uint256)"( + _owner: string, + _id: BigNumberish, + overrides?: CallOverrides + ): Promise<[BigNumber]>; + + balanceOfBatch( + _owners: string[], + _ids: BigNumberish[], + overrides?: CallOverrides + ): Promise<[BigNumber[]]>; + + "balanceOfBatch(address[],uint256[])"( + _owners: string[], + _ids: BigNumberish[], + overrides?: CallOverrides + ): Promise<[BigNumber[]]>; + + baseURI(overrides?: CallOverrides): Promise<[string]>; + + "baseURI()"(overrides?: CallOverrides): Promise<[string]>; + + batchBurnMock( + _from: string, + _ids: BigNumberish[], + _values: BigNumberish[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "batchBurnMock(address,uint256[],uint256[])"( + _from: string, + _ids: BigNumberish[], + _values: BigNumberish[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + batchMintMock( + _to: string, + _ids: BigNumberish[], + _values: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "batchMintMock(address,uint256[],uint256[],bytes)"( + _to: string, + _ids: BigNumberish[], + _values: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + burnMock( + _from: string, + _id: BigNumberish, + _value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "burnMock(address,uint256,uint256)"( + _from: string, + _id: BigNumberish, + _value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + globalRoyaltyInfo( + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; feeBasisPoints: BigNumber } + >; + + "globalRoyaltyInfo()"( + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; feeBasisPoints: BigNumber } + >; + + isApprovedForAll( + _owner: string, + _operator: string, + overrides?: CallOverrides + ): Promise<[boolean] & { isOperator: boolean }>; + + "isApprovedForAll(address,address)"( + _owner: string, + _operator: string, + overrides?: CallOverrides + ): Promise<[boolean] & { isOperator: boolean }>; + + mintMock( + _to: string, + _id: BigNumberish, + _value: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "mintMock(address,uint256,uint256,bytes)"( + _to: string, + _id: BigNumberish, + _value: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise<[string]>; + + "name()"(overrides?: CallOverrides): Promise<[string]>; + + royaltyInfo( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + "royaltyInfo(uint256,uint256)"( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + safeBatchTransferFrom( + _from: string, + _to: string, + _ids: BigNumberish[], + _amounts: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)"( + _from: string, + _to: string, + _ids: BigNumberish[], + _amounts: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + safeTransferFrom( + _from: string, + _to: string, + _id: BigNumberish, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,uint256,bytes)"( + _from: string, + _to: string, + _id: BigNumberish, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + _operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "setApprovalForAll(address,bool)"( + _operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setGlobalRoyaltyInfo( + _recipient: string, + _royaltyBasisPoints: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "setGlobalRoyaltyInfo(address,uint256)"( + _recipient: string, + _royaltyBasisPoints: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + "supportsInterface(bytes4)"( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + uri(_id: BigNumberish, overrides?: CallOverrides): Promise<[string]>; + + "uri(uint256)"( + _id: BigNumberish, + overrides?: CallOverrides + ): Promise<[string]>; + }; + + balanceOf( + _owner: string, + _id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "balanceOf(address,uint256)"( + _owner: string, + _id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOfBatch( + _owners: string[], + _ids: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + "balanceOfBatch(address[],uint256[])"( + _owners: string[], + _ids: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + + batchBurnMock( + _from: string, + _ids: BigNumberish[], + _values: BigNumberish[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "batchBurnMock(address,uint256[],uint256[])"( + _from: string, + _ids: BigNumberish[], + _values: BigNumberish[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + batchMintMock( + _to: string, + _ids: BigNumberish[], + _values: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "batchMintMock(address,uint256[],uint256[],bytes)"( + _to: string, + _ids: BigNumberish[], + _values: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + burnMock( + _from: string, + _id: BigNumberish, + _value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "burnMock(address,uint256,uint256)"( + _from: string, + _id: BigNumberish, + _value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + globalRoyaltyInfo( + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; feeBasisPoints: BigNumber } + >; + + "globalRoyaltyInfo()"( + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; feeBasisPoints: BigNumber } + >; + + isApprovedForAll( + _owner: string, + _operator: string, + overrides?: CallOverrides + ): Promise; + + "isApprovedForAll(address,address)"( + _owner: string, + _operator: string, + overrides?: CallOverrides + ): Promise; + + mintMock( + _to: string, + _id: BigNumberish, + _value: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "mintMock(address,uint256,uint256,bytes)"( + _to: string, + _id: BigNumberish, + _value: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + + royaltyInfo( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + "royaltyInfo(uint256,uint256)"( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + safeBatchTransferFrom( + _from: string, + _to: string, + _ids: BigNumberish[], + _amounts: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)"( + _from: string, + _to: string, + _ids: BigNumberish[], + _amounts: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + safeTransferFrom( + _from: string, + _to: string, + _id: BigNumberish, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,uint256,bytes)"( + _from: string, + _to: string, + _id: BigNumberish, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + _operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "setApprovalForAll(address,bool)"( + _operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setGlobalRoyaltyInfo( + _recipient: string, + _royaltyBasisPoints: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "setGlobalRoyaltyInfo(address,uint256)"( + _recipient: string, + _royaltyBasisPoints: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + + "supportsInterface(bytes4)"( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + + uri(_id: BigNumberish, overrides?: CallOverrides): Promise; + + "uri(uint256)"(_id: BigNumberish, overrides?: CallOverrides): Promise; + + callStatic: { + balanceOf( + _owner: string, + _id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "balanceOf(address,uint256)"( + _owner: string, + _id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOfBatch( + _owners: string[], + _ids: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + "balanceOfBatch(address[],uint256[])"( + _owners: string[], + _ids: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + + batchBurnMock( + _from: string, + _ids: BigNumberish[], + _values: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + "batchBurnMock(address,uint256[],uint256[])"( + _from: string, + _ids: BigNumberish[], + _values: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + batchMintMock( + _to: string, + _ids: BigNumberish[], + _values: BigNumberish[], + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + "batchMintMock(address,uint256[],uint256[],bytes)"( + _to: string, + _ids: BigNumberish[], + _values: BigNumberish[], + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + burnMock( + _from: string, + _id: BigNumberish, + _value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "burnMock(address,uint256,uint256)"( + _from: string, + _id: BigNumberish, + _value: BigNumberish, + overrides?: CallOverrides + ): Promise; + + globalRoyaltyInfo( + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; feeBasisPoints: BigNumber } + >; + + "globalRoyaltyInfo()"( + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; feeBasisPoints: BigNumber } + >; + + isApprovedForAll( + _owner: string, + _operator: string, + overrides?: CallOverrides + ): Promise; + + "isApprovedForAll(address,address)"( + _owner: string, + _operator: string, + overrides?: CallOverrides + ): Promise; + + mintMock( + _to: string, + _id: BigNumberish, + _value: BigNumberish, + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + "mintMock(address,uint256,uint256,bytes)"( + _to: string, + _id: BigNumberish, + _value: BigNumberish, + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + + royaltyInfo( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + "royaltyInfo(uint256,uint256)"( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + safeBatchTransferFrom( + _from: string, + _to: string, + _ids: BigNumberish[], + _amounts: BigNumberish[], + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)"( + _from: string, + _to: string, + _ids: BigNumberish[], + _amounts: BigNumberish[], + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + safeTransferFrom( + _from: string, + _to: string, + _id: BigNumberish, + _amount: BigNumberish, + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + "safeTransferFrom(address,address,uint256,uint256,bytes)"( + _from: string, + _to: string, + _id: BigNumberish, + _amount: BigNumberish, + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + setApprovalForAll( + _operator: string, + _approved: boolean, + overrides?: CallOverrides + ): Promise; + + "setApprovalForAll(address,bool)"( + _operator: string, + _approved: boolean, + overrides?: CallOverrides + ): Promise; + + setGlobalRoyaltyInfo( + _recipient: string, + _royaltyBasisPoints: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "setGlobalRoyaltyInfo(address,uint256)"( + _recipient: string, + _royaltyBasisPoints: BigNumberish, + overrides?: CallOverrides + ): Promise; + + supportsInterface( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + + "supportsInterface(bytes4)"( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + + uri(_id: BigNumberish, overrides?: CallOverrides): Promise; + + "uri(uint256)"( + _id: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + ApprovalForAll( + _owner: string | null, + _operator: string | null, + _approved: null + ): TypedEventFilter< + [string, string, boolean], + { _owner: string; _operator: string; _approved: boolean } + >; + + TransferBatch( + _operator: string | null, + _from: string | null, + _to: string | null, + _ids: null, + _amounts: null + ): TypedEventFilter< + [string, string, string, BigNumber[], BigNumber[]], + { + _operator: string; + _from: string; + _to: string; + _ids: BigNumber[]; + _amounts: BigNumber[]; + } + >; + + TransferSingle( + _operator: string | null, + _from: string | null, + _to: string | null, + _id: null, + _amount: null + ): TypedEventFilter< + [string, string, string, BigNumber, BigNumber], + { + _operator: string; + _from: string; + _to: string; + _id: BigNumber; + _amount: BigNumber; + } + >; + + URI( + _uri: null, + _id: BigNumberish | null + ): TypedEventFilter<[string, BigNumber], { _uri: string; _id: BigNumber }>; + }; + + estimateGas: { + balanceOf( + _owner: string, + _id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "balanceOf(address,uint256)"( + _owner: string, + _id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOfBatch( + _owners: string[], + _ids: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + "balanceOfBatch(address[],uint256[])"( + _owners: string[], + _ids: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + + batchBurnMock( + _from: string, + _ids: BigNumberish[], + _values: BigNumberish[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "batchBurnMock(address,uint256[],uint256[])"( + _from: string, + _ids: BigNumberish[], + _values: BigNumberish[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + batchMintMock( + _to: string, + _ids: BigNumberish[], + _values: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "batchMintMock(address,uint256[],uint256[],bytes)"( + _to: string, + _ids: BigNumberish[], + _values: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + burnMock( + _from: string, + _id: BigNumberish, + _value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "burnMock(address,uint256,uint256)"( + _from: string, + _id: BigNumberish, + _value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + globalRoyaltyInfo(overrides?: CallOverrides): Promise; + + "globalRoyaltyInfo()"(overrides?: CallOverrides): Promise; + + isApprovedForAll( + _owner: string, + _operator: string, + overrides?: CallOverrides + ): Promise; + + "isApprovedForAll(address,address)"( + _owner: string, + _operator: string, + overrides?: CallOverrides + ): Promise; + + mintMock( + _to: string, + _id: BigNumberish, + _value: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "mintMock(address,uint256,uint256,bytes)"( + _to: string, + _id: BigNumberish, + _value: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + + royaltyInfo( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "royaltyInfo(uint256,uint256)"( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise; + + safeBatchTransferFrom( + _from: string, + _to: string, + _ids: BigNumberish[], + _amounts: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)"( + _from: string, + _to: string, + _ids: BigNumberish[], + _amounts: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + safeTransferFrom( + _from: string, + _to: string, + _id: BigNumberish, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,uint256,bytes)"( + _from: string, + _to: string, + _id: BigNumberish, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + _operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "setApprovalForAll(address,bool)"( + _operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setGlobalRoyaltyInfo( + _recipient: string, + _royaltyBasisPoints: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "setGlobalRoyaltyInfo(address,uint256)"( + _recipient: string, + _royaltyBasisPoints: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + + "supportsInterface(bytes4)"( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + + uri(_id: BigNumberish, overrides?: CallOverrides): Promise; + + "uri(uint256)"( + _id: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + balanceOf( + _owner: string, + _id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "balanceOf(address,uint256)"( + _owner: string, + _id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + balanceOfBatch( + _owners: string[], + _ids: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + "balanceOfBatch(address[],uint256[])"( + _owners: string[], + _ids: BigNumberish[], + overrides?: CallOverrides + ): Promise; + + baseURI(overrides?: CallOverrides): Promise; + + "baseURI()"(overrides?: CallOverrides): Promise; + + batchBurnMock( + _from: string, + _ids: BigNumberish[], + _values: BigNumberish[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "batchBurnMock(address,uint256[],uint256[])"( + _from: string, + _ids: BigNumberish[], + _values: BigNumberish[], + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + batchMintMock( + _to: string, + _ids: BigNumberish[], + _values: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "batchMintMock(address,uint256[],uint256[],bytes)"( + _to: string, + _ids: BigNumberish[], + _values: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + burnMock( + _from: string, + _id: BigNumberish, + _value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "burnMock(address,uint256,uint256)"( + _from: string, + _id: BigNumberish, + _value: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + globalRoyaltyInfo(overrides?: CallOverrides): Promise; + + "globalRoyaltyInfo()"( + overrides?: CallOverrides + ): Promise; + + isApprovedForAll( + _owner: string, + _operator: string, + overrides?: CallOverrides + ): Promise; + + "isApprovedForAll(address,address)"( + _owner: string, + _operator: string, + overrides?: CallOverrides + ): Promise; + + mintMock( + _to: string, + _id: BigNumberish, + _value: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "mintMock(address,uint256,uint256,bytes)"( + _to: string, + _id: BigNumberish, + _value: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + name(overrides?: CallOverrides): Promise; + + "name()"(overrides?: CallOverrides): Promise; + + royaltyInfo( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "royaltyInfo(uint256,uint256)"( + arg0: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise; + + safeBatchTransferFrom( + _from: string, + _to: string, + _ids: BigNumberish[], + _amounts: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)"( + _from: string, + _to: string, + _ids: BigNumberish[], + _amounts: BigNumberish[], + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + safeTransferFrom( + _from: string, + _to: string, + _id: BigNumberish, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "safeTransferFrom(address,address,uint256,uint256,bytes)"( + _from: string, + _to: string, + _id: BigNumberish, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setApprovalForAll( + _operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "setApprovalForAll(address,bool)"( + _operator: string, + _approved: boolean, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + setGlobalRoyaltyInfo( + _recipient: string, + _royaltyBasisPoints: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + "setGlobalRoyaltyInfo(address,uint256)"( + _recipient: string, + _royaltyBasisPoints: BigNumberish, + overrides?: Overrides & { from?: string | Promise } + ): Promise; + + supportsInterface( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + + "supportsInterface(bytes4)"( + _interfaceID: BytesLike, + overrides?: CallOverrides + ): Promise; + + uri( + _id: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "uri(uint256)"( + _id: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/gen/typechain/IERC2981.d.ts b/src/gen/typechain/IERC2981.d.ts new file mode 100644 index 0000000..c8af641 --- /dev/null +++ b/src/gen/typechain/IERC2981.d.ts @@ -0,0 +1,222 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, + Contract, + ContractTransaction, + CallOverrides, +} from "ethers"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; +import { TypedEventFilter, TypedEvent, TypedListener } from "./commons"; + +interface IERC2981Interface extends ethers.utils.Interface { + functions: { + "royaltyInfo(uint256,uint256)": FunctionFragment; + "supportsInterface(bytes4)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "royaltyInfo", + values: [BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "supportsInterface", + values: [BytesLike] + ): string; + + decodeFunctionResult( + functionFragment: "royaltyInfo", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "supportsInterface", + data: BytesLike + ): Result; + + events: {}; +} + +export class IERC2981 extends Contract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + listeners, EventArgsObject>( + eventFilter?: TypedEventFilter + ): Array>; + off, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + on, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + once, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeListener, EventArgsObject>( + eventFilter: TypedEventFilter, + listener: TypedListener + ): this; + removeAllListeners, EventArgsObject>( + eventFilter: TypedEventFilter + ): this; + + listeners(eventName?: string): Array; + off(eventName: string, listener: Listener): this; + on(eventName: string, listener: Listener): this; + once(eventName: string, listener: Listener): this; + removeListener(eventName: string, listener: Listener): this; + removeAllListeners(eventName?: string): this; + + queryFilter, EventArgsObject>( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + interface: IERC2981Interface; + + functions: { + royaltyInfo( + _tokenId: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + "royaltyInfo(uint256,uint256)"( + _tokenId: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + supportsInterface( + _interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + + "supportsInterface(bytes4)"( + _interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise<[boolean]>; + }; + + royaltyInfo( + _tokenId: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + "royaltyInfo(uint256,uint256)"( + _tokenId: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + supportsInterface( + _interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "supportsInterface(bytes4)"( + _interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + callStatic: { + royaltyInfo( + _tokenId: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + "royaltyInfo(uint256,uint256)"( + _tokenId: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise< + [string, BigNumber] & { receiver: string; royaltyAmount: BigNumber } + >; + + supportsInterface( + _interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "supportsInterface(bytes4)"( + _interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + royaltyInfo( + _tokenId: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "royaltyInfo(uint256,uint256)"( + _tokenId: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise; + + supportsInterface( + _interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "supportsInterface(bytes4)"( + _interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + royaltyInfo( + _tokenId: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "royaltyInfo(uint256,uint256)"( + _tokenId: BigNumberish, + _saleCost: BigNumberish, + overrides?: CallOverrides + ): Promise; + + supportsInterface( + _interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "supportsInterface(bytes4)"( + _interfaceId: BytesLike, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/gen/typechain/factories/ERC1155MetaMintBurnMock__factory.ts b/src/gen/typechain/factories/ERC1155MetaMintBurnMock__factory.ts index e8a44a0..96e3406 100644 --- a/src/gen/typechain/factories/ERC1155MetaMintBurnMock__factory.ts +++ b/src/gen/typechain/factories/ERC1155MetaMintBurnMock__factory.ts @@ -13,14 +13,22 @@ export class ERC1155MetaMintBurnMock__factory extends ContractFactory { } deploy( + _name: string, + _baseURI: string, overrides?: Overrides & { from?: string | Promise } ): Promise { - return super.deploy(overrides || {}) as Promise; + return super.deploy( + _name, + _baseURI, + overrides || {} + ) as Promise; } getDeployTransaction( + _name: string, + _baseURI: string, overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); + return super.getDeployTransaction(_name, _baseURI, overrides || {}); } attach(address: string): ERC1155MetaMintBurnMock { return super.attach(address) as ERC1155MetaMintBurnMock; @@ -41,6 +49,22 @@ export class ERC1155MetaMintBurnMock__factory extends ContractFactory { } const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "string", + name: "_baseURI", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, { anonymous: false, inputs: [ @@ -230,6 +254,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -518,6 +555,19 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -643,4 +693,4 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50613fc7806100206000396000f3fe608060405234801561001057600080fd5b506004361061011a5760003560e01c8063a3d4926e116100b2578063d7a0ad9011610081578063f242432a11610066578063f242432a1461029e578063f5d4c820146102b1578063fa4e12d7146102c45761011a565b8063d7a0ad9014610278578063e985e9c51461028b5761011a565b8063a3d4926e1461022c578063a3f091f51461023f578063bd7a6c4114610252578063ce0b514b146102655761011a565b80632eb2c2d6116100ee5780632eb2c2d6146101d1578063437ecbe9146101e65780634e1273f4146101f9578063a22cb465146102195761011a565b8062fdd58e1461015557806301ffc9a71461017e5780630e89341c1461019e5780632d0335ab146101be575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613958565b60405180910390fd5b6101686101633660046133cd565b6102d7565b6040516101759190613b29565b60405180910390f35b61019161018c366004613560565b61030a565b60405161017591906137c5565b6101b16101ac36600461365f565b61031d565b604051610175919061384d565b6101686101cc366004612ef7565b610470565b6101e46101df366004613051565b610498565b005b6101e46101f43660046133f8565b6105a3565b61020c610207366004613481565b6105b3565b6040516101759190613781565b6101e4610227366004613351565b6106ff565b6101e461023a366004612f94565b610798565b6101e461024d36600461342c565b61090c565b6101e4610260366004613247565b61091e565b6101e4610273366004613174565b610929565b6101e46102863660046132ba565b610a08565b610191610299366004612f5c565b610a14565b6101e46102ac3660046131ec565b610a4f565b6101e46102bf3660046130fb565b610b53565b6101916102d236600461337e565b610c83565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b600061031582611464565b90505b919050565b6060600361032a836114c1565b60405160200180838054600181600116156101000203166002900480156103885780601f10610366576101008083540402835291820191610388565b820191906000526020600020905b815481529060010190602001808311610374575b5050825160208401908083835b602083106103d257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610395565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff861614806104c157506104c18533610a14565b610516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613e3b602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610582576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613d7c6030913960400191505060405180910390fd5b61058e858585856115ed565b61059c858585855a86611941565b5050505050565b6105ae838383611bae565b505050565b6060815183511461060f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613ddc602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561062957600080fd5b50604051908082528060200260200182016040528015610653578160200160208202803683370190505b50905060005b84518110156106f75760008086838151811061067157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106106c157fe5b60200260200101518152602001908152602001600020548282815181106106e457fe5b6020908102919091010152600101610659565b509392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff85166107e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613a12565b60606107ef612d28565b60606108a289857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c60405160200161082d9190613677565b604051602081830303815290604052805190602001208c6040516020016108549190613677565b604051602081830303815290604052805190602001208c610876576000610879565b60015b60405160200161088e969594939291906137d0565b604051602081830303815290604052611c59565b90506108b0898989896115ed565b84156108f357808060200190518101906108ca919061362a565b80945081935050506108e489898989866020015188611941565b6108ee8983611e28565b610901565b610901898989895a86611941565b505050505050505050565b610918848484846120d1565b50505050565b6105ae838383612186565b73ffffffffffffffffffffffffffffffffffffffff8516610976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c9061389e565b6060610980612d28565b60606109b889857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c610876576000610879565b90506109c6898989896123c6565b84156109fa57808060200190518101906109e0919061362a565b80945081935050506108e4898989898660200151886124c9565b610901898989895a866124c9565b610918848484846126ba565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610a785750610a788533610a14565b610acd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613c76602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610b39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613c14602b913960400191505060405180910390fd5b610b45858585856123c6565b61059c858585855a866124c9565b6060610baf86837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610b89576000610b8c565b60015b89610b98576000610b9b565b60015b60405160200161088e959493929190613811565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610c439088906137c5565b60405180910390a38215610c7b57610c59612d28565b81806020019051810190610c6d91906135f7565b9050610c798782611e28565b505b505050505050565b600080825111610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613e6a6043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180613e086033913960400191505060405180910390fd5b6000610d5583612904565b60f81c905060058110610db3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cd5603a913960400191505060405180910390fd5b60008160ff166005811115610dc457fe5b9050600080808080856005811115610dd857fe5b1415610e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180613d0f6036913960400191505060405180910390fd5b6001856005811115610e3d57fe5b1415610f80578751606114610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613d456037913960400191505060405180910390fd5b610ea88860006129c1565b9250610eb58860206129c1565b915087604081518110610ec457fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610f2e573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d8116911614975061145c9650505050505050565b6002856005811115610f8e57fe5b14156110de578751606114610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613d456037913960400191505060405180910390fd5b610ff98860006129c1565b92506110068860206129c1565b91508760408151811061101557fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610f2e573d6000803e3d6000fd5b60038560058111156110ec57fe5b14156112a457604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b8381101561117a578181015183820152602001611162565b50505050905090810190601f1680156111a75780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156111da5781810151838201526020016111c2565b50505050905090810190601f1680156112075780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561122657600080fd5b505afa15801561123a573d6000803e3d6000fd5b505050506040513d602081101561125057600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b0000000000000000000000000000000000000000000000000000000014965061145c95505050505050565b60048560058111156112b257fe5b141561140b57604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b8381101561134257818101518382015260200161132a565b50505050905090810190601f16801561136f5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561138d57600080fd5b505afa1580156113a1573d6000803e3d6000fd5b505050506040513d60208110156113b757600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014965061145c95505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cd5603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156114b857506001610318565b61031582612a29565b606081611502575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610318565b818060005b821561151b57600101600a83049250611507565b60608167ffffffffffffffff8111801561153457600080fd5b506040519080825280601f01601f19166020018201604052801561155f576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b83156115e357600a840660300160f81b828280600190039350815181106115a957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611586565b5095945050505050565b8051825114611647576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180613ca06035913960400191505060405180910390fd5b815160005b81811015611839576116dc83828151811061166357fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116b757fe5b6020026020010151815260200190815260200160002054612a8690919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061172857fe5b60200260200101518152602001908152602001600020819055506117ca83828151811061175157fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106117a557fe5b6020026020010151815260200190815260200160002054612afd90919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061181657fe5b60209081029190910181015182528101919091526040016000205560010161164c565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156118e65781810151838201526020016118ce565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561192557818101518382015260200161190d565b5050505090500194505050505060405180910390a45050505050565b6119608573ffffffffffffffffffffffffffffffffffffffff16612b78565b15610c7b5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611a18578181015183820152602001611a00565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611a57578181015183820152602001611a3f565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611a93578181015183820152602001611a7b565b50505050905090810190601f168015611ac05780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611ae557600080fd5b5087f1158015611af9573d6000803e3d6000fd5b50505050506040513d6020811015611b1057600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610c79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180613edd603f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611be79082612a86565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b60608083806020019051810190611c7091906135a0565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611ca88360416129c1565b9050818110801590611cbc57508160640181105b611cf2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613a6f565b6000611d2e86838780519060200120604051602001611d13939291906136ad565b60405160208183030381529060405280519060200120612baf565b90506060868387604051602001611d47939291906136d4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf5991611dd291613b29565b60405180910390a2611de689838388610c83565b611e1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c906138fb565b50505050509392505050565b6000611e378260600151612904565b60f81c905060028110611e76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c90613acc565b60008160ff166002811115611e8757fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff1615611ebd578660400151611ebf565b335b92506000856002811115611ecf57fe5b1415611fce578660600151806020019051810190611eed9190612f2f565b909450915073ffffffffffffffffffffffffffffffffffffffff8416301415611f3e57611f1c888484846123c6565b611f398884845a85604051806020016040528060008152506124c9565b611fc9565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a90611f96908b9087908790879060040161373c565b600060405180830381600087803b158015611fb057600080fd5b505af1158015611fc4573d6000803e3d6000fd5b505050505b6120c7565b8660600151806020019051810190611fe69190612f13565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd9061203f908b908790869060040161370b565b602060405180830381600087803b15801561205957600080fd5b505af115801561206d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120919190613544565b6120c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c906139b5565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915290205461210a9083612afd565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461091860008585855a866124c9565b8151815181146121e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613dac6030913960400191505060405180910390fd5b60005b818110156122be5761224f8382815181106121fb57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116b757fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061229b57fe5b6020908102919091018101518252810191909152604001600020556001016121e4565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561236c578181015183820152602001612354565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156123ab578181015183820152602001612393565b5050505090500194505050505060405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208584529091529020546123ff9082612a86565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152602081815260408083208784528252808320949094559186168152808252828120858252909152205461244f9082612afd565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6124e88573ffffffffffffffffffffffffffffffffffffffff16612b78565b15610c7b5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156125a1578181015183820152602001612589565b50505050905090810190601f1680156125ce5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156125f157600080fd5b5087f1158015612605573d6000803e3d6000fd5b50505050506040513d602081101561261c57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610c79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613f1c603a913960400191505060405180910390fd5b8151835114612714576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613ead6030913960400191505060405180910390fd5b825160005b818110156127f35761278484828151811061273057fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008885815181106117a557fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008784815181106127d057fe5b602090810291909101810151825281019190915260400160002055600101612719565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156128a1578181015183820152602001612889565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156128e05781810151838201526020016128c8565b5050505090500194505050505060405180910390a461059c60008686865a87611941565b60008082511161295f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613c3f6037913960400191505060405180910390fd5b8160018351038151811061296f57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612a20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180613f56603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612a7d57506001610318565b61031582612cde565b600082821115612af757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015612b7157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590612b7157507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612c7c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612c3f565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f830112612d76578081fd5b8135612d89612d8482613b56565b613b32565b818152915060208083019084810181840286018201871015612daa57600080fd5b60005b84811015612dc957813584529282019290820190600101612dad565b505050505092915050565b600082601f830112612de4578081fd5b8135612df2612d8482613b74565b9150808252836020828501011115612e0957600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112612e32578081fd5b8151612e40612d8482613b74565b9150808252836020828501011115612e5757600080fd5b612e68816020840160208601613bb4565b5092915050565b600060808284031215612e80578081fd5b6040516080810167ffffffffffffffff8282108183111715612e9e57fe5b81604052829350845183526020850151602084015260408501519150612ec382613be0565b8160408401526060850151915080821115612edd57600080fd5b50612eea85828601612e22565b6060830152505092915050565b600060208284031215612f08578081fd5b8135612b7181613be0565b600060208284031215612f24578081fd5b8151612b7181613be0565b60008060408385031215612f41578081fd5b8251612f4c81613be0565b6020939093015192949293505050565b60008060408385031215612f6e578182fd5b8235612f7981613be0565b91506020830135612f8981613be0565b809150509250929050565b60008060008060008060c08789031215612fac578182fd5b8635612fb781613be0565b95506020870135612fc781613be0565b9450604087013567ffffffffffffffff80821115612fe3578384fd5b612fef8a838b01612d66565b95506060890135915080821115613004578384fd5b6130108a838b01612d66565b94506080890135915061302282613c05565b90925060a08801359080821115613037578283fd5b5061304489828a01612dd4565b9150509295509295509295565b600080600080600060a08688031215613068578081fd5b853561307381613be0565b9450602086013561308381613be0565b9350604086013567ffffffffffffffff8082111561309f578283fd5b6130ab89838a01612d66565b945060608801359150808211156130c0578283fd5b6130cc89838a01612d66565b935060808801359150808211156130e1578283fd5b506130ee88828901612dd4565b9150509295509295909350565b600080600080600060a08688031215613112578081fd5b853561311d81613be0565b9450602086013561312d81613be0565b9350604086013561313d81613c05565b9250606086013561314d81613c05565b9150608086013567ffffffffffffffff811115613168578182fd5b6130ee88828901612dd4565b60008060008060008060c0878903121561318c578384fd5b863561319781613be0565b955060208701356131a781613be0565b9450604087013593506060870135925060808701356131c581613c05565b915060a087013567ffffffffffffffff8111156131e0578182fd5b61304489828a01612dd4565b600080600080600060a08688031215613203578283fd5b853561320e81613be0565b9450602086013561321e81613be0565b93506040860135925060608601359150608086013567ffffffffffffffff811115613168578182fd5b60008060006060848603121561325b578081fd5b833561326681613be0565b9250602084013567ffffffffffffffff80821115613282578283fd5b61328e87838801612d66565b935060408601359150808211156132a3578283fd5b506132b086828701612d66565b9150509250925092565b600080600080608085870312156132cf578182fd5b84356132da81613be0565b9350602085013567ffffffffffffffff808211156132f6578384fd5b61330288838901612d66565b94506040870135915080821115613317578384fd5b61332388838901612d66565b93506060870135915080821115613338578283fd5b5061334587828801612dd4565b91505092959194509250565b60008060408385031215613363578182fd5b823561336e81613be0565b91506020830135612f8981613c05565b60008060008060808587031215613393578182fd5b843561339e81613be0565b935060208501359250604085013567ffffffffffffffff808211156133c1578384fd5b61332388838901612dd4565b600080604083850312156133df578182fd5b82356133ea81613be0565b946020939093013593505050565b60008060006060848603121561340c578081fd5b833561341781613be0565b95602085013595506040909401359392505050565b60008060008060808587031215613441578182fd5b843561344c81613be0565b93506020850135925060408501359150606085013567ffffffffffffffff811115613475578182fd5b61334587828801612dd4565b60008060408385031215613493578182fd5b823567ffffffffffffffff808211156134aa578384fd5b818501915085601f8301126134bd578384fd5b81356134cb612d8482613b56565b80828252602080830192508086018a8283870289010111156134eb578889fd5b8896505b8487101561351657803561350281613be0565b8452600196909601959281019281016134ef565b50909650870135935050508082111561352d578283fd5b5061353a85828601612d66565b9150509250929050565b600060208284031215613555578081fd5b8151612b7181613c05565b600060208284031215613571578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612b71578182fd5b600080604083850312156135b2578182fd5b825167ffffffffffffffff808211156135c9578384fd5b6135d586838701612e22565b935060208501519150808211156135ea578283fd5b5061353a85828601612e22565b600060208284031215613608578081fd5b815167ffffffffffffffff81111561361e578182fd5b61145c84828501612e6f565b6000806040838503121561363c578182fd5b825167ffffffffffffffff80821115613653578384fd5b6135d586838701612e6f565b600060208284031215613670578081fd5b5035919050565b815160009082906020808601845b838110156136a157815185529382019390820190600101613685565b50929695505050505050565b600084516136bf818460208901613bb4565b91909101928352506020820152604001919050565b600084516136e6818460208901613bb4565b820184815283516136fe816020808501908801613bb4565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b818110156137b95783518352928401929184019160010161379d565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b600060208252825180602084015261386c816040850160208701613bb4565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526033908201527f455243313135354d657461236d657461536166655472616e7366657246726f6d60408201527f3a20494e56414c49445f524543495049454e5400000000000000000000000000606082015260800190565b60208082526033908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f5349474e415455524500000000000000000000000000606082015260800190565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f455243313135354d657461235f7472616e736665724761734665653a2045524360408201527f32305f5452414e534645525f4641494c45440000000000000000000000000000606082015260800190565b60208082526038908201527f455243313135354d657461236d6574615361666542617463685472616e73666560408201527f7246726f6d3a20494e56414c49445f524543495049454e540000000000000000606082015260800190565b6020808252602f908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f4e4f4e43450000000000000000000000000000000000606082015260800190565b6020808252602e908201527f455243313135354d657461235f7472616e736665724761734665653a20554e5360408201527f5550504f525445445f544f4b454e000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715613b4e57fe5b604052919050565b600067ffffffffffffffff821115613b6a57fe5b5060209081020190565b600067ffffffffffffffff821115613b8857fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015613bcf578181015183820152602001613bb7565b838111156109185750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114613c0257600080fd5b50565b8015158114613c0257600080fdfe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f52455155495245444552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f524551554952454445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e455245524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147454c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544a264697066735822122008b77ff76016e14115160846edef46ef1b7acff27d7339eaf2a92266ce99c33d64736f6c63430007040033"; + "0x60806040523480156200001157600080fd5b5060405162004386380380620043868339810160408190526200003491620001dc565b8151829082906200004d9060049060208501906200006e565b508051620000639060039060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b61413280620002546000396000f3fe608060405234801561001057600080fd5b50600436106101505760003560e01c8063a22cb465116100cd578063d7a0ad9011610081578063f242432a11610066578063f242432a146102e4578063f5d4c820146102f7578063fa4e12d71461030a57610150565b8063d7a0ad90146102be578063e985e9c5146102d157610150565b8063a3f091f5116100b2578063a3f091f514610285578063bd7a6c4114610298578063ce0b514b146102ab57610150565b8063a22cb4651461025f578063a3d4926e1461027257610150565b80632d0335ab11610124578063437ecbe911610109578063437ecbe9146102245780634e1273f4146102375780636c0360eb1461025757610150565b80632d0335ab146101fc5780632eb2c2d61461020f57610150565b8062fdd58e1461018b57806301ffc9a7146101b457806306fdde03146101d45780630e89341c146101e9575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613ac3565b60405180910390fd5b61019e610199366004613538565b61031d565b6040516101ab9190613c94565b60405180910390f35b6101c76101c23660046136cb565b610350565b6040516101ab9190613930565b6101dc610363565b6040516101ab91906139b8565b6101dc6101f73660046137ca565b61040f565b61019e61020a366004613062565b610562565b61022261021d3660046131bc565b61058a565b005b610222610232366004613563565b610695565b61024a6102453660046135ec565b6106a5565b6040516101ab91906138ec565b6101dc6107f1565b61022261026d3660046134bc565b61086a565b6102226102803660046130ff565b610903565b610222610293366004613597565b610a77565b6102226102a63660046133b2565b610a89565b6102226102b93660046132df565b610a94565b6102226102cc366004613425565b610b73565b6101c76102df3660046130c7565b610b7f565b6102226102f2366004613357565b610bba565b610222610305366004613266565b610cbe565b6101c76103183660046134e9565b610dee565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b600061035b826115cf565b90505b919050565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104075780601f106103dc57610100808354040283529160200191610407565b820191906000526020600020905b8154815290600101906020018083116103ea57829003601f168201915b505050505081565b6060600361041c8361162c565b604051602001808380546001816001161561010002031660029004801561047a5780601f1061045857610100808354040283529182019161047a565b820191906000526020600020905b815481529060010190602001808311610466575b5050825160208401908083835b602083106104c457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610487565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff861614806105b357506105b38533610b7f565b610608576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613fa6602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610674576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613ee76030913960400191505060405180910390fd5b61068085858585611758565b61068e858585855a86611aac565b5050505050565b6106a0838383611d19565b505050565b60608151835114610701576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613f47602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561071b57600080fd5b50604051908082528060200260200182016040528015610745578160200160208202803683370190505b50905060005b84518110156107e95760008086838151811061076357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106107b357fe5b60200260200101518152602001908152602001600020548282815181106107d657fe5b602090810291909101015260010161074b565b509392505050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104075780601f106103dc57610100808354040283529160200191610407565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8516610950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613b7d565b606061095a612e93565b6060610a0d89857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c60405160200161099891906137e2565b604051602081830303815290604052805190602001208c6040516020016109bf91906137e2565b604051602081830303815290604052805190602001208c6109e15760006109e4565b60015b6040516020016109f99695949392919061393b565b604051602081830303815290604052611dc4565b9050610a1b89898989611758565b8415610a5e5780806020019051810190610a359190613795565b8094508193505050610a4f89898989866020015188611aac565b610a598983611f93565b610a6c565b610a6c898989895a86611aac565b505050505050505050565b610a838484848461223c565b50505050565b6106a08383836122f1565b73ffffffffffffffffffffffffffffffffffffffff8516610ae1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613a09565b6060610aeb612e93565b6060610b2389857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c6109e15760006109e4565b9050610b3189898989612531565b8415610b655780806020019051810190610b4b9190613795565b8094508193505050610a4f89898989866020015188612634565b610a6c898989895a86612634565b610a8384848484612825565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610be35750610be38533610b7f565b610c38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613de1602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610ca4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613d7f602b913960400191505060405180910390fd5b610cb085858585612531565b61068e858585855a86612634565b6060610d1a86837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610cf4576000610cf7565b60015b89610d03576000610d06565b60015b6040516020016109f995949392919061397c565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610dae908890613930565b60405180910390a38215610de657610dc4612e93565b81806020019051810190610dd89190613762565b9050610de48782611f93565b505b505050505050565b600080825111610e49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613fd56043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180613f736033913960400191505060405180910390fd5b6000610ec083612a6f565b60f81c905060058110610f1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613e40603a913960400191505060405180910390fd5b60008160ff166005811115610f2f57fe5b9050600080808080856005811115610f4357fe5b1415610f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180613e7a6036913960400191505060405180910390fd5b6001856005811115610fa857fe5b14156110eb578751606114611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613eb06037913960400191505060405180910390fd5b611013886000612b2c565b9250611020886020612b2c565b91508760408151811061102f57fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611099573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d811691161497506115c79650505050505050565b60028560058111156110f957fe5b1415611249578751606114611159576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613eb06037913960400191505060405180910390fd5b611164886000612b2c565b9250611171886020612b2c565b91508760408151811061118057fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611099573d6000803e3d6000fd5b600385600581111561125757fe5b141561140f57604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b838110156112e55781810151838201526020016112cd565b50505050905090810190601f1680156113125780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561134557818101518382015260200161132d565b50505050905090810190601f1680156113725780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561139157600080fd5b505afa1580156113a5573d6000803e3d6000fd5b505050506040513d60208110156113bb57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b000000000000000000000000000000000000000000000000000000001496506115c795505050505050565b600485600581111561141d57fe5b141561157657604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b838110156114ad578181015183820152602001611495565b50505050905090810190601f1680156114da5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156114f857600080fd5b505afa15801561150c573d6000803e3d6000fd5b505050506040513d602081101561152257600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e000000000000000000000000000000000000000000000000000000001496506115c795505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613e40603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156116235750600161035e565b61035b82612b94565b60608161166d575060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015261035e565b818060005b821561168657600101600a83049250611672565b60608167ffffffffffffffff8111801561169f57600080fd5b506040519080825280601f01601f1916602001820160405280156116ca576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561174e57600a840660300160f81b8282806001900393508151811061171457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506116f1565b5095945050505050565b80518251146117b2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180613e0b6035913960400191505060405180910390fd5b815160005b818110156119a4576118478382815181106117ce57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087858151811061182257fe5b6020026020010151815260200190815260200160002054612bf190919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061189357fe5b60200260200101518152602001908152602001600020819055506119358382815181106118bc57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087858151811061191057fe5b6020026020010151815260200190815260200160002054612c6890919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061198157fe5b6020908102919091018101518252810191909152604001600020556001016117b7565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611a51578181015183820152602001611a39565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611a90578181015183820152602001611a78565b5050505090500194505050505060405180910390a45050505050565b611acb8573ffffffffffffffffffffffffffffffffffffffff16612ce3565b15610de65760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611b83578181015183820152602001611b6b565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611bc2578181015183820152602001611baa565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611bfe578181015183820152602001611be6565b50505050905090810190601f168015611c2b5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611c5057600080fd5b5087f1158015611c64573d6000803e3d6000fd5b50505050506040513d6020811015611c7b57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610de4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180614048603f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611d529082612bf1565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b60608083806020019051810190611ddb919061370b565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611e13836041612b2c565b9050818110801590611e2757508160640181105b611e5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613bda565b6000611e9986838780519060200120604051602001611e7e93929190613818565b60405160208183030381529060405280519060200120612d1a565b90506060868387604051602001611eb29392919061383f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf5991611f3d91613c94565b60405180910390a2611f5189838388610dee565b611f87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613a66565b50505050509392505050565b6000611fa28260600151612a6f565b60f81c905060028110611fe1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613c37565b60008160ff166002811115611ff257fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff161561202857866040015161202a565b335b9250600085600281111561203a57fe5b1415612139578660600151806020019051810190612058919061309a565b909450915073ffffffffffffffffffffffffffffffffffffffff84163014156120a95761208788848484612531565b6120a48884845a8560405180602001604052806000815250612634565b612134565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a90612101908b908790879087906004016138a7565b600060405180830381600087803b15801561211b57600080fd5b505af115801561212f573d6000803e3d6000fd5b505050505b612232565b8660600151806020019051810190612151919061307e565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd906121aa908b9087908690600401613876565b602060405180830381600087803b1580156121c457600080fd5b505af11580156121d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121fc91906136af565b612232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613b20565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208684529091529020546122759083612c68565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a4610a8360008585855a86612634565b81518151811461234c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180613f176030913960400191505060405180910390fd5b60005b81811015612429576123ba83828151811061236657fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087858151811061182257fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061240657fe5b60209081029190910181015182528101919091526040016000205560010161234f565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156124d75781810151838201526020016124bf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156125165781810151838201526020016124fe565b5050505090500194505050505060405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832085845290915290205461256a9082612bf1565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546125ba9082612c68565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6126538573ffffffffffffffffffffffffffffffffffffffff16612ce3565b15610de65760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561270c5781810151838201526020016126f4565b50505050905090810190601f1680156127395780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561275c57600080fd5b5087f1158015612770573d6000803e3d6000fd5b50505050506040513d602081101561278757600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610de4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614087603a913960400191505060405180910390fd5b815183511461287f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806140186030913960400191505060405180910390fd5b825160005b8181101561295e576128ef84828151811061289b57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088858151811061191057fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087848151811061293b57fe5b602090810291909101810151825281019190915260400160002055600101612884565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612a0c5781810151838201526020016129f4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612a4b578181015183820152602001612a33565b5050505090500194505050505060405180910390a461068e60008686865a87611aac565b600080825111612aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613daa6037913960400191505060405180910390fd5b81600183510381518110612ada57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612b8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806140c1603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612be85750600161035e565b61035b82612e49565b600082821115612c6257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015612cdc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590612cdc57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612de757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612daa565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f830112612ee1578081fd5b8135612ef4612eef82613cc1565b613c9d565b818152915060208083019084810181840286018201871015612f1557600080fd5b60005b84811015612f3457813584529282019290820190600101612f18565b505050505092915050565b600082601f830112612f4f578081fd5b8135612f5d612eef82613cdf565b9150808252836020828501011115612f7457600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112612f9d578081fd5b8151612fab612eef82613cdf565b9150808252836020828501011115612fc257600080fd5b612fd3816020840160208601613d1f565b5092915050565b600060808284031215612feb578081fd5b6040516080810167ffffffffffffffff828210818311171561300957fe5b8160405282935084518352602085015160208401526040850151915061302e82613d4b565b816040840152606085015191508082111561304857600080fd5b5061305585828601612f8d565b6060830152505092915050565b600060208284031215613073578081fd5b8135612cdc81613d4b565b60006020828403121561308f578081fd5b8151612cdc81613d4b565b600080604083850312156130ac578081fd5b82516130b781613d4b565b6020939093015192949293505050565b600080604083850312156130d9578182fd5b82356130e481613d4b565b915060208301356130f481613d4b565b809150509250929050565b60008060008060008060c08789031215613117578182fd5b863561312281613d4b565b9550602087013561313281613d4b565b9450604087013567ffffffffffffffff8082111561314e578384fd5b61315a8a838b01612ed1565b9550606089013591508082111561316f578384fd5b61317b8a838b01612ed1565b94506080890135915061318d82613d70565b90925060a088013590808211156131a2578283fd5b506131af89828a01612f3f565b9150509295509295509295565b600080600080600060a086880312156131d3578081fd5b85356131de81613d4b565b945060208601356131ee81613d4b565b9350604086013567ffffffffffffffff8082111561320a578283fd5b61321689838a01612ed1565b9450606088013591508082111561322b578283fd5b61323789838a01612ed1565b9350608088013591508082111561324c578283fd5b5061325988828901612f3f565b9150509295509295909350565b600080600080600060a0868803121561327d578081fd5b853561328881613d4b565b9450602086013561329881613d4b565b935060408601356132a881613d70565b925060608601356132b881613d70565b9150608086013567ffffffffffffffff8111156132d3578182fd5b61325988828901612f3f565b60008060008060008060c087890312156132f7578384fd5b863561330281613d4b565b9550602087013561331281613d4b565b94506040870135935060608701359250608087013561333081613d70565b915060a087013567ffffffffffffffff81111561334b578182fd5b6131af89828a01612f3f565b600080600080600060a0868803121561336e578283fd5b853561337981613d4b565b9450602086013561338981613d4b565b93506040860135925060608601359150608086013567ffffffffffffffff8111156132d3578182fd5b6000806000606084860312156133c6578081fd5b83356133d181613d4b565b9250602084013567ffffffffffffffff808211156133ed578283fd5b6133f987838801612ed1565b9350604086013591508082111561340e578283fd5b5061341b86828701612ed1565b9150509250925092565b6000806000806080858703121561343a578182fd5b843561344581613d4b565b9350602085013567ffffffffffffffff80821115613461578384fd5b61346d88838901612ed1565b94506040870135915080821115613482578384fd5b61348e88838901612ed1565b935060608701359150808211156134a3578283fd5b506134b087828801612f3f565b91505092959194509250565b600080604083850312156134ce578182fd5b82356134d981613d4b565b915060208301356130f481613d70565b600080600080608085870312156134fe578182fd5b843561350981613d4b565b935060208501359250604085013567ffffffffffffffff8082111561352c578384fd5b61348e88838901612f3f565b6000806040838503121561354a578182fd5b823561355581613d4b565b946020939093013593505050565b600080600060608486031215613577578081fd5b833561358281613d4b565b95602085013595506040909401359392505050565b600080600080608085870312156135ac578182fd5b84356135b781613d4b565b93506020850135925060408501359150606085013567ffffffffffffffff8111156135e0578182fd5b6134b087828801612f3f565b600080604083850312156135fe578182fd5b823567ffffffffffffffff80821115613615578384fd5b818501915085601f830112613628578384fd5b8135613636612eef82613cc1565b80828252602080830192508086018a828387028901011115613656578889fd5b8896505b8487101561368157803561366d81613d4b565b84526001969096019592810192810161365a565b509096508701359350505080821115613698578283fd5b506136a585828601612ed1565b9150509250929050565b6000602082840312156136c0578081fd5b8151612cdc81613d70565b6000602082840312156136dc578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612cdc578182fd5b6000806040838503121561371d578182fd5b825167ffffffffffffffff80821115613734578384fd5b61374086838701612f8d565b93506020850151915080821115613755578283fd5b506136a585828601612f8d565b600060208284031215613773578081fd5b815167ffffffffffffffff811115613789578182fd5b6115c784828501612fda565b600080604083850312156137a7578182fd5b825167ffffffffffffffff808211156137be578384fd5b61374086838701612fda565b6000602082840312156137db578081fd5b5035919050565b815160009082906020808601845b8381101561380c578151855293820193908201906001016137f0565b50929695505050505050565b6000845161382a818460208901613d1f565b91909101928352506020820152604001919050565b60008451613851818460208901613d1f565b82018481528351613869816020808501908801613d1f565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b8181101561392457835183529284019291840191600101613908565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b60006020825282518060208401526139d7816040850160208701613d1f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526033908201527f455243313135354d657461236d657461536166655472616e7366657246726f6d60408201527f3a20494e56414c49445f524543495049454e5400000000000000000000000000606082015260800190565b60208082526033908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f5349474e415455524500000000000000000000000000606082015260800190565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f455243313135354d657461235f7472616e736665724761734665653a2045524360408201527f32305f5452414e534645525f4641494c45440000000000000000000000000000606082015260800190565b60208082526038908201527f455243313135354d657461236d6574615361666542617463685472616e73666560408201527f7246726f6d3a20494e56414c49445f524543495049454e540000000000000000606082015260800190565b6020808252602f908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f4e4f4e43450000000000000000000000000000000000606082015260800190565b6020808252602e908201527f455243313135354d657461235f7472616e736665724761734665653a20554e5360408201527f5550504f525445445f544f4b454e000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715613cb957fe5b604052919050565b600067ffffffffffffffff821115613cd557fe5b5060209081020190565b600067ffffffffffffffff821115613cf357fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015613d3a578181015183820152602001613d22565b83811115610a835750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114613d6d57600080fd5b50565b8015158114613d6d57600080fdfe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f52455155495245444552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f524551554952454445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e455245524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147454c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544a2646970667358221220afda31fa355189ce453c48dd07cb0cbe445eb5385f57ff43407dbf58083ff66764736f6c63430007040033"; diff --git a/src/gen/typechain/factories/ERC1155MetaMintBurnPackedBalanceMock__factory.ts b/src/gen/typechain/factories/ERC1155MetaMintBurnPackedBalanceMock__factory.ts index 48ea916..b7d41b8 100644 --- a/src/gen/typechain/factories/ERC1155MetaMintBurnPackedBalanceMock__factory.ts +++ b/src/gen/typechain/factories/ERC1155MetaMintBurnPackedBalanceMock__factory.ts @@ -13,16 +13,22 @@ export class ERC1155MetaMintBurnPackedBalanceMock__factory extends ContractFacto } deploy( + _name: string, + _baseURI: string, overrides?: Overrides & { from?: string | Promise } ): Promise { return super.deploy( + _name, + _baseURI, overrides || {} ) as Promise; } getDeployTransaction( + _name: string, + _baseURI: string, overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); + return super.getDeployTransaction(_name, _baseURI, overrides || {}); } attach(address: string): ERC1155MetaMintBurnPackedBalanceMock { return super.attach(address) as ERC1155MetaMintBurnPackedBalanceMock; @@ -45,6 +51,22 @@ export class ERC1155MetaMintBurnPackedBalanceMock__factory extends ContractFacto } const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "string", + name: "_baseURI", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, { anonymous: false, inputs: [ @@ -234,6 +256,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -570,6 +605,19 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -695,4 +743,4 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b5061448c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101505760003560e01c8063a3f091f5116100cd578063e985e9c511610081578063f242432a11610066578063f242432a14610308578063f5d4c8201461031b578063fa4e12d71461032e57610150565b8063e985e9c5146102e2578063eaec5f81146102f557610150565b8063ce0b514b116100b2578063ce0b514b1461029b578063d7a0ad90146102ae578063db90e83c146102c157610150565b8063a3f091f514610275578063bd7a6c411461028857610150565b80632eb2c2d6116101245780634e1273f4116101095780634e1273f41461022f578063a22cb4651461024f578063a3d4926e1461026257610150565b80632eb2c2d614610207578063437ecbe91461021c57610150565b8062fdd58e1461018b57806301ffc9a7146101b45780630e89341c146101d45780632d0335ab146101f4575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613e20565b60405180910390fd5b61019e6101993660046136d8565b610341565b6040516101ab9190613e7d565b60405180910390f35b6101c76101c236600461386b565b610396565b6040516101ab9190613af1565b6101e76101e236600461396a565b6103a9565b6040516101ab9190613b79565b61019e610202366004613202565b6104fc565b61021a61021536600461335c565b610524565b005b61021a61022a366004613703565b61062f565b61024261023d36600461378c565b61063f565b6040516101ab9190613aad565b61021a61025d36600461365c565b6108be565b61021a61027036600461329f565b610957565b61021a610283366004613737565b610acb565b61021a610296366004613552565b610add565b61021a6102a936600461347f565b610ae8565b61021a6102bc3660046135c5565b610bc7565b6102d46102cf36600461396a565b610bd3565b6040516101ab929190613e86565b6101c76102f0366004613267565b610be0565b61019e610303366004613982565b610c1b565b61021a6103163660046134f7565b610c2e565b61021a610329366004613406565b610d32565b6101c761033c366004613689565b610e62565b600080600061034f84610bd3565b73ffffffffffffffffffffffffffffffffffffffff8716600090815260208181526040808320858452909152902054919350915061038d9082610c1b565b95945050505050565b60006103a182611643565b90505b919050565b606060036103b6836116a0565b60405160200180838054600181600116156101000203166002900480156104145780601f106103f2576101008083540402835291820191610414565b820191906000526020600020905b815481529060010190602001808311610400575b5050825160208401908083835b6020831061045e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610421565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff8616148061054d575061054d8533610be0565b6105a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806141c2603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661060e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180613faf603d913960400191505060405180910390fd5b61061a858585856117cc565b610628858585855a86611bd9565b5050505050565b61063a838383611e46565b505050565b8151815160609190811461069e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180613f766039913960400191505060405180910390fd5b6000806106be856000815181106106b157fe5b6020026020010151610bd3565b915091506000806000886000815181106106d457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561074857600080fd5b50604051908082528060200260200182016040528015610772578160200160208202803683370190505b50905061077f8385610c1b565b8160008151811061078c57fe5b602090810291909101015260015b868110156108b1576107b18982815181106106b157fe5b9096509450828614158061081a57508981815181106107cc57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106107f957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610888576000808b838151811061082e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6108928486610c1b565b82828151811061089e57fe5b602090810291909101015260010161079a565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff85166109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613d40565b60606109ae613033565b6060610a6189857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c6040516020016109ec91906139a3565b604051602081830303815290604052805190602001208c604051602001610a1391906139a3565b604051602081830303815290604052805190602001208c610a35576000610a38565b60015b604051602001610a4d96959493929190613afc565b604051602081830303815290604052611eb0565b9050610a6f898989896117cc565b8415610ab25780806020019051810190610a899190613935565b8094508193505050610aa389898989866020015188611bd9565b610aad898361207f565b610ac0565b610ac0898989895a86611bd9565b505050505050505050565b610ad784848484612328565b50505050565b61063a83838361239c565b73ffffffffffffffffffffffffffffffffffffffff8516610b35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613ce2565b6060610b3f613033565b6060610b7789857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c610a35576000610a38565b9050610b8589898989612545565b8415610bb95780806020019051810190610b9f9190613935565b8094508193505050610aa3898989898660200151886125e9565b610ac0898989895a866125e9565b610ad7848484846127da565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610c575750610c578533610be0565b610cac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806140906037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610d18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061432e6038913960400191505060405180910390fd5b610d2485858585612545565b610628858585855a866125e9565b6060610d8e86837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610d68576000610d6b565b60015b89610d77576000610d7a565b60015b604051602001610a4d959493929190613b3d565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610e22908890613af1565b60405180910390a38215610e5a57610e38613033565b81806020019051810190610e4c9190613902565b9050610e58878261207f565b505b505050505050565b600080825111610ebd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806142eb6043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610f29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806142716033913960400191505060405180910390fd5b6000610f3483612a64565b60f81c905060058110610f92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614056603a913960400191505060405180910390fd5b60008160ff166005811115610fa357fe5b9050600080808080856005811115610fb757fe5b141561100e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806140c76036913960400191505060405180910390fd5b600185600581111561101c57fe5b141561115f57875160611461107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061418b6037913960400191505060405180910390fd5b611087886000612b21565b9250611094886020612b21565b9150876040815181106110a357fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561110d573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d8116911614975061163b9650505050505050565b600285600581111561116d57fe5b14156112bd5787516061146111cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061418b6037913960400191505060405180910390fd5b6111d8886000612b21565b92506111e5886020612b21565b9150876040815181106111f457fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa15801561110d573d6000803e3d6000fd5b60038560058111156112cb57fe5b141561148357604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b83811015611359578181015183820152602001611341565b50505050905090810190601f1680156113865780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156113b95781810151838201526020016113a1565b50505050905090810190601f1680156113e65780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561140557600080fd5b505afa158015611419573d6000803e3d6000fd5b505050506040513d602081101561142f57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b0000000000000000000000000000000000000000000000000000000014965061163b95505050505050565b600485600581111561149157fe5b14156115ea57604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b83811015611521578181015183820152602001611509565b50505050905090810190601f16801561154e5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561156c57600080fd5b505afa158015611580573d6000803e3d6000fd5b505050506040513d602081101561159657600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014965061163b95505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614056603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c000000000000000000000000000000000000000000000000000000001415611697575060016103a4565b6103a182612b89565b6060816116e1575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526103a4565b818060005b82156116fa57600101600a830492506116e6565b60608167ffffffffffffffff8111801561171357600080fd5b506040519080825280601f01601f19166020018201604052801561173e576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b83156117c257600a840660300160f81b8282806001900393508151811061178857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350611765565b5095945050505050565b815181518114611827576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806140fd6042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156118635750600081115b15611a355760008061187b856000815181106106b157fe5b73ffffffffffffffffffffffffffffffffffffffff89166000908152602081815260408083208584529091528120548751939550919350916118d391908490889085906118c457fe5b60200260200101516001612be6565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091611929919085908990859061191a57fe5b60200260200101516000612be6565b90508360015b868110156119e3576119468982815181106106b157fe5b90965094508186146119b55773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b6119c684868a84815181106118c457fe5b93506119d983868a848151811061191a57fe5b925060010161192f565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550611ad2565b60005b81811015611ad057828181518110611a4c57fe5b6020026020010151611a7187868481518110611a6457fe5b6020026020010151610341565b1015611ac8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061423b6036913960400191505060405180910390fd5b600101611a38565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611b7e578181015183820152602001611b66565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611bbd578181015183820152602001611ba5565b5050505090500194505050505060405180910390a45050505050565b611bf88573ffffffffffffffffffffffffffffffffffffffff16612df9565b15610e5a5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611cb0578181015183820152602001611c98565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611cef578181015183820152602001611cd7565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611d2b578181015183820152602001611d13565b50505050905090810190601f168015611d585780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611d7d57600080fd5b5087f1158015611d91573d6000803e3d6000fd5b50505050506040513d6020811015611da857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610e58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c81526020018061413f604c913960600191505060405180910390fd5b611e538383836001612e33565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b60608083806020019051810190611ec791906138ab565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611eff836041612b21565b9050818110801590611f1357508160640181105b611f49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613c27565b6000611f8586838780519060200120604051602001611f6a939291906139d9565b60405160208183030381529060405280519060200120612eba565b90506060868387604051602001611f9e93929190613a00565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf599161202991613e7d565b60405180910390a261203d89838388610e62565b612073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613c84565b50505050509392505050565b600061208e8260600151612a64565b60f81c9050600281106120cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613dc3565b60008160ff1660028111156120de57fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff1615612114578660400151612116565b335b9250600085600281111561212657fe5b1415612225578660600151806020019051810190612144919061323a565b909450915073ffffffffffffffffffffffffffffffffffffffff84163014156121955761217388848484612545565b6121908884845a85604051806020016040528060008152506125e9565b612220565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a906121ed908b90879087908790600401613a68565b600060405180830381600087803b15801561220757600080fd5b505af115801561221b573d6000803e3d6000fd5b505050505b61231e565b866060015180602001905181019061223d919061321e565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd90612296908b9087908690600401613a37565b602060405180830381600087803b1580156122b057600080fd5b505af11580156122c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e8919061384f565b61231e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613bca565b5050505050505050565b6123358484846000612e33565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610ad760008585855a866125e9565b8151815181146123f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806141fe603d913960400191505060405180910390fd5b60005b8181101561243d576124358585838151811061241257fe5b602002602001015185848151811061242657fe5b60200260200101516001612e33565b6001016123fa565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156124eb5781810151838201526020016124d3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561252a578181015183820152602001612512565b5050505090500194505050505060405180910390a450505050565b6125528483836001612e33565b61255f8383836000612e33565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6126088573ffffffffffffffffffffffffffffffffffffffff16612df9565b15610e5a5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156126c15781810151838201526020016126a9565b50505050905090810190601f1680156126ee5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561271157600080fd5b5087f1158015612725573d6000803e3d6000fd5b50505050506040513d602081101561273c57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610e58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806142a46047913960600191505060405180910390fd5b8151835114612834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806143e7603e913960400191505060405180910390fd5b8251156129545760008061284e856000815181106106b157fe5b73ffffffffffffffffffffffffffffffffffffffff8816600090815260208181526040808320858452909152812054875193955091935091612897919084908890859061191a57fe5b86519091508360015b8281101561291b576128b78982815181106106b157fe5b90965094508186146129005773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b61291184868a848151811061191a57fe5b93506001016128a0565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612a015781810151838201526020016129e9565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612a40578181015183820152602001612a28565b5050505090500194505050505060405180910390a4610ad760008585855a86611bd9565b600080825111612abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526037815260200180613fec6037913960400191505060405180910390fd5b81600183510381518110612acf57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612b80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c815260200180614366603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612bdd575060016103a4565b6103a182612fe9565b60006020840263ffffffff82846001811115612bfe57fe5b1415612ccc5784821b8701925086831015612c64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806144256032913960400191505060405180910390fd5b64010000000087831c8216860110612cc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806144256032913960400191505060405180910390fd5b612def565b6001846001811115612cda57fe5b1415612d9e5784821b8703925086831115612d40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806140236033913960400191505060405180910390fd5b84818389901c161015612cc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806140236033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806143a26045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612e2c57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080612e3f85610bd3565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150612e7f90828686612be6565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612f8757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612f4a565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f830112613081578081fd5b813561309461308f82613eb8565b613e94565b8181529150602080830190848101818402860182018710156130b557600080fd5b60005b848110156130d4578135845292820192908201906001016130b8565b505050505092915050565b600082601f8301126130ef578081fd5b81356130fd61308f82613ed6565b915080825283602082850101111561311457600080fd5b8060208401602084013760009082016020015292915050565b600082601f83011261313d578081fd5b815161314b61308f82613ed6565b915080825283602082850101111561316257600080fd5b613173816020840160208601613f16565b5092915050565b60006080828403121561318b578081fd5b6040516080810167ffffffffffffffff82821081831117156131a957fe5b816040528293508451835260208501516020840152604085015191506131ce82613f42565b81604084015260608501519150808211156131e857600080fd5b506131f58582860161312d565b6060830152505092915050565b600060208284031215613213578081fd5b8135612e2c81613f42565b60006020828403121561322f578081fd5b8151612e2c81613f42565b6000806040838503121561324c578081fd5b825161325781613f42565b6020939093015192949293505050565b60008060408385031215613279578182fd5b823561328481613f42565b9150602083013561329481613f42565b809150509250929050565b60008060008060008060c087890312156132b7578182fd5b86356132c281613f42565b955060208701356132d281613f42565b9450604087013567ffffffffffffffff808211156132ee578384fd5b6132fa8a838b01613071565b9550606089013591508082111561330f578384fd5b61331b8a838b01613071565b94506080890135915061332d82613f67565b90925060a08801359080821115613342578283fd5b5061334f89828a016130df565b9150509295509295509295565b600080600080600060a08688031215613373578081fd5b853561337e81613f42565b9450602086013561338e81613f42565b9350604086013567ffffffffffffffff808211156133aa578283fd5b6133b689838a01613071565b945060608801359150808211156133cb578283fd5b6133d789838a01613071565b935060808801359150808211156133ec578283fd5b506133f9888289016130df565b9150509295509295909350565b600080600080600060a0868803121561341d578081fd5b853561342881613f42565b9450602086013561343881613f42565b9350604086013561344881613f67565b9250606086013561345881613f67565b9150608086013567ffffffffffffffff811115613473578182fd5b6133f9888289016130df565b60008060008060008060c08789031215613497578384fd5b86356134a281613f42565b955060208701356134b281613f42565b9450604087013593506060870135925060808701356134d081613f67565b915060a087013567ffffffffffffffff8111156134eb578182fd5b61334f89828a016130df565b600080600080600060a0868803121561350e578283fd5b853561351981613f42565b9450602086013561352981613f42565b93506040860135925060608601359150608086013567ffffffffffffffff811115613473578182fd5b600080600060608486031215613566578081fd5b833561357181613f42565b9250602084013567ffffffffffffffff8082111561358d578283fd5b61359987838801613071565b935060408601359150808211156135ae578283fd5b506135bb86828701613071565b9150509250925092565b600080600080608085870312156135da578182fd5b84356135e581613f42565b9350602085013567ffffffffffffffff80821115613601578384fd5b61360d88838901613071565b94506040870135915080821115613622578384fd5b61362e88838901613071565b93506060870135915080821115613643578283fd5b50613650878288016130df565b91505092959194509250565b6000806040838503121561366e578182fd5b823561367981613f42565b9150602083013561329481613f67565b6000806000806080858703121561369e578182fd5b84356136a981613f42565b935060208501359250604085013567ffffffffffffffff808211156136cc578384fd5b61362e888389016130df565b600080604083850312156136ea578182fd5b82356136f581613f42565b946020939093013593505050565b600080600060608486031215613717578081fd5b833561372281613f42565b95602085013595506040909401359392505050565b6000806000806080858703121561374c578182fd5b843561375781613f42565b93506020850135925060408501359150606085013567ffffffffffffffff811115613780578182fd5b613650878288016130df565b6000806040838503121561379e578182fd5b823567ffffffffffffffff808211156137b5578384fd5b818501915085601f8301126137c8578384fd5b81356137d661308f82613eb8565b80828252602080830192508086018a8283870289010111156137f6578889fd5b8896505b8487101561382157803561380d81613f42565b8452600196909601959281019281016137fa565b509096508701359350505080821115613838578283fd5b5061384585828601613071565b9150509250929050565b600060208284031215613860578081fd5b8151612e2c81613f67565b60006020828403121561387c578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612e2c578182fd5b600080604083850312156138bd578182fd5b825167ffffffffffffffff808211156138d4578384fd5b6138e08683870161312d565b935060208501519150808211156138f5578283fd5b506138458582860161312d565b600060208284031215613913578081fd5b815167ffffffffffffffff811115613929578182fd5b61163b8482850161317a565b60008060408385031215613947578182fd5b825167ffffffffffffffff8082111561395e578384fd5b6138e08683870161317a565b60006020828403121561397b578081fd5b5035919050565b60008060408385031215613994578182fd5b50508035926020909101359150565b815160009082906020808601845b838110156139cd578151855293820193908201906001016139b1565b50929695505050505050565b600084516139eb818460208901613f16565b91909101928352506020820152604001919050565b60008451613a12818460208901613f16565b82018481528351613a2a816020808501908801613f16565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b81811015613ae557835183529284019291840191600101613ac9565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b6000602082528251806020840152613b98816040850160208701613f16565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6020808252603f908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a2045524332305f5452414e534645525f4641494c454400606082015260800190565b6020808252603c908201527f455243313135354d6574615061636b656442616c616e6365235f7369676e617460408201527f75726556616c69646174696f6e3a20494e56414c49445f4e4f4e434500000000606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365235f7369676e6174908201527f75726556616c69646174696f6e3a20494e56414c49445f5349474e4154555245606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365236d657461536166908201527f655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54606082015260800190565b60208082526045908201527f455243313135354d6574615061636b656442616c616e6365236d65746153616660408201527f6542617463685472616e7366657246726f6d3a20494e56414c49445f5245434960608201527f5049454e54000000000000000000000000000000000000000000000000000000608082015260a00190565b6020808252603b908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a20554e535550504f525445445f544f4b454e0000000000606082015260800190565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff81118282101715613eb057fe5b604052919050565b600067ffffffffffffffff821115613ecc57fe5b5060209081020190565b600067ffffffffffffffff821115613eea57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015613f31578181015183820152602001613f19565b83811115610ad75750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114613f6457600080fd5b50565b8015158114613f6457600080fdfe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e4154555245455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e4154555245455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f5245515549524544455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e4552455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a264697066735822122019be05877fb85bb8642e043044f9c6ceb709fe50b18d08c0aa3d18114927e9bd64736f6c63430007040033"; + "0x60806040523480156200001157600080fd5b506040516200483b3803806200483b8339810160408190526200003491620001dc565b8151829082906200004d9060049060208501906200006e565b508051620000639060039060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b6145e780620002546000396000f3fe608060405234801561001057600080fd5b50600436106101765760003560e01c8063a3d4926e116100d8578063db90e83c1161008c578063f242432a11610066578063f242432a1461033e578063f5d4c82014610351578063fa4e12d71461036457610176565b8063db90e83c146102f7578063e985e9c514610318578063eaec5f811461032b57610176565b8063bd7a6c41116100bd578063bd7a6c41146102be578063ce0b514b146102d1578063d7a0ad90146102e457610176565b8063a3d4926e14610298578063a3f091f5146102ab57610176565b80632eb2c2d61161012f5780634e1273f4116101145780634e1273f41461025d5780636c0360eb1461027d578063a22cb4651461028557610176565b80632eb2c2d614610235578063437ecbe91461024a57610176565b806306fdde031161016057806306fdde03146101fa5780630e89341c1461020f5780632d0335ab1461022257610176565b8062fdd58e146101b157806301ffc9a7146101da575b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613f7b565b60405180910390fd5b6101c46101bf366004613833565b610377565b6040516101d19190613fd8565b60405180910390f35b6101ed6101e83660046139c6565b6103cc565b6040516101d19190613c4c565b6102026103df565b6040516101d19190613cd4565b61020261021d366004613ac5565b61048b565b6101c461023036600461335d565b6105de565b6102486102433660046134b7565b610606565b005b61024861025836600461385e565b610711565b61027061026b3660046138e7565b610721565b6040516101d19190613c08565b6102026109a0565b6102486102933660046137b7565b610a19565b6102486102a63660046133fa565b610ab2565b6102486102b9366004613892565b610c26565b6102486102cc3660046136ad565b610c38565b6102486102df3660046135da565b610c43565b6102486102f2366004613720565b610d22565b61030a610305366004613ac5565b610d2e565b6040516101d1929190613fe1565b6101ed6103263660046133c2565b610d3b565b6101c4610339366004613add565b610d76565b61024861034c366004613652565b610d89565b61024861035f366004613561565b610e8d565b6101ed6103723660046137e4565b610fbd565b600080600061038584610d2e565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506103c39082610d76565b95945050505050565b60006103d78261179e565b90505b919050565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104835780601f1061045857610100808354040283529160200191610483565b820191906000526020600020905b81548152906001019060200180831161046657829003601f168201915b505050505081565b60606003610498836117fb565b60405160200180838054600181600116156101000203166002900480156104f65780601f106104d45761010080835404028352918201916104f6565b820191906000526020600020905b8154815290600101906020018083116104e2575b5050825160208401908083835b6020831061054057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610503565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff8616148061062f575061062f8533610d3b565b610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c81526020018061431d603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166106f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d81526020018061410a603d913960400191505060405180910390fd5b6106fc85858585611927565b61070a858585855a86611d34565b5050505050565b61071c838383611fa1565b505050565b81518151606091908114610780576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806140d16039913960400191505060405180910390fd5b6000806107a08560008151811061079357fe5b6020026020010151610d2e565b915091506000806000886000815181106107b657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561082a57600080fd5b50604051908082528060200260200182016040528015610854578160200160208202803683370190505b5090506108618385610d76565b8160008151811061086e57fe5b602090810291909101015260015b868110156109935761089389828151811061079357fe5b909650945082861415806108fc57508981815181106108ae57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106108db57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561096a576000808b838151811061091057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6109748486610d76565b82828151811061098057fe5b602090810291909101015260010161087c565b5098975050505050505050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104835780601f1061045857610100808354040283529160200191610483565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8516610aff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613e9b565b6060610b0961318e565b6060610bbc89857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c604051602001610b479190613afe565b604051602081830303815290604052805190602001208c604051602001610b6e9190613afe565b604051602081830303815290604052805190602001208c610b90576000610b93565b60015b604051602001610ba896959493929190613c57565b60405160208183030381529060405261200b565b9050610bca89898989611927565b8415610c0d5780806020019051810190610be49190613a90565b8094508193505050610bfe89898989866020015188611d34565b610c0889836121da565b610c1b565b610c1b898989895a86611d34565b505050505050505050565b610c3284848484612483565b50505050565b61071c8383836124f7565b73ffffffffffffffffffffffffffffffffffffffff8516610c90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613e3d565b6060610c9a61318e565b6060610cd289857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c610b90576000610b93565b9050610ce0898989896126a0565b8415610d145780806020019051810190610cfa9190613a90565b8094508193505050610bfe89898989866020015188612744565b610c1b898989895a86612744565b610c3284848484612935565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610db25750610db28533610d3b565b610e07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141eb6037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610e73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806144896038913960400191505060405180910390fd5b610e7f858585856126a0565b61070a858585855a86612744565b6060610ee986837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610ec3576000610ec6565b60015b89610ed2576000610ed5565b60015b604051602001610ba8959493929190613c98565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610f7d908890613c4c565b60405180910390a38215610fb557610f9361318e565b81806020019051810190610fa79190613a5d565b9050610fb387826121da565b505b505050505050565b600080825111611018576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806144466043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516611084576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806143cc6033913960400191505060405180910390fd5b600061108f83612bbf565b60f81c9050600581106110ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806141b1603a913960400191505060405180910390fd5b60008160ff1660058111156110fe57fe5b905060008080808085600581111561111257fe5b1415611169576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806142226036913960400191505060405180910390fd5b600185600581111561117757fe5b14156112ba5787516061146111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806142e66037913960400191505060405180910390fd5b6111e2886000612c7c565b92506111ef886020612c7c565b9150876040815181106111fe57fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611268573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d811691161497506117969650505050505050565b60028560058111156112c857fe5b1415611418578751606114611328576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806142e66037913960400191505060405180910390fd5b611333886000612c7c565b9250611340886020612c7c565b91508760408151811061134f57fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611268573d6000803e3d6000fd5b600385600581111561142657fe5b14156115de57604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b838110156114b457818101518382015260200161149c565b50505050905090810190601f1680156114e15780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156115145781810151838201526020016114fc565b50505050905090810190601f1680156115415780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561156057600080fd5b505afa158015611574573d6000803e3d6000fd5b505050506040513d602081101561158a57600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b0000000000000000000000000000000000000000000000000000000014965061179695505050505050565b60048560058111156115ec57fe5b141561174557604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b8381101561167c578181015183820152602001611664565b50505050905090810190601f1680156116a95780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156116c757600080fd5b505afa1580156116db573d6000803e3d6000fd5b505050506040513d60208110156116f157600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e0000000000000000000000000000000000000000000000000000000014965061179695505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806141b1603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156117f2575060016103da565b6103d782612ce4565b60608161183c575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526103da565b818060005b821561185557600101600a83049250611841565b60608167ffffffffffffffff8111801561186e57600080fd5b506040519080825280601f01601f191660200182016040528015611899576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561191d57600a840660300160f81b828280600190039350815181106118e357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506118c0565b5095945050505050565b815181518114611982576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806142586042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156119be5750600081115b15611b90576000806119d68560008151811061079357fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091611a2e9190849088908590611a1f57fe5b60200260200101516001612d41565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091611a849190859089908590611a7557fe5b60200260200101516000612d41565b90508360015b86811015611b3e57611aa189828151811061079357fe5b9096509450818614611b105773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b611b2184868a8481518110611a1f57fe5b9350611b3483868a8481518110611a7557fe5b9250600101611a8a565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550611c2d565b60005b81811015611c2b57828181518110611ba757fe5b6020026020010151611bcc87868481518110611bbf57fe5b6020026020010151610377565b1015611c23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806143966036913960400191505060405180910390fd5b600101611b93565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611cd9578181015183820152602001611cc1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611d18578181015183820152602001611d00565b5050505090500194505050505060405180910390a45050505050565b611d538573ffffffffffffffffffffffffffffffffffffffff16612f54565b15610fb55760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611e0b578181015183820152602001611df3565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611e4a578181015183820152602001611e32565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611e86578181015183820152602001611e6e565b50505050905090810190601f168015611eb35780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611ed857600080fd5b5087f1158015611eec573d6000803e3d6000fd5b50505050506040513d6020811015611f0357600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610fb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c81526020018061429a604c913960600191505060405180910390fd5b611fae8383836001612f8e565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b606080838060200190518101906120229190613a06565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600260205260408120549194509192509061205a836041612c7c565b905081811080159061206e57508160640181105b6120a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613d82565b60006120e0868387805190602001206040516020016120c593929190613b34565b60405160208183030381529060405280519060200120613015565b905060608683876040516020016120f993929190613b5b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf599161218491613fd8565b60405180910390a261219889838388610fbd565b6121ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613ddf565b50505050509392505050565b60006121e98260600151612bbf565b60f81c905060028110612228576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613f1e565b60008160ff16600281111561223957fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff161561226f578660400151612271565b335b9250600085600281111561228157fe5b141561238057866060015180602001905181019061229f9190613395565b909450915073ffffffffffffffffffffffffffffffffffffffff84163014156122f0576122ce888484846126a0565b6122eb8884845a8560405180602001604052806000815250612744565b61237b565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a90612348908b90879087908790600401613bc3565b600060405180830381600087803b15801561236257600080fd5b505af1158015612376573d6000803e3d6000fd5b505050505b612479565b86606001518060200190518101906123989190613379565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd906123f1908b9087908690600401613b92565b602060405180830381600087803b15801561240b57600080fd5b505af115801561241f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244391906139aa565b612479576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a890613d25565b5050505050505050565b6124908484846000612f8e565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4610c3260008585855a86612744565b815181518114612552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180614359603d913960400191505060405180910390fd5b60005b81811015612598576125908585838151811061256d57fe5b602002602001015185848151811061258157fe5b60200260200101516001612f8e565b600101612555565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561264657818101518382015260200161262e565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561268557818101518382015260200161266d565b5050505090500194505050505060405180910390a450505050565b6126ad8483836001612f8e565b6126ba8383836000612f8e565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6127638573ffffffffffffffffffffffffffffffffffffffff16612f54565b15610fb55760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561281c578181015183820152602001612804565b50505050905090810190601f1680156128495780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561286c57600080fd5b5087f1158015612880573d6000803e3d6000fd5b50505050506040513d602081101561289757600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610fb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806143ff6047913960600191505060405180910390fd5b815183511461298f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180614542603e913960400191505060405180910390fd5b825115612aaf576000806129a98560008151811061079357fe5b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091528120548751939550919350916129f29190849088908590611a7557fe5b86519091508360015b82811015612a7657612a1289828151811061079357fe5b9096509450818614612a5b5773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b612a6c84868a8481518110611a7557fe5b93506001016129fb565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612b5c578181015183820152602001612b44565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612b9b578181015183820152602001612b83565b5050505090500194505050505060405180910390a4610c3260008585855a86611d34565b600080825111612c1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141476037913960400191505060405180910390fd5b81600183510381518110612c2a57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612cdb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806144c1603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612d38575060016103da565b6103d782613144565b60006020840263ffffffff82846001811115612d5957fe5b1415612e275784821b8701925086831015612dbf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806145806032913960400191505060405180910390fd5b64010000000087831c8216860110612e22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806145806032913960400191505060405180910390fd5b612f4a565b6001846001811115612e3557fe5b1415612ef95784821b8703925086831115612e9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603381526020018061417e6033913960400191505060405180910390fd5b84818389901c161015612e22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603381526020018061417e6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806144fd6045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590612f8757507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080612f9a85610d2e565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150612fda90828686612d41565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b602083106130e257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016130a5565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b600082601f8301126131dc578081fd5b81356131ef6131ea82614013565b613fef565b81815291506020808301908481018184028601820187101561321057600080fd5b60005b8481101561322f57813584529282019290820190600101613213565b505050505092915050565b600082601f83011261324a578081fd5b81356132586131ea82614031565b915080825283602082850101111561326f57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112613298578081fd5b81516132a66131ea82614031565b91508082528360208285010111156132bd57600080fd5b6132ce816020840160208601614071565b5092915050565b6000608082840312156132e6578081fd5b6040516080810167ffffffffffffffff828210818311171561330457fe5b816040528293508451835260208501516020840152604085015191506133298261409d565b816040840152606085015191508082111561334357600080fd5b5061335085828601613288565b6060830152505092915050565b60006020828403121561336e578081fd5b8135612f878161409d565b60006020828403121561338a578081fd5b8151612f878161409d565b600080604083850312156133a7578081fd5b82516133b28161409d565b6020939093015192949293505050565b600080604083850312156133d4578182fd5b82356133df8161409d565b915060208301356133ef8161409d565b809150509250929050565b60008060008060008060c08789031215613412578182fd5b863561341d8161409d565b9550602087013561342d8161409d565b9450604087013567ffffffffffffffff80821115613449578384fd5b6134558a838b016131cc565b9550606089013591508082111561346a578384fd5b6134768a838b016131cc565b945060808901359150613488826140c2565b90925060a0880135908082111561349d578283fd5b506134aa89828a0161323a565b9150509295509295509295565b600080600080600060a086880312156134ce578081fd5b85356134d98161409d565b945060208601356134e98161409d565b9350604086013567ffffffffffffffff80821115613505578283fd5b61351189838a016131cc565b94506060880135915080821115613526578283fd5b61353289838a016131cc565b93506080880135915080821115613547578283fd5b506135548882890161323a565b9150509295509295909350565b600080600080600060a08688031215613578578081fd5b85356135838161409d565b945060208601356135938161409d565b935060408601356135a3816140c2565b925060608601356135b3816140c2565b9150608086013567ffffffffffffffff8111156135ce578182fd5b6135548882890161323a565b60008060008060008060c087890312156135f2578384fd5b86356135fd8161409d565b9550602087013561360d8161409d565b94506040870135935060608701359250608087013561362b816140c2565b915060a087013567ffffffffffffffff811115613646578182fd5b6134aa89828a0161323a565b600080600080600060a08688031215613669578283fd5b85356136748161409d565b945060208601356136848161409d565b93506040860135925060608601359150608086013567ffffffffffffffff8111156135ce578182fd5b6000806000606084860312156136c1578081fd5b83356136cc8161409d565b9250602084013567ffffffffffffffff808211156136e8578283fd5b6136f4878388016131cc565b93506040860135915080821115613709578283fd5b50613716868287016131cc565b9150509250925092565b60008060008060808587031215613735578182fd5b84356137408161409d565b9350602085013567ffffffffffffffff8082111561375c578384fd5b613768888389016131cc565b9450604087013591508082111561377d578384fd5b613789888389016131cc565b9350606087013591508082111561379e578283fd5b506137ab8782880161323a565b91505092959194509250565b600080604083850312156137c9578182fd5b82356137d48161409d565b915060208301356133ef816140c2565b600080600080608085870312156137f9578182fd5b84356138048161409d565b935060208501359250604085013567ffffffffffffffff80821115613827578384fd5b6137898883890161323a565b60008060408385031215613845578182fd5b82356138508161409d565b946020939093013593505050565b600080600060608486031215613872578081fd5b833561387d8161409d565b95602085013595506040909401359392505050565b600080600080608085870312156138a7578182fd5b84356138b28161409d565b93506020850135925060408501359150606085013567ffffffffffffffff8111156138db578182fd5b6137ab8782880161323a565b600080604083850312156138f9578182fd5b823567ffffffffffffffff80821115613910578384fd5b818501915085601f830112613923578384fd5b81356139316131ea82614013565b80828252602080830192508086018a828387028901011115613951578889fd5b8896505b8487101561397c5780356139688161409d565b845260019690960195928101928101613955565b509096508701359350505080821115613993578283fd5b506139a0858286016131cc565b9150509250929050565b6000602082840312156139bb578081fd5b8151612f87816140c2565b6000602082840312156139d7578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612f87578182fd5b60008060408385031215613a18578182fd5b825167ffffffffffffffff80821115613a2f578384fd5b613a3b86838701613288565b93506020850151915080821115613a50578283fd5b506139a085828601613288565b600060208284031215613a6e578081fd5b815167ffffffffffffffff811115613a84578182fd5b611796848285016132d5565b60008060408385031215613aa2578182fd5b825167ffffffffffffffff80821115613ab9578384fd5b613a3b868387016132d5565b600060208284031215613ad6578081fd5b5035919050565b60008060408385031215613aef578182fd5b50508035926020909101359150565b815160009082906020808601845b83811015613b2857815185529382019390820190600101613b0c565b50929695505050505050565b60008451613b46818460208901614071565b91909101928352506020820152604001919050565b60008451613b6d818460208901614071565b82018481528351613b85816020808501908801614071565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b81811015613c4057835183529284019291840191600101613c24565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b6000602082528251806020840152613cf3816040850160208701614071565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6020808252603f908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a2045524332305f5452414e534645525f4641494c454400606082015260800190565b6020808252603c908201527f455243313135354d6574615061636b656442616c616e6365235f7369676e617460408201527f75726556616c69646174696f6e3a20494e56414c49445f4e4f4e434500000000606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365235f7369676e6174908201527f75726556616c69646174696f6e3a20494e56414c49445f5349474e4154555245606082015260800190565b602080825260409082018190527f455243313135354d6574615061636b656442616c616e6365236d657461536166908201527f655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54606082015260800190565b60208082526045908201527f455243313135354d6574615061636b656442616c616e6365236d65746153616660408201527f6542617463685472616e7366657246726f6d3a20494e56414c49445f5245434960608201527f5049454e54000000000000000000000000000000000000000000000000000000608082015260a00190565b6020808252603b908201527f455243313135354d6574615061636b656442616c616e6365235f7472616e736660408201527f65724761734665653a20554e535550504f525445445f544f4b454e0000000000606082015260800190565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561400b57fe5b604052919050565b600067ffffffffffffffff82111561402757fe5b5060209081020190565b600067ffffffffffffffff82111561404557fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561408c578181015183820152602001614074565b83811115610c325750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146140bf57600080fd5b50565b80151581146140bf57600080fdfe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e4154555245455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e4154555245455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f5245515549524544455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f575369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e4552455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a2646970667358221220bf9bed61a3fbfa3bd78b8b925b5837c0234cb1c64c9bdc2d860315998538204a64736f6c63430007040033"; diff --git a/src/gen/typechain/factories/ERC1155MetadataMock__factory.ts b/src/gen/typechain/factories/ERC1155MetadataMock__factory.ts index 6fc77dd..b0e5aed 100644 --- a/src/gen/typechain/factories/ERC1155MetadataMock__factory.ts +++ b/src/gen/typechain/factories/ERC1155MetadataMock__factory.ts @@ -13,14 +13,22 @@ export class ERC1155MetadataMock__factory extends ContractFactory { } deploy( + _name: string, + _baseURI: string, overrides?: Overrides & { from?: string | Promise } ): Promise { - return super.deploy(overrides || {}) as Promise; + return super.deploy( + _name, + _baseURI, + overrides || {} + ) as Promise; } getDeployTransaction( + _name: string, + _baseURI: string, overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); + return super.getDeployTransaction(_name, _baseURI, overrides || {}); } attach(address: string): ERC1155MetadataMock { return super.attach(address) as ERC1155MetadataMock; @@ -37,6 +45,22 @@ export class ERC1155MetadataMock__factory extends ContractFactory { } const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "string", + name: "_baseURI", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, { anonymous: false, inputs: [ @@ -62,25 +86,6 @@ const _abi = [ name: "ApprovalForAll", type: "event", }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "signer", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "newNonce", - type: "uint256", - }, - ], - name: "NonceChange", - type: "event", - }, { anonymous: false, inputs: [ @@ -227,93 +232,13 @@ const _abi = [ type: "function", }, { - inputs: [ - { - internalType: "address", - name: "_from", - type: "address", - }, - { - internalType: "uint256[]", - name: "_ids", - type: "uint256[]", - }, - { - internalType: "uint256[]", - name: "_values", - type: "uint256[]", - }, - ], - name: "batchBurnMock", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_to", - type: "address", - }, - { - internalType: "uint256[]", - name: "_ids", - type: "uint256[]", - }, - { - internalType: "uint256[]", - name: "_values", - type: "uint256[]", - }, - { - internalType: "bytes", - name: "_data", - type: "bytes", - }, - ], - name: "batchMintMock", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_from", - type: "address", - }, - { - internalType: "uint256", - name: "_id", - type: "uint256", - }, - { - internalType: "uint256", - name: "_value", - type: "uint256", - }, - ], - name: "burnMock", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_signer", - type: "address", - }, - ], - name: "getNonce", + inputs: [], + name: "baseURI", outputs: [ { - internalType: "uint256", - name: "nonce", - type: "uint256", + internalType: "string", + name: "", + type: "string", }, ], stateMutability: "view", @@ -343,40 +268,6 @@ const _abi = [ stateMutability: "view", type: "function", }, - { - inputs: [ - { - internalType: "address", - name: "_signerAddress", - type: "address", - }, - { - internalType: "bytes32", - name: "_hash", - type: "bytes32", - }, - { - internalType: "bytes", - name: "_data", - type: "bytes", - }, - { - internalType: "bytes", - name: "_sig", - type: "bytes", - }, - ], - name: "isValidSignature", - outputs: [ - { - internalType: "bool", - name: "isValid", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, { inputs: [ { @@ -391,140 +282,16 @@ const _abi = [ type: "function", }, { - inputs: [ - { - internalType: "address", - name: "_from", - type: "address", - }, - { - internalType: "address", - name: "_to", - type: "address", - }, - { - internalType: "uint256[]", - name: "_ids", - type: "uint256[]", - }, - { - internalType: "uint256[]", - name: "_amounts", - type: "uint256[]", - }, - { - internalType: "bool", - name: "_isGasFee", - type: "bool", - }, - { - internalType: "bytes", - name: "_data", - type: "bytes", - }, - ], - name: "metaSafeBatchTransferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_from", - type: "address", - }, - { - internalType: "address", - name: "_to", - type: "address", - }, - { - internalType: "uint256", - name: "_id", - type: "uint256", - }, - { - internalType: "uint256", - name: "_amount", - type: "uint256", - }, - { - internalType: "bool", - name: "_isGasFee", - type: "bool", - }, - { - internalType: "bytes", - name: "_data", - type: "bytes", - }, - ], - name: "metaSafeTransferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_owner", - type: "address", - }, - { - internalType: "address", - name: "_operator", - type: "address", - }, - { - internalType: "bool", - name: "_approved", - type: "bool", - }, - { - internalType: "bool", - name: "_isGasFee", - type: "bool", - }, - { - internalType: "bytes", - name: "_data", - type: "bytes", - }, - ], - name: "metaSetApprovalForAll", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "_to", - type: "address", - }, - { - internalType: "uint256", - name: "_id", - type: "uint256", - }, - { - internalType: "uint256", - name: "_value", - type: "uint256", - }, + inputs: [], + name: "name", + outputs: [ { - internalType: "bytes", - name: "_data", - type: "bytes", + internalType: "string", + name: "", + type: "string", }, ], - name: "mintMock", - outputs: [], - stateMutability: "nonpayable", + stateMutability: "view", type: "function", }, { @@ -665,4 +432,4 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50614417806100206000396000f3fe608060405234801561001057600080fd5b50600436106101505760003560e01c8063a22cb465116100cd578063d7a0ad9011610081578063f242432a11610066578063f242432a146102fa578063f5d4c8201461030d578063fa4e12d71461032057610150565b8063d7a0ad90146102d4578063e985e9c5146102e757610150565b8063a3f091f5116100b2578063a3f091f51461029b578063bd7a6c41146102ae578063ce0b514b146102c157610150565b8063a22cb46514610275578063a3d4926e1461028857610150565b80632d0335ab11610124578063437ecbe911610109578063437ecbe91461022f5780634e1273f4146102425780637e518ec81461026257610150565b80632d0335ab146102095780632eb2c2d61461021c57610150565b8062fdd58e1461018b57806301ffc9a7146101b45780630e89341c146101d45780631ea430d4146101f4575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613dab565b60405180910390fd5b61019e6101993660046137ba565b610333565b6040516101ab9190613f7c565b60405180910390f35b6101c76101c2366004613980565b610366565b6040516101ab9190613c18565b6101e76101e2366004613ab2565b610379565b6040516101ab9190613ca0565b610207610202366004613931565b6104cc565b005b61019e6102173660046132e4565b6104d8565b61020761022a36600461343e565b610500565b61020761023d3660046137e5565b61060b565b61025561025036600461386e565b61061b565b6040516101ab9190613bd4565b610207610270366004613a17565b610767565b61020761028336600461373e565b610770565b610207610296366004613381565b610809565b6102076102a9366004613819565b61097d565b6102076102bc366004613634565b61098f565b6102076102cf366004613561565b61099a565b6102076102e23660046136a7565b610a79565b6101c76102f5366004613349565b610a85565b6102076103083660046135d9565b610ac0565b61020761031b3660046134e8565b610bc4565b6101c761032e36600461376b565b610cf4565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b6000610371826114d5565b90505b919050565b6060600361038683611532565b60405160200180838054600181600116156101000203166002900480156103e45780601f106103c25761010080835404028352918201916103e4565b820191906000526020600020905b8154815290600101906020018083116103d0575b5050825160208401908083835b6020831061042e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016103f1565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b6104d58161165e565b50565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b3373ffffffffffffffffffffffffffffffffffffffff8616148061052957506105298533610a85565b61057e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061428b602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166105ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806141cc6030913960400191505060405180910390fd5b6105f685858585611922565b610604858585855a86611c76565b5050505050565b610616838383611ee3565b505050565b60608151835114610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061422c602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561069157600080fd5b506040519080825280602002602001820160405280156106bb578160200160208202803683370190505b50905060005b845181101561075f576000808683815181106106d957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085838151811061072957fe5b602002602001015181526020019081526020016000205482828151811061074c57fe5b60209081029190910101526001016106c1565b509392505050565b6104d581611f8e565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff8516610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613e65565b6060610860613074565b606061091389857fa3d4926e8cf8fe8e020cd29f514c256bc2eec62aa2337e415f1a33a4828af5a060001b8c8c8c60405160200161089e9190613aca565b604051602081830303815290604052805190602001208c6040516020016108c59190613aca565b604051602081830303815290604052805190602001208c6108e75760006108ea565b60015b6040516020016108ff96959493929190613c23565b604051602081830303815290604052611fa5565b905061092189898989611922565b8415610964578080602001905181019061093b9190613a7d565b809450819350505061095589898989866020015188611c76565b61095f8983612174565b610972565b610972898989895a86611c76565b505050505050505050565b6109898484848461241d565b50505050565b6106168383836124d2565b73ffffffffffffffffffffffffffffffffffffffff85166109e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613cf1565b60606109f1613074565b6060610a2989857fce0b514b3931bdbe4d5d44e4f035afe7113767b7db71949271f6a62d9c60f558828c8c8c8c6108e75760006108ea565b9050610a3789898989612712565b8415610a6b5780806020019051810190610a519190613a7d565b809450819350505061095589898989866020015188612815565b610972898989895a86612815565b61098984848484612a06565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610ae95750610ae98533610a85565b610b3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806140c6602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610baa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180614064602b913960400191505060405180910390fd5b610bb685858585612712565b610604858585855a86612815565b6060610c2086837ff5d4c820494c8595de274c7ff619bead38aac4fbc3d143b5bf956aa4b84fa524828989610bfa576000610bfd565b60015b89610c09576000610c0c565b60015b6040516020016108ff959493929190613c64565b73ffffffffffffffffffffffffffffffffffffffff8781166000818152600160209081526040808320948b16808452949091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168915151790555192935090917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610cb4908890613c18565b60405180910390a38215610cec57610cca613074565b81806020019051810190610cde9190613a4a565b9050610cea8782612174565b505b505050505050565b600080825111610d4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001806142ba6043913960600191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610dbb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806142586033913960400191505060405180910390fd5b6000610dc683612c50565b60f81c905060058110610e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614125603a913960400191505060405180910390fd5b60008160ff166005811115610e3557fe5b9050600080808080856005811115610e4957fe5b1415610ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061415f6036913960400191505060405180910390fd5b6001856005811115610eae57fe5b1415610ff1578751606114610f0e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141956037913960400191505060405180910390fd5b610f19886000612d0d565b9250610f26886020612d0d565b915087604081518110610f3557fe5b602001015160f81c60f81b60f81c935060018a85858560405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610f9f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015173ffffffffffffffffffffffffffffffffffffffff8d811691161497506114cd9650505050505050565b6002856005811115610fff57fe5b141561114f57875160611461105f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806141956037913960400191505060405180910390fd5b61106a886000612d0d565b9250611077886020612d0d565b91508760408151811061108657fe5b01602090810151604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082018f905282518083039091018152605c82018084528151918601919091206000909152607c82018084525260f89290921c609c830181905260bc830187905260dc8301869052905190965060019260fc8084019391927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610f9f573d6000803e3d6000fd5b600385600581111561115d57fe5b141561131557604080517f20c13b0b000000000000000000000000000000000000000000000000000000008152600481019182528a5160448201528a5173ffffffffffffffffffffffffffffffffffffffff8e16926320c13b0b928d928d92918291602482019160640190602087019080838360005b838110156111eb5781810151838201526020016111d3565b50505050905090810190601f1680156112185780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561124b578181015183820152602001611233565b50505050905090810190601f1680156112785780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f20c13b0b000000000000000000000000000000000000000000000000000000001496506114cd95505050505050565b600485600581111561132357fe5b141561147c57604080517f1626ba7e000000000000000000000000000000000000000000000000000000008152600481018c8152602482019283528a5160448301528a5173ffffffffffffffffffffffffffffffffffffffff8f1693631626ba7e938f938e9390929160640190602085019080838360005b838110156113b357818101518382015260200161139b565b50505050905090810190601f1680156113e05780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156113fe57600080fd5b505afa158015611412573d6000803e3d6000fd5b505050506040513d602081101561142857600080fd5b50517fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e000000000000000000000000000000000000000000000000000000001496506114cd95505050505050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180614125603a913960400191505060405180910390fd5b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561152957506001610374565b61037182612d75565b606081611573575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610374565b818060005b821561158c57600101600a83049250611578565b60608167ffffffffffffffff811180156115a557600080fd5b506040519080825280601f01601f1916602001820160405280156115d0576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561165457600a840660300160f81b8282806001900393508151811061161a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506115f7565b5095945050505050565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156117085780601f106116dd57610100808354040283529160200191611708565b820191906000526020600020905b8154815290600101906020018083116116eb57829003601f168201915b50505050509050606060005b8351811015610989578261173a85838151811061172d57fe5b6020026020010151611532565b6040516020018083805190602001908083835b6020831061178a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161174d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905285519190930192850191508083835b6020831061180e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016117d1565b6001836020036101000a038019825116818451168082178552505050505050905001807f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060050192505050604051602081830303815290604052915083818151811061187957fe5b60200260200101517f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b836040518080602001828103825283818151815260200191508051906020019080838360005b838110156118e05781810151838201526020016118c8565b50505050905090810190601f16801561190d5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2600101611714565b805182511461197c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806140f06035913960400191505060405180910390fd5b815160005b81811015611b6e57611a1183828151811061199857fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106119ec57fe5b6020026020010151815260200190815260200160002054612dd290919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110611a5d57fe5b6020026020010151815260200190815260200160002081905550611aff838281518110611a8657fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110611ada57fe5b6020026020010151815260200190815260200160002054612e4990919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110611b4b57fe5b602090810291909101810151825281019190915260400160002055600101611981565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611c1b578181015183820152602001611c03565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611c5a578181015183820152602001611c42565b5050505090500194505050505060405180910390a45050505050565b611c958573ffffffffffffffffffffffffffffffffffffffff16612ec4565b15610cec5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611d4d578181015183820152602001611d35565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611d8c578181015183820152602001611d74565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611dc8578181015183820152602001611db0565b50505050905090810190601f168015611df55780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611e1a57600080fd5b5087f1158015611e2e573d6000803e3d6000fd5b50505050506040513d6020811015611e4557600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610cea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f81526020018061432d603f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611f1c9082612dd2565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b8051611fa19060039060208401906130b2565b5050565b60608083806020019051810190611fbc91906139c0565b73ffffffffffffffffffffffffffffffffffffffff871660009081526002602052604081205491945091925090611ff4836041612d0d565b905081811080159061200857508160640181105b61203e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613ec2565b600061207a8683878051906020012060405160200161205f93929190613b00565b60405160208183030381529060405280519060200120612efb565b9050606086838760405160200161209393929190613b27565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825273ffffffffffffffffffffffffffffffffffffffff8c166000818152600260205292909220600187019081905590935090917fb861b7bdbe611a846ab271b8d2810391bc8b5a968f390c322438ecab66bccf599161211e91613f7c565b60405180910390a261213289838388610cf4565b612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613d4e565b50505050509392505050565b60006121838260600151612c50565b60f81c9050600281106121c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613f1f565b60008160ff1660028111156121d357fe5b835160408501519192506000918291829173ffffffffffffffffffffffffffffffffffffffff161561220957866040015161220b565b335b9250600085600281111561221b57fe5b141561231a578660600151806020019051810190612239919061331c565b909450915073ffffffffffffffffffffffffffffffffffffffff841630141561228a5761226888848484612712565b6122858884845a8560405180602001604052806000815250612815565b612315565b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f242432a906122e2908b90879087908790600401613b8f565b600060405180830381600087803b1580156122fc57600080fd5b505af1158015612310573d6000803e3d6000fd5b505050505b612413565b86606001518060200190518101906123329190613300565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815290945073ffffffffffffffffffffffffffffffffffffffff8516906323b872dd9061238b908b9087908690600401613b5e565b602060405180830381600087803b1580156123a557600080fd5b505af11580156123b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123dd9190613964565b612413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018290613e08565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208684529091529020546124569083612e49565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461098960008585855a86612815565b81518151811461252d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806141fc6030913960400191505060405180910390fd5b60005b8181101561260a5761259b83828151811061254757fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106119ec57fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008684815181106125e757fe5b602090810291909101810151825281019190915260400160002055600101612530565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156126b85781810151838201526020016126a0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156126f75781810151838201526020016126df565b5050505090500194505050505060405180910390a450505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832085845290915290205461274b9082612dd2565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152602081815260408083208784528252808320949094559186168152808252828120858252909152205461279b9082612e49565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6128348573ffffffffffffffffffffffffffffffffffffffff16612ec4565b15610cec5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156128ed5781810151838201526020016128d5565b50505050905090810190601f16801561291a5780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561293d57600080fd5b5087f1158015612951573d6000803e3d6000fd5b50505050506040513d602081101561296857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610cea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a81526020018061436c603a913960400191505060405180910390fd5b8151835114612a60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806142fd6030913960400191505060405180910390fd5b825160005b81811015612b3f57612ad0848281518110612a7c57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888581518110611ada57fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878481518110612b1c57fe5b602090810291909101810151825281019190915260400160002055600101612a65565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612bed578181015183820152602001612bd5565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612c2c578181015183820152602001612c14565b5050505090500194505050505060405180910390a461060460008686865a87611c76565b600080825111612cab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603781526020018061408f6037913960400191505060405180910390fd5b81600183510381518110612cbb57fe5b016020015182517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909252507fff000000000000000000000000000000000000000000000000000000000000001690565b60008160200183511015612d6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806143a6603c913960400191505060405180910390fd5b50016020015190565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415612dc957506001610374565b6103718261302a565b600082821115612e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015612ebd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590612ebd57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b604080518082018252600281527f1901000000000000000000000000000000000000000000000000000000000000602080830191825283517f035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d47498183015230818601528451808203860181526060820190955284519490910193909320825160009491928692608001918291908083835b60208310612fc857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612f8b565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905292019485525083810192909252506040805180840383018152928101905281519101209392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b60405180608001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826130e8576000855561312e565b82601f1061310157805160ff191683800117855561312e565b8280016001018555821561312e579182015b8281111561312e578251825591602001919060010190613113565b5061313a92915061313e565b5090565b5b8082111561313a576000815560010161313f565b600082601f830112613163578081fd5b813561317661317182613fa9565b613f85565b81815291506020808301908481018184028601820187101561319757600080fd5b60005b848110156131b65781358452928201929082019060010161319a565b505050505092915050565b600082601f8301126131d1578081fd5b81356131df61317182613fc7565b91508082528360208285010111156131f657600080fd5b8060208401602084013760009082016020015292915050565b600082601f83011261321f578081fd5b815161322d61317182613fc7565b915080825283602082850101111561324457600080fd5b613255816020840160208601614007565b5092915050565b60006080828403121561326d578081fd5b6040516080810167ffffffffffffffff828210818311171561328b57fe5b816040528293508451835260208501516020840152604085015191506132b082614033565b81604084015260608501519150808211156132ca57600080fd5b506132d78582860161320f565b6060830152505092915050565b6000602082840312156132f5578081fd5b8135612ebd81614033565b600060208284031215613311578081fd5b8151612ebd81614033565b6000806040838503121561332e578081fd5b825161333981614033565b6020939093015192949293505050565b6000806040838503121561335b578182fd5b823561336681614033565b9150602083013561337681614033565b809150509250929050565b60008060008060008060c08789031215613399578182fd5b86356133a481614033565b955060208701356133b481614033565b9450604087013567ffffffffffffffff808211156133d0578384fd5b6133dc8a838b01613153565b955060608901359150808211156133f1578384fd5b6133fd8a838b01613153565b94506080890135915061340f82614055565b90925060a08801359080821115613424578283fd5b5061343189828a016131c1565b9150509295509295509295565b600080600080600060a08688031215613455578081fd5b853561346081614033565b9450602086013561347081614033565b9350604086013567ffffffffffffffff8082111561348c578283fd5b61349889838a01613153565b945060608801359150808211156134ad578283fd5b6134b989838a01613153565b935060808801359150808211156134ce578283fd5b506134db888289016131c1565b9150509295509295909350565b600080600080600060a086880312156134ff578283fd5b853561350a81614033565b9450602086013561351a81614033565b9350604086013561352a81614055565b9250606086013561353a81614055565b9150608086013567ffffffffffffffff811115613555578182fd5b6134db888289016131c1565b60008060008060008060c08789031215613579578384fd5b863561358481614033565b9550602087013561359481614033565b9450604087013593506060870135925060808701356135b281614055565b915060a087013567ffffffffffffffff8111156135cd578182fd5b61343189828a016131c1565b600080600080600060a086880312156135f0578283fd5b85356135fb81614033565b9450602086013561360b81614033565b93506040860135925060608601359150608086013567ffffffffffffffff811115613555578182fd5b600080600060608486031215613648578081fd5b833561365381614033565b9250602084013567ffffffffffffffff8082111561366f578283fd5b61367b87838801613153565b93506040860135915080821115613690578283fd5b5061369d86828701613153565b9150509250925092565b600080600080608085870312156136bc578182fd5b84356136c781614033565b9350602085013567ffffffffffffffff808211156136e3578384fd5b6136ef88838901613153565b94506040870135915080821115613704578384fd5b61371088838901613153565b93506060870135915080821115613725578283fd5b50613732878288016131c1565b91505092959194509250565b60008060408385031215613750578182fd5b823561375b81614033565b9150602083013561337681614055565b60008060008060808587031215613780578182fd5b843561378b81614033565b935060208501359250604085013567ffffffffffffffff808211156137ae578384fd5b613710888389016131c1565b600080604083850312156137cc578182fd5b82356137d781614033565b946020939093013593505050565b6000806000606084860312156137f9578081fd5b833561380481614033565b95602085013595506040909401359392505050565b6000806000806080858703121561382e578182fd5b843561383981614033565b93506020850135925060408501359150606085013567ffffffffffffffff811115613862578182fd5b613732878288016131c1565b60008060408385031215613880578182fd5b823567ffffffffffffffff80821115613897578384fd5b818501915085601f8301126138aa578384fd5b81356138b861317182613fa9565b80828252602080830192508086018a8283870289010111156138d8578889fd5b8896505b848710156139035780356138ef81614033565b8452600196909601959281019281016138dc565b50909650870135935050508082111561391a578283fd5b5061392785828601613153565b9150509250929050565b600060208284031215613942578081fd5b813567ffffffffffffffff811115613958578182fd5b6114cd84828501613153565b600060208284031215613975578081fd5b8151612ebd81614055565b600060208284031215613991578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612ebd578182fd5b600080604083850312156139d2578182fd5b825167ffffffffffffffff808211156139e9578384fd5b6139f58683870161320f565b93506020850151915080821115613a0a578283fd5b506139278582860161320f565b600060208284031215613a28578081fd5b813567ffffffffffffffff811115613a3e578182fd5b6114cd848285016131c1565b600060208284031215613a5b578081fd5b815167ffffffffffffffff811115613a71578182fd5b6114cd8482850161325c565b60008060408385031215613a8f578182fd5b825167ffffffffffffffff80821115613aa6578384fd5b6139f58683870161325c565b600060208284031215613ac3578081fd5b5035919050565b815160009082906020808601845b83811015613af457815185529382019390820190600101613ad8565b50929695505050505050565b60008451613b12818460208901614007565b91909101928352506020820152604001919050565b60008451613b39818460208901614007565b82018481528351613b51816020808501908801614007565b0160200195945050505050565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff94851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b6020808252825182820181905260009190848201906040850190845b81811015613c0c57835183529284019291840191600101613bf0565b50909695505050505050565b901515815260200190565b95865273ffffffffffffffffffffffffffffffffffffffff94851660208701529290931660408501526060840152608083019190915260a082015260c00190565b94855273ffffffffffffffffffffffffffffffffffffffff93841660208601529190921660408401526060830191909152608082015260a00190565b6000602082528251806020840152613cbf816040850160208701614007565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526033908201527f455243313135354d657461236d657461536166655472616e7366657246726f6d60408201527f3a20494e56414c49445f524543495049454e5400000000000000000000000000606082015260800190565b60208082526033908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f5349474e415455524500000000000000000000000000606082015260800190565b60208082526023908201527f455243313135354d657461646174614d6f636b3a20494e56414c49445f4d455460408201527f484f440000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f455243313135354d657461235f7472616e736665724761734665653a2045524360408201527f32305f5452414e534645525f4641494c45440000000000000000000000000000606082015260800190565b60208082526038908201527f455243313135354d657461236d6574615361666542617463685472616e73666560408201527f7246726f6d3a20494e56414c49445f524543495049454e540000000000000000606082015260800190565b6020808252602f908201527f455243313135354d657461235f7369676e617475726556616c69646174696f6e60408201527f3a20494e56414c49445f4e4f4e43450000000000000000000000000000000000606082015260800190565b6020808252602e908201527f455243313135354d657461235f7472616e736665724761734665653a20554e5360408201527f5550504f525445445f544f4b454e000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715613fa157fe5b604052919050565b600067ffffffffffffffff821115613fbd57fe5b5060209081020190565b600067ffffffffffffffff821115613fdb57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b8381101561402257818101518382015260200161400a565b838111156109895750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146104d557600080fd5b80151581146104d557600080fdfe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544c6962427974657323706f704c617374427974653a20475245415445525f5448414e5f5a45524f5f4c454e4754485f52455155495245444552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20554e535550504f525445445f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494c4c4547414c5f5349474e41545552455369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f39375f524551554952454445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e4754485369676e617475726556616c696461746f7223697356616c69645369676e61747572653a20494e56414c49445f5349474e455245524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f525369676e617475726556616c696461746f7223697356616c69645369676e61747572653a204c454e4754485f475245415445525f5448414e5f305f5245515549524544455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d4553534147454c696242797465732372656164427974657333323a20475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f5245515549524544a26469706673582212205b6ba23a17207368593df6be7d3051176898a23f96953308375c5482290d6e9064736f6c63430007040033"; + "0x60806040523480156200001157600080fd5b506040516200226d3803806200226d8339810160408190526200003491620001dc565b8151829082906200004d9060039060208501906200006e565b508051620000639060029060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b61201980620002546000396000f3fe608060405234801561001057600080fd5b50600436106100d35760003560e01c80634e1273f411610081578063a22cb4651161005b578063a22cb465146101e2578063e985e9c5146101f5578063f242432a14610208576100d3565b80634e1273f4146101a75780636c0360eb146101c75780637e518ec8146101cf576100d3565b80630e89341c116100b25780630e89341c1461016c5780631ea430d41461017f5780632eb2c2d614610194576100d3565b8062fdd58e1461010e57806301ffc9a71461013757806306fdde0314610157575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010590611dad565b60405180910390fd5b61012161011c366004611b3d565b61021b565b60405161012e9190611e0a565b60405180910390f35b61014a610145366004611c62565b61024e565b60405161012e9190611d31565b61015f610261565b60405161012e9190611d3c565b61015f61017a366004611cd5565b61030d565b61019261018d366004611c27565b610460565b005b6101926101a23660046119fa565b61046c565b6101ba6101b5366004611b66565b610577565b60405161012e9190611ced565b61015f6106c3565b6101926101dd366004611ca2565b610739565b6101926101f0366004611b03565b610742565b61014a6102033660046119c8565b6107db565b610192610216366004611aa0565b610816565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b60006102598261091a565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b505050505081565b6060600261031a83610977565b60405160200180838054600181600116156101000203166002900480156103785780601f10610356576101008083540402835291820191610378565b820191906000526020600020905b815481529060010190602001808311610364575b5050825160208401908083835b602083106103c257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610385565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b61046981610aa3565b50565b3373ffffffffffffffffffffffffffffffffffffffff86161480610495575061049585336107db565b6104ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611f3c602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610556576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180611ee06030913960400191505060405180910390fd5b61056285858585610d6a565b610570858585855a866110be565b5050505050565b606081518351146105d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611f10602c913960400191505060405180910390fd5b6060835167ffffffffffffffff811180156105ed57600080fd5b50604051908082528060200260200182016040528015610617578160200160208202803683370190505b50905060005b84518110156106bb5760008086838151811061063557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085838151811061068557fe5b60200260200101518152602001908152602001600020548282815181106106a857fe5b602090810291909101015260010161061d565b509392505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f810184900484028201840190925281815292918301828280156103055780601f106102da57610100808354040283529160200191610305565b61046981611335565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061083f575061083f85336107db565b610894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611e81602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610900576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611e56602b913960400191505060405180910390fd5b61090c8585858561134c565b610570858585855a8661144f565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561096e5750600161025c565b61025982611640565b6060816109b8575060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015261025c565b818060005b82156109d157600101600a830492506109bd565b60608167ffffffffffffffff811180156109ea57600080fd5b506040519080825280601f01601f191660200182016040528015610a15576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610a9957600a840660300160f81b82828060019003935081518110610a5f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610a3c565b5095945050505050565b60028054604080516020601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001871615020190941685900493840181900481028201810190925282815260609390929091830182828015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b820191906000526020600020905b815481529060010190602001808311610b2d57829003601f168201915b50505050509050606060005b8351811015610d645782610b7c858381518110610b6f57fe5b6020026020010151610977565b6040516020018083805190602001908083835b60208310610bcc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b8f565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018019909216911617905285519190930192850191508083835b60208310610c5057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c13565b6001836020036101000a038019825116818451168082178552505050505050905001807f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600501925050506040516020818303038152906040529150838181518110610cbb57fe5b60200260200101517f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b836040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d22578181015183820152602001610d0a565b50505050905090810190601f168015610d4f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2600101610b56565b50505050565b8051825114610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180611eab6035913960400191505060405180910390fd5b815160005b81811015610fb657610e59838281518110610de057fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610e3457fe5b602002602001015181526020019081526020016000205461169d90919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610ea557fe5b6020026020010151815260200190815260200160002081905550610f47838281518110610ece57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610f2257fe5b602002602001015181526020019081526020016000205461171490919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610f9357fe5b602090810291909101810151825281019190915260400160002055600101610dc9565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561106357818101518382015260200161104b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110a257818101518382015260200161108a565b5050505090500194505050505060405180910390a45050505050565b6110dd8573ffffffffffffffffffffffffffffffffffffffff1661178f565b1561132d5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561119557818101518382015260200161117d565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156111d45781810151838201526020016111bc565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156112105781810151838201526020016111f8565b50505050905090810190601f16801561123d5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561126257600080fd5b5087f1158015611276573d6000803e3d6000fd5b50505050506040513d602081101561128d57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c81000000000000000000000000000000000000000000000000000000001461132b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180611f6b603f913960400191505060405180910390fd5b505b505050505050565b8051611348906002906020840190611810565b5050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320858452909152902054611385908261169d565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546113d59082611714565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b61146e8573ffffffffffffffffffffffffffffffffffffffff1661178f565b1561132d5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561152757818101518382015260200161150f565b50505050905090810190601f1680156115545780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561157757600080fd5b5087f115801561158b573d6000803e3d6000fd5b50505050506040513d60208110156115a257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e61000000000000000000000000000000000000000000000000000000001461132b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180611faa603a913960400191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156116945750600161025c565b610259826117c6565b60008282111561170e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b60008282018381101561178857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f801580159061178857507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611846576000855561188c565b82601f1061185f57805160ff191683800117855561188c565b8280016001018555821561188c579182015b8281111561188c578251825591602001919060010190611871565b5061189892915061189c565b5090565b5b80821115611898576000815560010161189d565b803573ffffffffffffffffffffffffffffffffffffffff8116811461025c57600080fd5b600082601f8301126118e5578081fd5b81356118f86118f382611e37565b611e13565b81815291506020808301908481018184028601820187101561191957600080fd5b60005b848110156119385781358452928201929082019060010161191c565b505050505092915050565b600082601f830112611953578081fd5b813567ffffffffffffffff81111561196757fe5b61199860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611e13565b91508082528360208285010111156119af57600080fd5b8060208401602084013760009082016020015292915050565b600080604083850312156119da578182fd5b6119e3836118b1565b91506119f1602084016118b1565b90509250929050565b600080600080600060a08688031215611a11578081fd5b611a1a866118b1565b9450611a28602087016118b1565b9350604086013567ffffffffffffffff80821115611a44578283fd5b611a5089838a016118d5565b94506060880135915080821115611a65578283fd5b611a7189838a016118d5565b93506080880135915080821115611a86578283fd5b50611a9388828901611943565b9150509295509295909350565b600080600080600060a08688031215611ab7578081fd5b611ac0866118b1565b9450611ace602087016118b1565b93506040860135925060608601359150608086013567ffffffffffffffff811115611af7578182fd5b611a9388828901611943565b60008060408385031215611b15578182fd5b611b1e836118b1565b915060208301358015158114611b32578182fd5b809150509250929050565b60008060408385031215611b4f578182fd5b611b58836118b1565b946020939093013593505050565b60008060408385031215611b78578182fd5b823567ffffffffffffffff80821115611b8f578384fd5b818501915085601f830112611ba2578384fd5b8135611bb06118f382611e37565b80828252602080830192508086018a828387028901011115611bd0578889fd5b8896505b84871015611bf957611be5816118b1565b845260019690960195928101928101611bd4565b509096508701359350505080821115611c10578283fd5b50611c1d858286016118d5565b9150509250929050565b600060208284031215611c38578081fd5b813567ffffffffffffffff811115611c4e578182fd5b611c5a848285016118d5565b949350505050565b600060208284031215611c73578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611788578182fd5b600060208284031215611cb3578081fd5b813567ffffffffffffffff811115611cc9578182fd5b611c5a84828501611943565b600060208284031215611ce6578081fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015611d2557835183529284019291840191600101611d09565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015611d6857858101830151858201604001528201611d4c565b81811115611d795783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526023908201527f455243313135354d657461646174614d6f636b3a20494e56414c49445f4d455460408201527f484f440000000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff81118282101715611e2f57fe5b604052919050565b600067ffffffffffffffff821115611e4b57fe5b506020908102019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a26469706673582212206acf14916287dcf68036e71958bb6100555ba2097d10d0fbb7720841796a077d64736f6c63430007040033"; diff --git a/src/gen/typechain/factories/ERC1155Metadata__factory.ts b/src/gen/typechain/factories/ERC1155Metadata__factory.ts index eb44988..4be01ea 100644 --- a/src/gen/typechain/factories/ERC1155Metadata__factory.ts +++ b/src/gen/typechain/factories/ERC1155Metadata__factory.ts @@ -13,14 +13,22 @@ export class ERC1155Metadata__factory extends ContractFactory { } deploy( + _name: string, + _baseURI: string, overrides?: Overrides & { from?: string | Promise } ): Promise { - return super.deploy(overrides || {}) as Promise; + return super.deploy( + _name, + _baseURI, + overrides || {} + ) as Promise; } getDeployTransaction( + _name: string, + _baseURI: string, overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); + return super.getDeployTransaction(_name, _baseURI, overrides || {}); } attach(address: string): ERC1155Metadata { return super.attach(address) as ERC1155Metadata; @@ -37,6 +45,22 @@ export class ERC1155Metadata__factory extends ContractFactory { } const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "string", + name: "_baseURI", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, { anonymous: false, inputs: [ @@ -56,6 +80,32 @@ const _abi = [ name: "URI", type: "event", }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -97,4 +147,4 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50610484806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806301ffc9a71461003b5780630e89341c1461008e575b600080fd5b61007a6004803603602081101561005157600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610120565b604080519115158252519081900360200190f35b6100ab600480360360208110156100a457600080fd5b5035610185565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e55781810151838201526020016100cd565b50505050905090810190601f1680156101125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561017457506001610180565b61017d826102d8565b90505b919050565b6060600061019283610322565b60405160200180838054600181600116156101000203166002900480156101f05780601f106101ce5761010080835404028352918201916101f0565b820191906000526020600020905b8154815290600101906020018083116101dc575b5050825160208401908083835b6020831061023a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016101fd565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b606081610363575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610180565b818060005b821561037c57600101600a83049250610368565b60608167ffffffffffffffff8111801561039557600080fd5b506040519080825280601f01601f1916602001820160405280156103c0576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561044457600a840660300160f81b8282806001900393508151811061040a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506103e7565b509594505050505056fea2646970667358221220004fd0d2d88e7458597be2dc675d4ebda19e8239cb1f21c313829ddfa6c8131864736f6c63430007040033"; + "0x608060405234801561001057600080fd5b5060405161083c38038061083c8339818101604052604081101561003357600080fd5b810190808051604051939291908464010000000082111561005357600080fd5b90830190602082018581111561006857600080fd5b825164010000000081118282018810171561008257600080fd5b82525081516020918201929091019080838360005b838110156100af578181015183820152602001610097565b50505050905090810190601f1680156100dc5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156100ff57600080fd5b90830190602082018581111561011457600080fd5b825164010000000081118282018810171561012e57600080fd5b82525081516020918201929091019080838360005b8381101561015b578181015183820152602001610143565b50505050905090810190601f1680156101885780820380516001836020036101000a031916815260200191505b50604052505082516101a2915060019060208501906101be565b5080516101b69060009060208401906101be565b50505061025f565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826101f4576000855561023a565b82601f1061020d57805160ff191683800117855561023a565b8280016001018555821561023a579182015b8281111561023a57825182559160200191906001019061021f565b5061024692915061024a565b5090565b5b80821115610246576000815560010161024b565b6105ce8061026e6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806301ffc9a71461005157806306fdde03146100a45780630e89341c146101215780636c0360eb1461013e575b600080fd5b6100906004803603602081101561006757600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610146565b604080519115158252519081900360200190f35b6100ac6101ab565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e65781810151838201526020016100ce565b50505050905090810190601f1680156101135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100ac6004803603602081101561013757600080fd5b5035610256565b6100ac6103a9565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561019a575060016101a6565b6101a382610422565b90505b919050565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561024e5780601f106102235761010080835404028352916020019161024e565b820191906000526020600020905b81548152906001019060200180831161023157829003601f168201915b505050505081565b606060006102638361046c565b60405160200180838054600181600116156101000203166002900480156102c15780601f1061029f5761010080835404028352918201916102c1565b820191906000526020600020905b8154815290600101906020018083116102ad575b5050825160208401908083835b6020831061030b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102ce565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561024e5780601f106102235761010080835404028352916020019161024e565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b6060816104ad575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526101a6565b818060005b82156104c657600101600a830492506104b2565b60608167ffffffffffffffff811180156104df57600080fd5b506040519080825280601f01601f19166020018201604052801561050a576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561058e57600a840660300160f81b8282806001900393508151811061055457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610531565b509594505050505056fea26469706673582212205abd37bd16639ca9fbf0ea9aa3edb56d4a300602416ce7dfcab6972d32fec15664736f6c63430007040033"; diff --git a/src/gen/typechain/factories/ERC1155MintBurnMock__factory.ts b/src/gen/typechain/factories/ERC1155MintBurnMock__factory.ts index 4a0ee4e..84d43db 100644 --- a/src/gen/typechain/factories/ERC1155MintBurnMock__factory.ts +++ b/src/gen/typechain/factories/ERC1155MintBurnMock__factory.ts @@ -13,14 +13,22 @@ export class ERC1155MintBurnMock__factory extends ContractFactory { } deploy( + _name: string, + _baseURI: string, overrides?: Overrides & { from?: string | Promise } ): Promise { - return super.deploy(overrides || {}) as Promise; + return super.deploy( + _name, + _baseURI, + overrides || {} + ) as Promise; } getDeployTransaction( + _name: string, + _baseURI: string, overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); + return super.getDeployTransaction(_name, _baseURI, overrides || {}); } attach(address: string): ERC1155MintBurnMock { return super.attach(address) as ERC1155MintBurnMock; @@ -37,6 +45,22 @@ export class ERC1155MintBurnMock__factory extends ContractFactory { } const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "string", + name: "_baseURI", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, { anonymous: false, inputs: [ @@ -207,6 +231,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -333,6 +370,19 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -458,4 +508,4 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50612319806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d35760003560e01c8063a22cb46511610081578063d7a0ad901161005b578063d7a0ad90146101f8578063e985e9c51461020b578063f242432a1461021e576100d3565b8063a22cb465146101bf578063a3f091f5146101d2578063bd7a6c41146101e5576100d3565b80632eb2c2d6116100b25780632eb2c2d614610177578063437ecbe91461018c5780634e1273f41461019f576100d3565b8062fdd58e1461010e57806301ffc9a7146101375780630e89341c14610157575b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101059061204d565b60405180910390fd5b61012161011c366004611dc6565b610231565b60405161012e91906120aa565b60405180910390f35b61014a610145366004611f35565b610264565b60405161012e9190611fd1565b61016a610165366004611f75565b610277565b60405161012e9190611fdc565b61018a610185366004611b7d565b6103ca565b005b61018a61019a366004611def565b6104d5565b6101b26101ad366004611e74565b6104e5565b60405161012e9190611f8d565b61018a6101cd366004611d8c565b610631565b61018a6101e0366004611e21565b6106ca565b61018a6101f3366004611c86565b6106dc565b61018a610206366004611cf7565b6106e7565b61014a610219366004611b4b565b6106f3565b61018a61022c366004611c23565b61072e565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b600061026f82610832565b90505b919050565b606060026102848361088f565b60405160200180838054600181600116156101000203166002900480156102e25780601f106102c05761010080835404028352918201916102e2565b820191906000526020600020905b8154815290600101906020018083116102ce575b5050825160208401908083835b6020831061032c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016102ef565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff861614806103f357506103f385336106f3565b610448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061220c602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166104b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806121806030913960400191505060405180910390fd5b6104c0858585856109bb565b6104ce858585855a86610d0f565b5050505050565b6104e0838383610f86565b505050565b60608151835114610541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121e0602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561055b57600080fd5b50604051908082528060200260200182016040528015610585578160200160208202803683370190505b50905060005b8451811015610629576000808683815181106105a357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106105f357fe5b602002602001015181526020019081526020016000205482828151811061061657fe5b602090810291909101015260010161058b565b509392505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6106d684848484611031565b50505050565b6104e08383836110e6565b6106d684848484611326565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff86161480610757575061075785336106f3565b6107ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612121602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806120f6602b913960400191505060405180910390fd5b61082485858585611570565b6104ce858585855a86611673565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561088657506001610272565b61026f82611864565b6060816108d0575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610272565b818060005b82156108e957600101600a830492506108d5565b60608167ffffffffffffffff8111801561090257600080fd5b506040519080825280601f01601f19166020018201604052801561092d576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b83156109b157600a840660300160f81b8282806001900393508151811061097757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610954565b5095945050505050565b8051825114610a15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603581526020018061214b6035913960400191505060405180910390fd5b815160005b81811015610c0757610aaa838281518110610a3157fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610a8557fe5b60200260200101518152602001908152602001600020546118c190919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610af657fe5b6020026020010151815260200190815260200160002081905550610b98838281518110610b1f57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610b7357fe5b602002602001015181526020019081526020016000205461193890919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610be457fe5b602090810291909101810151825281019190915260400160002055600101610a1a565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610cb4578181015183820152602001610c9c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610cf3578181015183820152602001610cdb565b5050505090500194505050505060405180910390a45050505050565b610d2e8573ffffffffffffffffffffffffffffffffffffffff166119b3565b15610f7e5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610de6578181015183820152602001610dce565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015610e25578181015183820152602001610e0d565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015610e61578181015183820152602001610e49565b50505050905090810190601f168015610e8e5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015610eb357600080fd5b5087f1158015610ec7573d6000803e3d6000fd5b50505050506040513d6020811015610ede57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014610f7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f81526020018061226b603f913960400191505060405180910390fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054610fbf90826118c1565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915290205461106a9083611938565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a46106d660008585855a86611673565b815181518114611141576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806121b06030913960400191505060405180910390fd5b60005b8181101561121e576111af83828151811061115b57fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610a8557fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008684815181106111fb57fe5b602090810291909101810151825281019190915260400160002055600101611144565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156112cc5781810151838201526020016112b4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561130b5781810151838201526020016112f3565b5050505090500194505050505060405180910390a450505050565b8151835114611380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018061223b6030913960400191505060405180910390fd5b825160005b8181101561145f576113f084828151811061139c57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888581518110610b7357fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087848151811061143c57fe5b602090810291909101810151825281019190915260400160002055600101611385565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561150d5781810151838201526020016114f5565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561154c578181015183820152602001611534565b5050505090500194505050505060405180910390a46104ce60008686865a87610d0f565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208584529091529020546115a990826118c1565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546115f99082611938565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6116928573ffffffffffffffffffffffffffffffffffffffff166119b3565b15610f7e5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561174b578181015183820152602001611733565b50505050905090810190601f1680156117785780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561179b57600080fd5b5087f11580156117af573d6000803e3d6000fd5b50505050506040513d60208110156117c657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014610f7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806122aa603a913960400191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156118b857506001610272565b61026f826119ea565b60008282111561193257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b6000828201838110156119ac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f80158015906119ac57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461027257600080fd5b600082601f830112611a68578081fd5b8135611a7b611a76826120d7565b6120b3565b818152915060208083019084810181840286018201871015611a9c57600080fd5b60005b84811015611abb57813584529282019290820190600101611a9f565b505050505092915050565b600082601f830112611ad6578081fd5b813567ffffffffffffffff811115611aea57fe5b611b1b60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016120b3565b9150808252836020828501011115611b3257600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611b5d578182fd5b611b6683611a34565b9150611b7460208401611a34565b90509250929050565b600080600080600060a08688031215611b94578081fd5b611b9d86611a34565b9450611bab60208701611a34565b9350604086013567ffffffffffffffff80821115611bc7578283fd5b611bd389838a01611a58565b94506060880135915080821115611be8578283fd5b611bf489838a01611a58565b93506080880135915080821115611c09578283fd5b50611c1688828901611ac6565b9150509295509295909350565b600080600080600060a08688031215611c3a578081fd5b611c4386611a34565b9450611c5160208701611a34565b93506040860135925060608601359150608086013567ffffffffffffffff811115611c7a578182fd5b611c1688828901611ac6565b600080600060608486031215611c9a578283fd5b611ca384611a34565b9250602084013567ffffffffffffffff80821115611cbf578384fd5b611ccb87838801611a58565b93506040860135915080821115611ce0578283fd5b50611ced86828701611a58565b9150509250925092565b60008060008060808587031215611d0c578384fd5b611d1585611a34565b9350602085013567ffffffffffffffff80821115611d31578485fd5b611d3d88838901611a58565b94506040870135915080821115611d52578384fd5b611d5e88838901611a58565b93506060870135915080821115611d73578283fd5b50611d8087828801611ac6565b91505092959194509250565b60008060408385031215611d9e578182fd5b611da783611a34565b915060208301358015158114611dbb578182fd5b809150509250929050565b60008060408385031215611dd8578182fd5b611de183611a34565b946020939093013593505050565b600080600060608486031215611e03578283fd5b611e0c84611a34565b95602085013595506040909401359392505050565b60008060008060808587031215611e36578384fd5b611e3f85611a34565b93506020850135925060408501359150606085013567ffffffffffffffff811115611e68578182fd5b611d8087828801611ac6565b60008060408385031215611e86578081fd5b823567ffffffffffffffff80821115611e9d578283fd5b818501915085601f830112611eb0578283fd5b8135611ebe611a76826120d7565b80828252602080830192508086018a828387028901011115611ede578788fd5b8796505b84871015611f0757611ef381611a34565b845260019690960195928101928101611ee2565b509096508701359350505080821115611f1e578283fd5b50611f2b85828601611a58565b9150509250929050565b600060208284031215611f46578081fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146119ac578182fd5b600060208284031215611f86578081fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015611fc557835183529284019291840191600101611fa9565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b8181101561200857858101830151858201604001528201611fec565b818111156120195783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff811182821017156120cf57fe5b604052919050565b600067ffffffffffffffff8211156120eb57fe5b506020908102019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a264697066735822122005eb5bcdc323736890462d08c987b3a961a21cf7a6fa3483643ef5186a261fc864736f6c63430007040033"; + "0x60806040523480156200001157600080fd5b50604051620026b5380380620026b58339810160408190526200003491620001dc565b8151829082906200004d9060039060208501906200006e565b508051620000639060029060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b61246180620002546000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c80636c0360eb1161008c578063bd7a6c4111610066578063bd7a6c411461020b578063d7a0ad901461021e578063e985e9c514610231578063f242432a14610244576100e9565b80636c0360eb146101dd578063a22cb465146101e5578063a3f091f5146101f8576100e9565b80630e89341c116100c85780630e89341c146101825780632eb2c2d614610195578063437ecbe9146101aa5780634e1273f4146101bd576100e9565b8062fdd58e1461012457806301ffc9a71461014d57806306fdde031461016d575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011b90612195565b60405180910390fd5b610137610132366004611f0e565b610257565b60405161014491906121f2565b60405180910390f35b61016061015b36600461207d565b61028a565b6040516101449190612119565b61017561029d565b6040516101449190612124565b6101756101903660046120bd565b610349565b6101a86101a3366004611cc5565b61049c565b005b6101a86101b8366004611f37565b6105a7565b6101d06101cb366004611fbc565b6105b7565b60405161014491906120d5565b610175610703565b6101a86101f3366004611ed4565b610779565b6101a8610206366004611f69565b610812565b6101a8610219366004611dce565b610824565b6101a861022c366004611e3f565b61082f565b61016061023f366004611c93565b61083b565b6101a8610252366004611d6b565b610876565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260208181526040808320938352929052205490565b60006102958261097a565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b505050505081565b60606002610356836109d7565b60405160200180838054600181600116156101000203166002900480156103b45780601f106103925761010080835404028352918201916103b4565b820191906000526020600020905b8154815290600101906020018083116103a0575b5050825160208401908083835b602083106103fe57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016103c1565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff861614806104c557506104c5853361083b565b61051a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612354602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610586576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806122c86030913960400191505060405180910390fd5b61059285858585610b03565b6105a0858585855a86610e57565b5050505050565b6105b28383836110ce565b505050565b60608151835114610613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612328602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561062d57600080fd5b50604051908082528060200260200182016040528015610657578160200160208202803683370190505b50905060005b84518110156106fb5760008086838151811061067557fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106106c557fe5b60200260200101518152602001908152602001600020548282815181106106e857fe5b602090810291909101015260010161065d565b509392505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f810184900484028201840190925281815292918301828280156103415780601f1061031657610100808354040283529160200191610341565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61081e84848484611179565b50505050565b6105b283838361122e565b61081e8484848461146e565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff8616148061089f575061089f853361083b565b6108f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612269602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b81526020018061223e602b913960400191505060405180910390fd5b61096c858585856116b8565b6105a0858585855a866117bb565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c0000000000000000000000000000000000000000000000000000000014156109ce57506001610298565b610295826119ac565b606081610a18575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610298565b818060005b8215610a3157600101600a83049250610a1d565b60608167ffffffffffffffff81118015610a4a57600080fd5b506040519080825280601f01601f191660200182016040528015610a75576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610af957600a840660300160f81b82828060019003935081518110610abf57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610a9c565b5095945050505050565b8051825114610b5d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806122936035913960400191505060405180910390fd5b815160005b81811015610d4f57610bf2838281518110610b7957fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610bcd57fe5b6020026020010151815260200190815260200160002054611a0990919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610c3e57fe5b6020026020010151815260200190815260200160002081905550610ce0838281518110610c6757fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610cbb57fe5b6020026020010151815260200190815260200160002054611a8090919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110610d2c57fe5b602090810291909101810151825281019190915260400160002055600101610b62565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610dfc578181015183820152602001610de4565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610e3b578181015183820152602001610e23565b5050505090500194505050505060405180910390a45050505050565b610e768573ffffffffffffffffffffffffffffffffffffffff16611afb565b156110c65760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610f2e578181015183820152602001610f16565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015610f6d578181015183820152602001610f55565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015610fa9578181015183820152602001610f91565b50505050905090810190601f168015610fd65780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015610ffb57600080fd5b5087f115801561100f573d6000803e3d6000fd5b50505050506040513d602081101561102657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146110c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f8152602001806123b3603f913960400191505060405180910390fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081815260408083208584529091529020546111079082611a09565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208684529091529020546111b29083611a80565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461081e60008585855a866117bb565b815181518114611289576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806122f86030913960400191505060405180910390fd5b60005b81811015611366576112f78382815181106112a357fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878581518110610bcd57fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061134357fe5b60209081029190910181015182528101919091526040016000205560010161128c565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156114145781810151838201526020016113fc565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561145357818101518382015260200161143b565b5050505090500194505050505060405180910390a450505050565b81518351146114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806123836030913960400191505060405180910390fd5b825160005b818110156115a7576115388482815181106114e457fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000888581518110610cbb57fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087848151811061158457fe5b6020908102919091018101518252810191909152604001600020556001016114cd565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561165557818101518382015260200161163d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561169457818101518382015260200161167c565b5050505090500194505050505060405180910390a46105a060008686865a87610e57565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081815260408083208584529091529020546116f19082611a09565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546117419082611a80565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b6117da8573ffffffffffffffffffffffffffffffffffffffff16611afb565b156110c65760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561189357818101518382015260200161187b565b50505050905090810190601f1680156118c05780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156118e357600080fd5b5087f11580156118f7573d6000803e3d6000fd5b50505050506040513d602081101561190e57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146110c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001806123f2603a913960400191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415611a0057506001610298565b61029582611b32565b600082821115611a7a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b600082820183811015611af457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b6000813f8015801590611af457507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461029857600080fd5b600082601f830112611bb0578081fd5b8135611bc3611bbe8261221f565b6121fb565b818152915060208083019084810181840286018201871015611be457600080fd5b60005b84811015611c0357813584529282019290820190600101611be7565b505050505092915050565b600082601f830112611c1e578081fd5b813567ffffffffffffffff811115611c3257fe5b611c6360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016121fb565b9150808252836020828501011115611c7a57600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611ca5578182fd5b611cae83611b7c565b9150611cbc60208401611b7c565b90509250929050565b600080600080600060a08688031215611cdc578081fd5b611ce586611b7c565b9450611cf360208701611b7c565b9350604086013567ffffffffffffffff80821115611d0f578283fd5b611d1b89838a01611ba0565b94506060880135915080821115611d30578283fd5b611d3c89838a01611ba0565b93506080880135915080821115611d51578283fd5b50611d5e88828901611c0e565b9150509295509295909350565b600080600080600060a08688031215611d82578081fd5b611d8b86611b7c565b9450611d9960208701611b7c565b93506040860135925060608601359150608086013567ffffffffffffffff811115611dc2578182fd5b611d5e88828901611c0e565b600080600060608486031215611de2578283fd5b611deb84611b7c565b9250602084013567ffffffffffffffff80821115611e07578384fd5b611e1387838801611ba0565b93506040860135915080821115611e28578283fd5b50611e3586828701611ba0565b9150509250925092565b60008060008060808587031215611e54578384fd5b611e5d85611b7c565b9350602085013567ffffffffffffffff80821115611e79578485fd5b611e8588838901611ba0565b94506040870135915080821115611e9a578384fd5b611ea688838901611ba0565b93506060870135915080821115611ebb578283fd5b50611ec887828801611c0e565b91505092959194509250565b60008060408385031215611ee6578182fd5b611eef83611b7c565b915060208301358015158114611f03578182fd5b809150509250929050565b60008060408385031215611f20578182fd5b611f2983611b7c565b946020939093013593505050565b600080600060608486031215611f4b578283fd5b611f5484611b7c565b95602085013595506040909401359392505050565b60008060008060808587031215611f7e578384fd5b611f8785611b7c565b93506020850135925060408501359150606085013567ffffffffffffffff811115611fb0578182fd5b611ec887828801611c0e565b60008060408385031215611fce578081fd5b823567ffffffffffffffff80821115611fe5578283fd5b818501915085601f830112611ff8578283fd5b8135612006611bbe8261221f565b80828252602080830192508086018a828387028901011115612026578788fd5b8796505b8487101561204f5761203b81611b7c565b84526001969096019592810192810161202a565b509096508701359350505080821115612066578283fd5b5061207385828601611ba0565b9150509250929050565b60006020828403121561208e578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611af4578182fd5b6000602082840312156120ce578081fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b8181101561210d578351835292840192918401916001016120f1565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b8181101561215057858101830151858201604001528201612134565b818111156121615783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f4400000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60405181810167ffffffffffffffff8111828210171561221757fe5b604052919050565b600067ffffffffffffffff82111561223357fe5b506020908102019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a264697066735822122036edc9e542c649ef48ed8a2ffd68ded6621cdb7b12543ba186da29b6d3f6a0e064736f6c63430007040033"; diff --git a/src/gen/typechain/factories/ERC1155MintBurnPackedBalanceMock__factory.ts b/src/gen/typechain/factories/ERC1155MintBurnPackedBalanceMock__factory.ts index cc98e58..d5fbfb7 100644 --- a/src/gen/typechain/factories/ERC1155MintBurnPackedBalanceMock__factory.ts +++ b/src/gen/typechain/factories/ERC1155MintBurnPackedBalanceMock__factory.ts @@ -13,16 +13,22 @@ export class ERC1155MintBurnPackedBalanceMock__factory extends ContractFactory { } deploy( + _name: string, + _baseURI: string, overrides?: Overrides & { from?: string | Promise } ): Promise { return super.deploy( + _name, + _baseURI, overrides || {} ) as Promise; } getDeployTransaction( + _name: string, + _baseURI: string, overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { - return super.getDeployTransaction(overrides || {}); + return super.getDeployTransaction(_name, _baseURI, overrides || {}); } attach(address: string): ERC1155MintBurnPackedBalanceMock { return super.attach(address) as ERC1155MintBurnPackedBalanceMock; @@ -43,6 +49,22 @@ export class ERC1155MintBurnPackedBalanceMock__factory extends ContractFactory { } const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "string", + name: "_baseURI", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, { anonymous: false, inputs: [ @@ -213,6 +235,19 @@ const _abi = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -387,6 +422,19 @@ const _abi = [ stateMutability: "nonpayable", type: "function", }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -512,4 +560,4 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50612796806100206000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c8063a3f091f51161008c578063db90e83c11610066578063db90e83c14610221578063e985e9c514610242578063eaec5f8114610255578063f242432a14610268576100e9565b8063a3f091f5146101e8578063bd7a6c41146101fb578063d7a0ad901461020e576100e9565b80632eb2c2d6116100c85780632eb2c2d61461018d578063437ecbe9146101a25780634e1273f4146101b5578063a22cb465146101d5576100e9565b8062fdd58e1461012457806301ffc9a71461014d5780630e89341c1461016d575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161011b90612359565b60405180910390fd5b6101376101323660046120b1565b61027b565b60405161014491906123b6565b60405180910390f35b61016061015b366004612220565b6102d0565b60405161014491906122dd565b61018061017b366004612260565b6102e3565b60405161014491906122e8565b6101a061019b366004611e68565b610436565b005b6101a06101b03660046120da565b610541565b6101c86101c336600461215f565b610551565b6040516101449190612299565b6101a06101e3366004612077565b6107d0565b6101a06101f636600461210c565b610869565b6101a0610209366004611f71565b61087b565b6101a061021c366004611fe2565b610886565b61023461022f366004612260565b610892565b6040516101449291906123bf565b610160610250366004611e36565b61089f565b610137610263366004612278565b6108da565b6101a0610276366004611f0e565b6108ed565b600080600061028984610892565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506102c790826108da565b95945050505050565b60006102db826109f1565b90505b919050565b606060026102f083610a4e565b604051602001808380546001816001161561010002031660029004801561034e5780601f1061032c57610100808354040283529182019161034e565b820191906000526020600020905b81548152906001019060200180831161033a575b5050825160208401908083835b6020831061039857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161035b565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff8616148061045f575061045f853361089f565b6104b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c81526020018061257e603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612449603d913960400191505060405180910390fd5b61052c85858585610b7a565b61053a858585855a86610f87565b5050505050565b61054c8383836111fe565b505050565b815181516060919081146105b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806124106039913960400191505060405180910390fd5b6000806105d0856000815181106105c357fe5b6020026020010151610892565b915091506000806000886000815181106105e657fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561065a57600080fd5b50604051908082528060200260200182016040528015610684578160200160208202803683370190505b50905061069183856108da565b8160008151811061069e57fe5b602090810291909101015260015b868110156107c3576106c38982815181106105c357fe5b9096509450828614158061072c57508981815181106106de57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a600183038151811061070b57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561079a576000808b838151811061074057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6107a484866108da565b8282815181106107b057fe5b60209081029190910101526001016106ac565b5098975050505050505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61087584848484611268565b50505050565b61054c8383836112dc565b61087584848484611485565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff861614806109165750610916853361089f565b61096b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806124b96037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806126746038913960400191505060405180910390fd5b6109e38585858561170f565b61053a858585855a866117b3565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c000000000000000000000000000000000000000000000000000000001415610a45575060016102de565b6102db826119a4565b606081610a8f575060408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201526102de565b818060005b8215610aa857600101600a83049250610a94565b60608167ffffffffffffffff81118015610ac157600080fd5b506040519080825280601f01601f191660200182016040528015610aec576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610b7057600a840660300160f81b82828060019003935081518110610b3657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610b13565b5095945050505050565b815181518114610bd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806124f06042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610c115750600081115b15610de357600080610c29856000815181106105c357fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610c819190849088908590610c7257fe5b60200260200101516001611a01565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610cd79190859089908590610cc857fe5b60200260200101516000611a01565b90508360015b86811015610d9157610cf48982815181106105c357fe5b9096509450818614610d635773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610d7484868a8481518110610c7257fe5b9350610d8783868a8481518110610cc857fe5b9250600101610cdd565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550610e80565b60005b81811015610e7e57828181518110610dfa57fe5b6020026020010151610e1f87868481518110610e1257fe5b602002602001015161027b565b1015610e76576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806125f76036913960400191505060405180910390fd5b600101610de6565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610f2c578181015183820152602001610f14565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610f6b578181015183820152602001610f53565b5050505090500194505050505060405180910390a45050505050565b610fa68573ffffffffffffffffffffffffffffffffffffffff16611c14565b156111f65760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561105e578181015183820152602001611046565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561109d578181015183820152602001611085565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156110d95781810151838201526020016110c1565b50505050905090810190601f1680156111065780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561112b57600080fd5b5087f115801561113f573d6000803e3d6000fd5b50505050506040513d602081101561115657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c8100000000000000000000000000000000000000000000000000000000146111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c815260200180612532604c913960600191505060405180910390fd5b505b505050505050565b61120b8383836001611c4e565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b6112758484846000611c4e565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a461087560008585855a866117b3565b815181518114611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001806125ba603d913960400191505060405180910390fd5b60005b8181101561137d576113758585838151811061135257fe5b602002602001015185848151811061136657fe5b60200260200101516001611c4e565b60010161133a565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561142b578181015183820152602001611413565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561146a578181015183820152602001611452565b5050505090500194505050505060405180910390a450505050565b81518351146114df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001806126f1603e913960400191505060405180910390fd5b8251156115ff576000806114f9856000815181106105c357fe5b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091528120548751939550919350916115429190849088908590610cc857fe5b86519091508360015b828110156115c6576115628982815181106105c357fe5b90965094508186146115ab5773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b6115bc84868a8481518110610cc857fe5b935060010161154b565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156116ac578181015183820152602001611694565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156116eb5781810151838201526020016116d3565b5050505090500194505050505060405180910390a461087560008585855a86610f87565b61171c8483836001611c4e565b6117298383836000611c4e565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b6117d28573ffffffffffffffffffffffffffffffffffffffff16611c14565b156111f65760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561188b578181015183820152602001611873565b50505050905090810190601f1680156118b85780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b1580156118db57600080fd5b5087f11580156118ef573d6000803e3d6000fd5b50505050506040513d602081101561190657600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e6100000000000000000000000000000000000000000000000000000000146111f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604781526020018061262d6047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156119f8575060016102de565b6102db82611cd5565b60006020840263ffffffff82846001811115611a1957fe5b1415611ae75784821b8701925086831015611a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061272f6032913960400191505060405180910390fd5b64010000000087831c8216860110611ae2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061272f6032913960400191505060405180910390fd5b611c0a565b6001846001811115611af557fe5b1415611bb95784821b8703925086831115611b5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806124866033913960400191505060405180910390fd5b84818389901c161015611ae2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806124866033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806126ac6045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590611c4757507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080611c5a85610892565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150611c9a90828686611a01565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146102de57600080fd5b600082601f830112611d53578081fd5b8135611d66611d61826123f1565b6123cd565b818152915060208083019084810181840286018201871015611d8757600080fd5b60005b84811015611da657813584529282019290820190600101611d8a565b505050505092915050565b600082601f830112611dc1578081fd5b813567ffffffffffffffff811115611dd557fe5b611e0660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016123cd565b9150808252836020828501011115611e1d57600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611e48578182fd5b611e5183611d1f565b9150611e5f60208401611d1f565b90509250929050565b600080600080600060a08688031215611e7f578081fd5b611e8886611d1f565b9450611e9660208701611d1f565b9350604086013567ffffffffffffffff80821115611eb2578283fd5b611ebe89838a01611d43565b94506060880135915080821115611ed3578283fd5b611edf89838a01611d43565b93506080880135915080821115611ef4578283fd5b50611f0188828901611db1565b9150509295509295909350565b600080600080600060a08688031215611f25578081fd5b611f2e86611d1f565b9450611f3c60208701611d1f565b93506040860135925060608601359150608086013567ffffffffffffffff811115611f65578182fd5b611f0188828901611db1565b600080600060608486031215611f85578283fd5b611f8e84611d1f565b9250602084013567ffffffffffffffff80821115611faa578384fd5b611fb687838801611d43565b93506040860135915080821115611fcb578283fd5b50611fd886828701611d43565b9150509250925092565b60008060008060808587031215611ff7578384fd5b61200085611d1f565b9350602085013567ffffffffffffffff8082111561201c578485fd5b61202888838901611d43565b9450604087013591508082111561203d578384fd5b61204988838901611d43565b9350606087013591508082111561205e578283fd5b5061206b87828801611db1565b91505092959194509250565b60008060408385031215612089578182fd5b61209283611d1f565b9150602083013580151581146120a6578182fd5b809150509250929050565b600080604083850312156120c3578182fd5b6120cc83611d1f565b946020939093013593505050565b6000806000606084860312156120ee578283fd5b6120f784611d1f565b95602085013595506040909401359392505050565b60008060008060808587031215612121578384fd5b61212a85611d1f565b93506020850135925060408501359150606085013567ffffffffffffffff811115612153578182fd5b61206b87828801611db1565b60008060408385031215612171578081fd5b823567ffffffffffffffff80821115612188578283fd5b818501915085601f83011261219b578283fd5b81356121a9611d61826123f1565b80828252602080830192508086018a8283870289010111156121c9578788fd5b8796505b848710156121f2576121de81611d1f565b8452600196909601959281019281016121cd565b509096508701359350505080821115612209578283fd5b5061221685828601611d43565b9150509250929050565b600060208284031215612231578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611c47578182fd5b600060208284031215612271578081fd5b5035919050565b6000806040838503121561228a578182fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156122d1578351835292840192918401916001016122b5565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b81811015612314578581018301518582016040015282016122f8565b818111156123255783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156123e957fe5b604052919050565b600067ffffffffffffffff82111561240557fe5b506020908102019056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a2646970667358221220cfaa0248ab3cd2216b2aa8933fcad401337cc5abff0d89fa02c42db1a3fc41cb64736f6c63430007040033"; + "0x60806040523480156200001157600080fd5b5060405162002b3238038062002b328339810160408190526200003491620001dc565b8151829082906200004d9060039060208501906200006e565b508051620000639060029060208401906200006e565b505050505062000244565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620000a65760008555620000f1565b82601f10620000c157805160ff1916838001178555620000f1565b82800160010185558215620000f1579182015b82811115620000f1578251825591602001919060010190620000d4565b50620000ff92915062000103565b5090565b5b80821115620000ff576000815560010162000104565b600082601f8301126200012b578081fd5b815167ffffffffffffffff808211156200014157fe5b6040516020601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201810183811183821017156200017f57fe5b806040525081945083825286818588010111156200019c57600080fd5b600092505b83831015620001c05785830181015182840182015291820191620001a1565b83831115620001d25760008185840101525b5050505092915050565b60008060408385031215620001ef578182fd5b825167ffffffffffffffff8082111562000207578384fd5b62000215868387016200011a565b935060208501519150808211156200022b578283fd5b506200023a858286016200011a565b9150509250929050565b6128de80620002546000396000f3fe608060405234801561001057600080fd5b50600436106100ff5760003560e01c8063a22cb46511610097578063db90e83c11610066578063db90e83c14610247578063e985e9c514610268578063eaec5f811461027b578063f242432a1461028e576100ff565b8063a22cb465146101fb578063a3f091f51461020e578063bd7a6c4114610221578063d7a0ad9014610234576100ff565b80632eb2c2d6116100d35780632eb2c2d6146101ab578063437ecbe9146101c05780634e1273f4146101d35780636c0360eb146101f3576100ff565b8062fdd58e1461013a57806301ffc9a71461016357806306fdde03146101835780630e89341c14610198575b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610131906124a1565b60405180910390fd5b61014d6101483660046121f9565b6102a1565b60405161015a91906124fe565b60405180910390f35b610176610171366004612368565b6102f6565b60405161015a9190612425565b61018b610309565b60405161015a9190612430565b61018b6101a63660046123a8565b6103b5565b6101be6101b9366004611fb0565b610508565b005b6101be6101ce366004612222565b610613565b6101e66101e13660046122a7565b610623565b60405161015a91906123e1565b61018b6108a2565b6101be6102093660046121bf565b610918565b6101be61021c366004612254565b6109b1565b6101be61022f3660046120b9565b6109c3565b6101be61024236600461212a565b6109ce565b61025a6102553660046123a8565b6109da565b60405161015a929190612507565b610176610276366004611f7e565b6109e7565b61014d6102893660046123c0565b610a22565b6101be61029c366004612056565b610a35565b60008060006102af846109da565b73ffffffffffffffffffffffffffffffffffffffff871660009081526020818152604080832085845290915290205491935091506102ed9082610a22565b95945050505050565b600061030182610b39565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156103ad5780601f10610382576101008083540402835291602001916103ad565b820191906000526020600020905b81548152906001019060200180831161039057829003601f168201915b505050505081565b606060026103c283610b96565b60405160200180838054600181600116156101000203166002900480156104205780601f106103fe576101008083540402835291820191610420565b820191906000526020600020905b81548152906001019060200180831161040c575b5050825160208401908083835b6020831061046a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161042d565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610531575061053185336109e7565b610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001806126c6603c913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166105f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612591603d913960400191505060405180910390fd5b6105fe85858585610cc2565b61060c858585855a866110cf565b5050505050565b61061e838383611346565b505050565b81518151606091908114610682576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806125586039913960400191505060405180910390fd5b6000806106a28560008151811061069557fe5b60200260200101516109da565b915091506000806000886000815181106106b857fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600083905060608567ffffffffffffffff8111801561072c57600080fd5b50604051908082528060200260200182016040528015610756578160200160208202803683370190505b5090506107638385610a22565b8160008151811061077057fe5b602090810291909101015260015b868110156108955761079589828151811061069557fe5b909650945082861415806107fe57508981815181106107b057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168a60018303815181106107dd57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561086c576000808b838151811061081257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205493508592505b6108768486610a22565b82828151811061088257fe5b602090810291909101015260010161077e565b5098975050505050505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f810184900484028201840190925281815292918301828280156103ad5780601f10610382576101008083540402835291602001916103ad565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b6109bd848484846113b0565b50505050565b61061e838383611424565b6109bd848484846115cd565b6008810491600790911690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6020810282901c63ffffffff1692915050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610a5e5750610a5e85336109e7565b610ab3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001806126016037913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610b1f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806127bc6038913960400191505060405180910390fd5b610b2b85858585611857565b61060c858585855a866118fb565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c000000000000000000000000000000000000000000000000000000001415610b8d57506001610304565b61030182611aec565b606081610bd7575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610304565b818060005b8215610bf057600101600a83049250610bdc565b60608167ffffffffffffffff81118015610c0957600080fd5b506040519080825280601f01601f191660200182016040528015610c34576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b8315610cb857600a840660300160f81b82828060019003935081518110610c7e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84049350610c5b565b5095945050505050565b815181518114610d1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806126386042913960600191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610d595750600081115b15610f2b57600080610d718560008151811061069557fe5b73ffffffffffffffffffffffffffffffffffffffff8916600090815260208181526040808320858452909152812054875193955091935091610dc99190849088908590610dba57fe5b60200260200101516001611b49565b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832087845290915281205487519293509091610e1f9190859089908590610e1057fe5b60200260200101516000611b49565b90508360015b86811015610ed957610e3c89828151811061069557fe5b9096509450818614610eab5773ffffffffffffffffffffffffffffffffffffffff8b811660009081526020818152604080832086845280835281842098909855928d16825281815282822094825284815282822095909555878152948452808520549290935291909220549084905b610ebc84868a8481518110610dba57fe5b9350610ecf83868a8481518110610e1057fe5b9250600101610e25565b505073ffffffffffffffffffffffffffffffffffffffff808a16600090815260208181526040808320888452825280832095909555918a16815280825283812095815294905292209190915550610fc8565b60005b81811015610fc657828181518110610f4257fe5b6020026020010151610f6787868481518110610f5a57fe5b60200260200101516102a1565b1015610fbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061273f6036913960400191505060405180910390fd5b600101610f2e565b505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561107457818101518382015260200161105c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156110b357818101518382015260200161109b565b5050505090500194505050505060405180910390a45050505050565b6110ee8573ffffffffffffffffffffffffffffffffffffffff16611d5c565b1561133e5760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156111a657818101518382015260200161118e565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156111e55781810151838201526020016111cd565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611221578181015183820152602001611209565b50505050905090810190601f16801561124e5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b15801561127357600080fd5b5087f1158015611287573d6000803e3d6000fd5b50505050506040513d602081101561129e57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c81000000000000000000000000000000000000000000000000000000001461133c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604c81526020018061267a604c913960600191505060405180910390fd5b505b505050505050565b6113538383836001611d96565b6040805183815260208101839052815160009273ffffffffffffffffffffffffffffffffffffffff87169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a4505050565b6113bd8484846000611d96565b6040805184815260208101849052815173ffffffffffffffffffffffffffffffffffffffff87169260009233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a46109bd60008585855a866118fb565b81518151811461147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180612702603d913960400191505060405180910390fd5b60005b818110156114c5576114bd8585838151811061149a57fe5b60200260200101518584815181106114ae57fe5b60200260200101516001611d96565b600101611482565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561157357818101518382015260200161155b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156115b257818101518382015260200161159a565b5050505090500194505050505060405180910390a450505050565b8151835114611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180612839603e913960400191505060405180910390fd5b825115611747576000806116418560008151811061069557fe5b73ffffffffffffffffffffffffffffffffffffffff881660009081526020818152604080832085845290915281205487519395509193509161168a9190849088908590610e1057fe5b86519091508360015b8281101561170e576116aa89828151811061069557fe5b90965094508186146116f35773ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320948352939052828120949094558584529220549184905b61170484868a8481518110610e1057fe5b9350600101611693565b50505073ffffffffffffffffffffffffffffffffffffffff87166000908152602081815260408083209583529490529290922091909155505b8373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156117f45781810151838201526020016117dc565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561183357818101518382015260200161181b565b5050505090500194505050505060405180910390a46109bd60008585855a866110cf565b6118648483836001611d96565b6118718383836000611d96565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051808381526020018281526020019250505060405180910390a450505050565b61191a8573ffffffffffffffffffffffffffffffffffffffff16611d5c565b1561133e5760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156119d35781810151838201526020016119bb565b50505050905090810190601f168015611a005780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b158015611a2357600080fd5b5087f1158015611a37573d6000803e3d6000fd5b50505050506040513d6020811015611a4e57600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e61000000000000000000000000000000000000000000000000000000001461133c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260478152602001806127756047913960600191505060405180910390fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a26000000000000000000000000000000000000000000000000000000001415611b4057506001610304565b61030182611e1d565b60006020840263ffffffff82846001811115611b6157fe5b1415611c2f5784821b8701925086831015611bc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806128776032913960400191505060405180910390fd5b64010000000087831c8216860110611c2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806128776032913960400191505060405180910390fd5b611d52565b6001846001811115611c3d57fe5b1415611d015784821b8703925086831115611ca3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806125ce6033913960400191505060405180910390fd5b84818389901c161015611c2a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806125ce6033913960400191505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260458152602001806127f46045913960600191505060405180910390fd5b5050949350505050565b6000813f8015801590611d8f57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b600080611da2856109da565b73ffffffffffffffffffffffffffffffffffffffff88166000908152602081815260408083208584529091529020549193509150611de290828686611b49565b73ffffffffffffffffffffffffffffffffffffffff909616600090815260208181526040808320948352939052919091209490945550505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461030457600080fd5b600082601f830112611e9b578081fd5b8135611eae611ea982612539565b612515565b818152915060208083019084810181840286018201871015611ecf57600080fd5b60005b84811015611eee57813584529282019290820190600101611ed2565b505050505092915050565b600082601f830112611f09578081fd5b813567ffffffffffffffff811115611f1d57fe5b611f4e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612515565b9150808252836020828501011115611f6557600080fd5b8060208401602084013760009082016020015292915050565b60008060408385031215611f90578182fd5b611f9983611e67565b9150611fa760208401611e67565b90509250929050565b600080600080600060a08688031215611fc7578081fd5b611fd086611e67565b9450611fde60208701611e67565b9350604086013567ffffffffffffffff80821115611ffa578283fd5b61200689838a01611e8b565b9450606088013591508082111561201b578283fd5b61202789838a01611e8b565b9350608088013591508082111561203c578283fd5b5061204988828901611ef9565b9150509295509295909350565b600080600080600060a0868803121561206d578081fd5b61207686611e67565b945061208460208701611e67565b93506040860135925060608601359150608086013567ffffffffffffffff8111156120ad578182fd5b61204988828901611ef9565b6000806000606084860312156120cd578283fd5b6120d684611e67565b9250602084013567ffffffffffffffff808211156120f2578384fd5b6120fe87838801611e8b565b93506040860135915080821115612113578283fd5b5061212086828701611e8b565b9150509250925092565b6000806000806080858703121561213f578384fd5b61214885611e67565b9350602085013567ffffffffffffffff80821115612164578485fd5b61217088838901611e8b565b94506040870135915080821115612185578384fd5b61219188838901611e8b565b935060608701359150808211156121a6578283fd5b506121b387828801611ef9565b91505092959194509250565b600080604083850312156121d1578182fd5b6121da83611e67565b9150602083013580151581146121ee578182fd5b809150509250929050565b6000806040838503121561220b578182fd5b61221483611e67565b946020939093013593505050565b600080600060608486031215612236578283fd5b61223f84611e67565b95602085013595506040909401359392505050565b60008060008060808587031215612269578384fd5b61227285611e67565b93506020850135925060408501359150606085013567ffffffffffffffff81111561229b578182fd5b6121b387828801611ef9565b600080604083850312156122b9578081fd5b823567ffffffffffffffff808211156122d0578283fd5b818501915085601f8301126122e3578283fd5b81356122f1611ea982612539565b80828252602080830192508086018a828387028901011115612311578788fd5b8796505b8487101561233a5761232681611e67565b845260019690960195928101928101612315565b509096508701359350505080821115612351578283fd5b5061235e85828601611e8b565b9150509250929050565b600060208284031215612379578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611d8f578182fd5b6000602082840312156123b9578081fd5b5035919050565b600080604083850312156123d2578182fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015612419578351835292840192918401916001016123fd565b50909695505050505050565b901515815260200190565b6000602080835283518082850152825b8181101561245c57858101830151858201604001528201612440565b8181111561246d5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526034908201527f455243313135354d6574614d696e744275726e5061636b656442616c616e636560408201527f4d6f636b3a20494e56414c49445f4d4554484f44000000000000000000000000606082015260800190565b90815260200190565b918252602082015260400190565b60405181810167ffffffffffffffff8111828210171561253157fe5b604052919050565b600067ffffffffffffffff82111561254d57fe5b506020908102019056fe455243313135355061636b656442616c616e63652362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e475448455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20554e444552464c4f57455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e6365237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e5061636b656442616c616e63652362617463684275726e3a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7361666542617463685472616e7366657246726f6d3a20554e444552464c4f57455243313135355061636b656442616c616e6365235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745455243313135355061636b656442616c616e636523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a20494e56414c49445f42494e5f57524954455f4f5045524154494f4e455243313135354d696e744275726e5061636b656442616c616e6365235f62617463684d696e743a20494e56414c49445f4152524159535f4c454e475448455243313135355061636b656442616c616e6365235f7669657755706461746542696e56616c75653a204f564552464c4f57a26469706673582212204aa1b13560e71a37f5fadb28a853fe4d62dec0731bc5ba1c017dbdc08fd3f98464736f6c63430007040033"; diff --git a/src/gen/typechain/factories/ERC2981GlobalMock__factory.ts b/src/gen/typechain/factories/ERC2981GlobalMock__factory.ts new file mode 100644 index 0000000..4139c6b --- /dev/null +++ b/src/gen/typechain/factories/ERC2981GlobalMock__factory.ts @@ -0,0 +1,576 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; + +import type { ERC2981GlobalMock } from "../ERC2981GlobalMock"; + +export class ERC2981GlobalMock__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _name: string, + _baseURI: string, + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy( + _name, + _baseURI, + overrides || {} + ) as Promise; + } + getDeployTransaction( + _name: string, + _baseURI: string, + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(_name, _baseURI, overrides || {}); + } + attach(address: string): ERC2981GlobalMock { + return super.attach(address) as ERC2981GlobalMock; + } + connect(signer: Signer): ERC2981GlobalMock__factory { + return super.connect(signer) as ERC2981GlobalMock__factory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): ERC2981GlobalMock { + return new Contract(address, _abi, signerOrProvider) as ERC2981GlobalMock; + } +} + +const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "_name", + type: "string", + }, + { + internalType: "string", + name: "_baseURI", + type: "string", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "_owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "_operator", + type: "address", + }, + { + indexed: false, + internalType: "bool", + name: "_approved", + type: "bool", + }, + ], + name: "ApprovalForAll", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "_operator", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "_from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "_to", + type: "address", + }, + { + indexed: false, + internalType: "uint256[]", + name: "_ids", + type: "uint256[]", + }, + { + indexed: false, + internalType: "uint256[]", + name: "_amounts", + type: "uint256[]", + }, + ], + name: "TransferBatch", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "_operator", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "_from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "_to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "_id", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "TransferSingle", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "_uri", + type: "string", + }, + { + indexed: true, + internalType: "uint256", + name: "_id", + type: "uint256", + }, + ], + name: "URI", + type: "event", + }, + { + stateMutability: "nonpayable", + type: "fallback", + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, + { + internalType: "uint256", + name: "_id", + type: "uint256", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address[]", + name: "_owners", + type: "address[]", + }, + { + internalType: "uint256[]", + name: "_ids", + type: "uint256[]", + }, + ], + name: "balanceOfBatch", + outputs: [ + { + internalType: "uint256[]", + name: "", + type: "uint256[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "baseURI", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address", + }, + { + internalType: "uint256[]", + name: "_ids", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "_values", + type: "uint256[]", + }, + ], + name: "batchBurnMock", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_to", + type: "address", + }, + { + internalType: "uint256[]", + name: "_ids", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "_values", + type: "uint256[]", + }, + { + internalType: "bytes", + name: "_data", + type: "bytes", + }, + ], + name: "batchMintMock", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address", + }, + { + internalType: "uint256", + name: "_id", + type: "uint256", + }, + { + internalType: "uint256", + name: "_value", + type: "uint256", + }, + ], + name: "burnMock", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "globalRoyaltyInfo", + outputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "uint256", + name: "feeBasisPoints", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_owner", + type: "address", + }, + { + internalType: "address", + name: "_operator", + type: "address", + }, + ], + name: "isApprovedForAll", + outputs: [ + { + internalType: "bool", + name: "isOperator", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_to", + type: "address", + }, + { + internalType: "uint256", + name: "_id", + type: "uint256", + }, + { + internalType: "uint256", + name: "_value", + type: "uint256", + }, + { + internalType: "bytes", + name: "_data", + type: "bytes", + }, + ], + name: "mintMock", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + { + internalType: "uint256", + name: "_saleCost", + type: "uint256", + }, + ], + name: "royaltyInfo", + outputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "uint256", + name: "royaltyAmount", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address", + }, + { + internalType: "address", + name: "_to", + type: "address", + }, + { + internalType: "uint256[]", + name: "_ids", + type: "uint256[]", + }, + { + internalType: "uint256[]", + name: "_amounts", + type: "uint256[]", + }, + { + internalType: "bytes", + name: "_data", + type: "bytes", + }, + ], + name: "safeBatchTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address", + }, + { + internalType: "address", + name: "_to", + type: "address", + }, + { + internalType: "uint256", + name: "_id", + type: "uint256", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "_data", + type: "bytes", + }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_operator", + type: "address", + }, + { + internalType: "bool", + name: "_approved", + type: "bool", + }, + ], + name: "setApprovalForAll", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_recipient", + type: "address", + }, + { + internalType: "uint256", + name: "_royaltyBasisPoints", + type: "uint256", + }, + ], + name: "setGlobalRoyaltyInfo", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "_interfaceID", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_id", + type: "uint256", + }, + ], + name: "uri", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, +]; + +const _bytecode = + "0x60806040523480156200001157600080fd5b5060405162002daf38038062002daf833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b9083019060208201858111156200006e57600080fd5b82516401000000008111828201881017156200008957600080fd5b82525081516020918201929091019080838360005b83811015620000b85781810151838201526020016200009e565b50505050905090810190601f168015620000e65780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010a57600080fd5b9083019060208201858111156200012057600080fd5b82516401000000008111828201881017156200013b57600080fd5b82525081516020918201929091019080838360005b838110156200016a57818101518382015260200162000150565b50505050905090810190601f168015620001985780820380516001836020036101000a031916815260200191505b50604052505050818181818160039080519060200190620001bb929190620001de565b508051620001d1906002906020840190620001de565b505050505050506200028a565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000216576000855562000261565b82601f106200023157805160ff191683800117855562000261565b8280016001018555821562000261579182015b828111156200026157825182559160200191906001019062000244565b506200026f92915062000273565b5090565b5b808211156200026f576000815560010162000274565b612b15806200029a6000396000f3fe608060405234801561001057600080fd5b506004361061011a5760003560e01c80636c0360eb116100b2578063bd7a6c4111610081578063d7a0ad9011610066578063d7a0ad9014610903578063e985e9c514610ace578063f242432a14610b095761011a565b8063bd7a6c41146107b7578063c9823cc6146108fb5761011a565b80636c0360eb1461066c57806393cfa68214610674578063a22cb465146106ad578063a3f091f5146106e85761011a565b80632a55205a116100ee5780632a55205a1461028d5780632eb2c2d6146102e0578063437ecbe9146104b65780634e1273f4146104f55761011a565b8062fdd58e1461015557806301ffc9a7146101a057806306fdde03146101f35780630e89341c14610270575b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014c9061282a565b60405180910390fd5b61018e6004803603604081101561016b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610be1565b60408051918252519081900360200190f35b6101df600480360360208110156101b657600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610c17565b604080519115158252519081900360200190f35b6101fb610c2a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023557818101518382015260200161021d565b50505050905090810190601f1680156102625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101fb6004803603602081101561028657600080fd5b5035610cd6565b6102b0600480360360408110156102a357600080fd5b5080359060200135610e29565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091528051918290030190f35b6104b4600480360360a08110156102f657600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169181019060608101604082013564010000000081111561033757600080fd5b82018360208201111561034957600080fd5b8035906020019184602083028401116401000000008311171561036b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103bb57600080fd5b8201836020820111156103cd57600080fd5b803590602001918460208302840111640100000000831117156103ef57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561043f57600080fd5b82018360208201111561045157600080fd5b8035906020019184600183028401116401000000008311171561047357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e8a945050505050565b005b6104b4600480360360608110156104cc57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060208101359060400135610f95565b61061c6004803603604081101561050b57600080fd5b81019060208101813564010000000081111561052657600080fd5b82018360208201111561053857600080fd5b8035906020019184602083028401116401000000008311171561055a57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156105aa57600080fd5b8201836020820111156105bc57600080fd5b803590602001918460208302840111640100000000831117156105de57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610fa5945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610658578181015183820152602001610640565b505050509050019250505060405180910390f35b6101fb6110f1565b6104b46004803603604081101561068a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611167565b6104b4600480360360408110156106c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611175565b6104b4600480360360808110156106fe57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516916020810135916040820135919081019060808101606082013564010000000081111561074257600080fd5b82018360208201111561075457600080fd5b8035906020019184600183028401116401000000008311171561077657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061120e945050505050565b6104b4600480360360608110156107cd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561080557600080fd5b82018360208201111561081757600080fd5b8035906020019184602083028401116401000000008311171561083957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561088957600080fd5b82018360208201111561089b57600080fd5b803590602001918460208302840111640100000000831117156108bd57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611220945050505050565b6102b061122b565b6104b46004803603608081101561091957600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561095157600080fd5b82018360208201111561096357600080fd5b8035906020019184602083028401116401000000008311171561098557600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156109d557600080fd5b8201836020820111156109e757600080fd5b80359060200191846020830284011164010000000083111715610a0957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610a5957600080fd5b820183602082011115610a6b57600080fd5b80359060200191846001830284011164010000000083111715610a8d57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061124d945050505050565b6101df60048036036040811015610ae457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611259565b6104b4600480360360a0811015610b1f57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610b6c57600080fd5b820183602082011115610b7e57600080fd5b80359060200191846001830284011164010000000083111715610ba057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611294945050505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152602081815260408083208484529091529020545b92915050565b6000610c2282611398565b90505b919050565b6003805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f81018490048402820184019092528181529291830182828015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081565b60606002610ce3836113f5565b6040516020018083805460018160011615610100020316600290048015610d415780601f10610d1f576101008083540402835291820191610d41565b820191906000526020600020905b815481529060010190602001808311610d2d575b5050825160208401908083835b60208310610d8b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d4e565b5181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990911692169190911790527f2e6a736f6e000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe50181526005909201905295945050505050565b600080610e34612813565b506040805180820190915260045473ffffffffffffffffffffffffffffffffffffffff1680825260055460208301819052610e7e906103e890610e78908890611521565b906115b1565b92509250509250929050565b3373ffffffffffffffffffffffffffffffffffffffff86161480610eb35750610eb38533611259565b610f08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180612a08602f913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8416610f74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806129126030913960400191505060405180910390fd5b610f8085858585611635565b610f8e858585855a86611989565b5050505050565b610fa0838383611c00565b505050565b60608151835114611001576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806129a3602c913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561101b57600080fd5b50604051908082528060200260200182016040528015611045578160200160208202803683370190505b50905060005b84518110156110e95760008086838151811061106357fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008583815181106110b357fe5b60200260200101518152602001908152602001600020548282815181106110d657fe5b602090810291909101015260010161104b565b509392505050565b600280546040805160206001841615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909316849004601f81018490048402820184019092528181529291830182828015610cce5780601f10610ca357610100808354040283529160200191610cce565b6111718282611cab565b5050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61121a84848484611dbd565b50505050565b610fa0838383611e72565b60045460055473ffffffffffffffffffffffffffffffffffffffff9091169082565b61121a848484846120b2565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b3373ffffffffffffffffffffffffffffffffffffffff861614806112bd57506112bd8533611259565b611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806128b3602a913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841661137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612888602b913960400191505060405180910390fd5b61138a858585856122fc565b610f8e858585855a866123ff565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a0000000000000000000000000000000000000000000000000000000014156113ec57506001610c25565b610c22826125f0565b606081611436575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610c25565b818060005b821561144f57600101600a8304925061143b565b60608167ffffffffffffffff8111801561146857600080fd5b506040519080825280601f01601f191660200182016040528015611493576020820181803683370190505b5090507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82015b831561151757600a840660300160f81b828280600190039350815181106114dd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506114ba565b5095945050505050565b60008261153057506000610c11565b8282028284828161153d57fe5b04146115aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236d756c3a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b9392505050565b600080821161162157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d617468236469763a204449564953494f4e5f42595f5a45524f0000604482015290519081900360640190fd5b600082848161162c57fe5b04949350505050565b805182511461168f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806128dd6035913960400191505060405180910390fd5b815160005b81811015611881576117248382815181106116ab57fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116ff57fe5b60200260200101518152602001908152602001600020546125fb90919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061177057fe5b602002602001015181526020019081526020016000208190555061181283828151811061179957fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106117ed57fe5b602002602001015181526020019081526020016000205461267290919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086848151811061185e57fe5b602090810291909101810151825281019190915260400160002055600101611694565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561192e578181015183820152602001611916565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561196d578181015183820152602001611955565b5050505090500194505050505060405180910390a45050505050565b6119a88573ffffffffffffffffffffffffffffffffffffffff166126e6565b15611bf85760008573ffffffffffffffffffffffffffffffffffffffff1663bc197c8184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015611a60578181015183820152602001611a48565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611a9f578181015183820152602001611a87565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015611adb578181015183820152602001611ac3565b50505050905090810190601f168015611b085780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600088803b158015611b2d57600080fd5b5087f1158015611b41573d6000803e3d6000fd5b50505050506040513d6020811015611b5857600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180612a67603f913960400191505060405180910390fd5b505b505050505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152902054611c3990826125fb565b73ffffffffffffffffffffffffffffffffffffffff841660008181526020818152604080832087845282528083209490945583518681529081018590528351919333927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629281900390910190a4505050565b73ffffffffffffffffffffffffffffffffffffffff8216611d17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806129726031913960400191505060405180910390fd5b6103e8811115611d72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001806129cf6039913960400191505060405180910390fd5b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9390931692909217909155600555565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320868452909152902054611df69083612672565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260208181526040808320888452825280832094909455835187815290810186905283519293919233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62928290030190a461121a60008585855a866123ff565b815181518114611ecd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806129426030913960400191505060405180910390fd5b60005b81811015611faa57611f3b838281518110611ee757fe5b60200260200101516000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008785815181106116ff57fe5b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000868481518110611f8757fe5b602090810291909101810151825281019190915260400160002055600101611ed0565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612058578181015183820152602001612040565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561209757818101518382015260200161207f565b5050505090500194505050505060405180910390a450505050565b815183511461210c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612a376030913960400191505060405180910390fd5b825160005b818110156121eb5761217c84828151811061212857fe5b60200260200101516000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008885815181106117ed57fe5b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008784815181106121c857fe5b602090810291909101810151825281019190915260400160002055600101612111565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612299578181015183820152602001612281565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156122d85781810151838201526020016122c0565b5050505090500194505050505060405180910390a4610f8e60008686865a87611989565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832085845290915290205461233590826125fb565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260208181526040808320878452825280832094909455918616815280825282812085825290915220546123859082612672565b73ffffffffffffffffffffffffffffffffffffffff808516600081815260208181526040808320888452825291829020949094558051868152938401859052805191939288169233927fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62929181900390910190a450505050565b61241e8573ffffffffffffffffffffffffffffffffffffffff166126e6565b15611bf85760008573ffffffffffffffffffffffffffffffffffffffff1663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156124d75781810151838201526020016124bf565b50505050905090810190601f1680156125045780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600088803b15801561252757600080fd5b5087f115801561253b573d6000803e3d6000fd5b50505050506040513d602081101561255257600080fd5b505190507fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611bf6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180612aa6603a913960400191505060405180910390fd5b6000610c228261271d565b60008282111561266c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f536166654d617468237375623a20554e444552464c4f57000000000000000000604482015290519081900360640190fd5b50900390565b6000828201838110156115aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236164643a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b6000813f80158015906115aa57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470141592915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000141561277157506001610c25565b610c228260007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014156127c957506001610c25565b7f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610c22565b604080518082019091526000808252602082015290565b60208082526027908201527f455243313135354d6574614d696e744275726e4d6f636b3a20494e56414c494460408201527f5f4d4554484f440000000000000000000000000000000000000000000000000060608201526080019056fe4552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f524543495049454e544552433131353523736166655472616e7366657246726f6d3a20494e56414c49445f4f50455241544f5245524331313535235f7361666542617463685472616e7366657246726f6d3a20494e56414c49445f4152524159535f4c454e47544845524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f524543495049454e54455243313135354d696e744275726e2362617463684275726e3a20494e56414c49445f4152524159535f4c454e47544845524332393831476c6f62616c235f736574476c6f62616c526f79616c74793a20524543495049454e545f49535f307830455243313135352362616c616e63654f6642617463683a20494e56414c49445f41525241595f4c454e47544845524332393831476c6f62616c235f736574476c6f62616c526f79616c74793a204645455f49535f41424f56455f3130305f50455243454e5445524331313535237361666542617463685472616e7366657246726f6d3a20494e56414c49445f4f50455241544f52455243313135354d696e744275726e2362617463684d696e743a20494e56414c49445f4152524159535f4c454e47544845524331313535235f63616c6c6f6e45524331313535426174636852656365697665643a20494e56414c49445f4f4e5f524543454956455f4d45535341474545524331313535235f63616c6c6f6e4552433131353552656365697665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745a2646970667358221220ceacbcdce353ae53948aa9b972423089875d1f569d105a9e37edc2a23df2421264736f6c63430007040033"; diff --git a/src/gen/typechain/factories/ERC2981Global__factory.ts b/src/gen/typechain/factories/ERC2981Global__factory.ts new file mode 100644 index 0000000..99dea41 --- /dev/null +++ b/src/gen/typechain/factories/ERC2981Global__factory.ts @@ -0,0 +1,109 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Signer, Contract, ContractFactory, Overrides } from "ethers"; +import { Provider, TransactionRequest } from "@ethersproject/providers"; + +import type { ERC2981Global } from "../ERC2981Global"; + +export class ERC2981Global__factory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: Overrides & { from?: string | Promise } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + getDeployTransaction( + overrides?: Overrides & { from?: string | Promise } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + attach(address: string): ERC2981Global { + return super.attach(address) as ERC2981Global; + } + connect(signer: Signer): ERC2981Global__factory { + return super.connect(signer) as ERC2981Global__factory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): ERC2981Global { + return new Contract(address, _abi, signerOrProvider) as ERC2981Global; + } +} + +const _abi = [ + { + inputs: [], + name: "globalRoyaltyInfo", + outputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "uint256", + name: "feeBasisPoints", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + { + internalType: "uint256", + name: "_saleCost", + type: "uint256", + }, + ], + name: "royaltyInfo", + outputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "uint256", + name: "royaltyAmount", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "_interfaceID", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "pure", + type: "function", + }, +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610389806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301ffc9a7146100465780632a55205a14610099578063c9823cc6146100ec575b600080fd5b6100856004803603602081101561005c57600080fd5b50357fffffffff00000000000000000000000000000000000000000000000000000000166100f4565b604080519115158252519081900360200190f35b6100bc600480360360408110156100af57600080fd5b5080359060200135610159565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091528051918290030190f35b6100bc6101ba565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000141561014857506001610154565b610151826101dc565b90505b919050565b60008061016461033c565b506040805180820190915260005473ffffffffffffffffffffffffffffffffffffffff16808252600154602083018190526101ae906103e8906101a8908890610226565b906102b8565b92509250509250929050565b60005460015473ffffffffffffffffffffffffffffffffffffffff9091169082565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b600082610235575060006102b2565b8282028284828161024257fe5b04146102af57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f536166654d617468236d756c3a204f564552464c4f5700000000000000000000604482015290519081900360640190fd5b90505b92915050565b600080821161032857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d617468236469763a204449564953494f4e5f42595f5a45524f0000604482015290519081900360640190fd5b600082848161033357fe5b04949350505050565b60408051808201909152600080825260208201529056fea2646970667358221220500d0606933313f45141c424c5b303e333204707c19b03c34b061c17f69006f964736f6c63430007040033"; diff --git a/src/gen/typechain/factories/IERC2981__factory.ts b/src/gen/typechain/factories/IERC2981__factory.ts new file mode 100644 index 0000000..f09cb89 --- /dev/null +++ b/src/gen/typechain/factories/IERC2981__factory.ts @@ -0,0 +1,68 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer } from "ethers"; +import { Provider } from "@ethersproject/providers"; + +import type { IERC2981 } from "../IERC2981"; + +export class IERC2981__factory { + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IERC2981 { + return new Contract(address, _abi, signerOrProvider) as IERC2981; + } +} + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "_tokenId", + type: "uint256", + }, + { + internalType: "uint256", + name: "_saleCost", + type: "uint256", + }, + ], + name: "royaltyInfo", + outputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + { + internalType: "uint256", + name: "royaltyAmount", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes4", + name: "_interfaceId", + type: "bytes4", + }, + ], + name: "supportsInterface", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, +]; diff --git a/src/gen/typechain/index.ts b/src/gen/typechain/index.ts index 7fb047b..e6fdd87 100644 --- a/src/gen/typechain/index.ts +++ b/src/gen/typechain/index.ts @@ -9,6 +9,7 @@ export type { IERC1155TokenReceiver } from "./IERC1155TokenReceiver"; export type { IERC1271Wallet } from "./IERC1271Wallet"; export type { IERC165 } from "./IERC165"; export type { IERC20 } from "./IERC20"; +export type { IERC2981 } from "./IERC2981"; export type { ERC1155MetadataMock } from "./ERC1155MetadataMock"; export type { ERC1155MetaMintBurnMock } from "./ERC1155MetaMintBurnMock"; export type { ERC1155MetaMintBurnPackedBalanceMock } from "./ERC1155MetaMintBurnPackedBalanceMock"; @@ -20,6 +21,7 @@ export type { ERC1271WalletValidationMock } from "./ERC1271WalletValidationMock" export type { LibEIP712 } from "./LibEIP712"; export type { ERC20 } from "./ERC20"; export type { ERC20Mock } from "./ERC20Mock"; +export type { ERC2981GlobalMock } from "./ERC2981GlobalMock"; export type { OwnableMock } from "./OwnableMock"; export type { ERC1155 } from "./ERC1155"; export type { ERC1155Meta } from "./ERC1155Meta"; @@ -28,6 +30,7 @@ export type { ERC1155MintBurn } from "./ERC1155MintBurn"; export type { ERC1155MetaPackedBalance } from "./ERC1155MetaPackedBalance"; export type { ERC1155MintBurnPackedBalance } from "./ERC1155MintBurnPackedBalance"; export type { ERC1155PackedBalance } from "./ERC1155PackedBalance"; +export type { ERC2981Global } from "./ERC2981Global"; export type { ERC165 } from "./ERC165"; export type { Ownable } from "./Ownable"; export type { SignatureValidator } from "./SignatureValidator"; @@ -40,6 +43,7 @@ export { IERC1155TokenReceiver__factory } from "./factories/IERC1155TokenReceive export { IERC1271Wallet__factory } from "./factories/IERC1271Wallet__factory"; export { IERC165__factory } from "./factories/IERC165__factory"; export { IERC20__factory } from "./factories/IERC20__factory"; +export { IERC2981__factory } from "./factories/IERC2981__factory"; export { ERC1155MetadataMock__factory } from "./factories/ERC1155MetadataMock__factory"; export { ERC1155MetaMintBurnMock__factory } from "./factories/ERC1155MetaMintBurnMock__factory"; export { ERC1155MetaMintBurnPackedBalanceMock__factory } from "./factories/ERC1155MetaMintBurnPackedBalanceMock__factory"; @@ -51,6 +55,7 @@ export { ERC1271WalletValidationMock__factory } from "./factories/ERC1271WalletV export { LibEIP712__factory } from "./factories/LibEIP712__factory"; export { ERC20__factory } from "./factories/ERC20__factory"; export { ERC20Mock__factory } from "./factories/ERC20Mock__factory"; +export { ERC2981GlobalMock__factory } from "./factories/ERC2981GlobalMock__factory"; export { OwnableMock__factory } from "./factories/OwnableMock__factory"; export { ERC1155__factory } from "./factories/ERC1155__factory"; export { ERC1155Meta__factory } from "./factories/ERC1155Meta__factory"; @@ -59,6 +64,7 @@ export { ERC1155MintBurn__factory } from "./factories/ERC1155MintBurn__factory"; export { ERC1155MetaPackedBalance__factory } from "./factories/ERC1155MetaPackedBalance__factory"; export { ERC1155MintBurnPackedBalance__factory } from "./factories/ERC1155MintBurnPackedBalance__factory"; export { ERC1155PackedBalance__factory } from "./factories/ERC1155PackedBalance__factory"; +export { ERC2981Global__factory } from "./factories/ERC2981Global__factory"; export { ERC165__factory } from "./factories/ERC165__factory"; export { Ownable__factory } from "./factories/Ownable__factory"; export { SignatureValidator__factory } from "./factories/SignatureValidator__factory"; diff --git a/src/package.json b/src/package.json index 16cc794..ee2125e 100644 --- a/src/package.json +++ b/src/package.json @@ -1,6 +1,6 @@ { "name": "@0xsequence/erc-1155", - "version": "3.0.7", + "version": "3.1.0", "description": "ERC1155 Multi-Token Standard implementation for Ethereum", "repository": "https://github.com/0xsequence/erc-1155", "homepage": "https://sequence.build", diff --git a/tests/ERC1155.spec.ts b/tests/ERC1155.spec.ts index e68fa5c..6a77f08 100644 --- a/tests/ERC1155.spec.ts +++ b/tests/ERC1155.spec.ts @@ -19,6 +19,8 @@ describe('ERC1155', () => { .pow(256) .sub(1) // 2**256 - 1 const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' + const NAME = "MyERC1155" + const METADATA_URI = "https://example.com/" let ownerAddress: string let receiverAddress: string @@ -41,7 +43,7 @@ describe('ERC1155', () => { // deploy before each test, to reset state of contract beforeEach(async () => { - erc1155Contract = (await erc1155Abstract.deploy(ownerWallet)) as ERC1155MetaMintBurnMock + erc1155Contract = (await erc1155Abstract.deploy(ownerWallet, [NAME, METADATA_URI])) as ERC1155MetaMintBurnMock operatorERC1155Contract = (await erc1155Contract.connect(operatorSigner)) as ERC1155MetaMintBurnMock }) diff --git a/tests/ERC1155Meta.spec.ts b/tests/ERC1155Meta.spec.ts index 268dfdd..27b0c20 100644 --- a/tests/ERC1155Meta.spec.ts +++ b/tests/ERC1155Meta.spec.ts @@ -43,6 +43,9 @@ describe('ERC1155Meta', () => { const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' const DOMAIN_SEPARATOR_TYPEHASH = '0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749' + const NAME = "MyERC1155" + const METADATA_URI = "https://example.com/" + // Pass gas since ganache can't figure it out const TX_PARAM = { gasLimit: 2000000 } @@ -68,7 +71,7 @@ describe('ERC1155Meta', () => { // deploy before each test, to reset state of contract beforeEach(async () => { - erc1155Contract = (await erc1155Abstract.deploy(ownerWallet)) as ERC1155MetaMintBurnMock + erc1155Contract = (await erc1155Abstract.deploy(ownerWallet, [NAME, METADATA_URI])) as ERC1155MetaMintBurnMock operatorERC1155Contract = (await erc1155Contract.connect(operatorSigner)) as ERC1155MetaMintBurnMock receiverERC1155Contract = (await erc1155Contract.connect(receiverSigner)) as ERC1155MetaMintBurnMock }) @@ -561,7 +564,7 @@ describe('ERC1155Meta', () => { }) it('should PASS if another approved ERC-1155 is used for fee', async () => { - const erc1155Contract2 = (await erc1155Abstract.deploy(ownerWallet)) as ERC1155MetaMintBurnMock + const erc1155Contract2 = (await erc1155Abstract.deploy(ownerWallet, [NAME, METADATA_URI])) as ERC1155MetaMintBurnMock await erc1155Contract2.mintMock(ownerAddress, feeTokenID, feeTokenInitBalance, []) await erc1155Contract2.setApprovalForAll(operatorERC1155Contract.address, true) @@ -596,7 +599,7 @@ describe('ERC1155Meta', () => { }) it('should REVERT if NOT approved ERC-1155 is used for fee', async () => { - const erc1155Contract2 = (await erc1155Abstract.deploy(ownerWallet)) as ERC1155MetaMintBurnMock + const erc1155Contract2 = (await erc1155Abstract.deploy(ownerWallet, [NAME, METADATA_URI])) as ERC1155MetaMintBurnMock await erc1155Contract2.mintMock(ownerAddress, feeTokenID, feeTokenInitBalance, []) feeTokenDataERC1155 = utils.defaultAbiCoder.encode( @@ -630,7 +633,7 @@ describe('ERC1155Meta', () => { }) it('should REVERT if another ERC-1155 is used for fee without sufficient balance', async () => { - const erc1155Contract2 = (await erc1155Abstract.deploy(ownerWallet)) as ERC1155MetaMintBurnMock + const erc1155Contract2 = (await erc1155Abstract.deploy(ownerWallet, [NAME, METADATA_URI])) as ERC1155MetaMintBurnMock await erc1155Contract2.mintMock(ownerAddress, feeTokenID, 100, []) await erc1155Contract2.setApprovalForAll(operatorERC1155Contract.address, true) diff --git a/tests/ERC1155MetaPackedBalance.spec.ts b/tests/ERC1155MetaPackedBalance.spec.ts index 254d0d6..cfd8cbc 100644 --- a/tests/ERC1155MetaPackedBalance.spec.ts +++ b/tests/ERC1155MetaPackedBalance.spec.ts @@ -45,6 +45,9 @@ describe('ERC1155MetaPackedBalance', () => { const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' const DOMAIN_SEPARATOR_TYPEHASH = '0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749' + const NAME = "MyERC1155" + const METADATA_URI = "https://example.com/" + let ownerAddress: string let receiverAddress: string let operatorAddress: string @@ -67,7 +70,7 @@ describe('ERC1155MetaPackedBalance', () => { // deploy before each test, to reset state of contract beforeEach(async () => { - erc1155Contract = (await erc1155Abstract.deploy(ownerWallet)) as ERC1155MetaMintBurnPackedBalanceMock + erc1155Contract = (await erc1155Abstract.deploy(ownerWallet, [NAME, METADATA_URI])) as ERC1155MetaMintBurnPackedBalanceMock operatorERC1155Contract = (await erc1155Contract.connect(operatorSigner)) as ERC1155MetaMintBurnPackedBalanceMock receiverERC1155Contract = (await erc1155Contract.connect(receiverSigner)) as ERC1155MetaMintBurnPackedBalanceMock }) @@ -568,7 +571,7 @@ describe('ERC1155MetaPackedBalance', () => { }) it('should PASS if another approved ERC-1155 is used for fee', async () => { - const erc1155Contract2 = (await erc1155Abstract.deploy(ownerWallet)) as ERC1155MetaMintBurnPackedBalanceMock + const erc1155Contract2 = (await erc1155Abstract.deploy(ownerWallet, [NAME, METADATA_URI])) as ERC1155MetaMintBurnPackedBalanceMock await erc1155Contract2.mintMock(ownerAddress, feeTokenID, feeTokenInitBalance, []) await erc1155Contract2.setApprovalForAll(operatorERC1155Contract.address, true) @@ -603,7 +606,7 @@ describe('ERC1155MetaPackedBalance', () => { }) it('should REVERT if NOT approved ERC-1155 is used for fee', async () => { - const erc1155Contract2 = (await erc1155Abstract.deploy(ownerWallet)) as ERC1155MetaMintBurnPackedBalanceMock + const erc1155Contract2 = (await erc1155Abstract.deploy(ownerWallet, [NAME, METADATA_URI])) as ERC1155MetaMintBurnPackedBalanceMock await erc1155Contract2.mintMock(ownerAddress, feeTokenID, feeTokenInitBalance, []) feeTokenDataERC1155 = ethers.utils.defaultAbiCoder.encode( @@ -637,7 +640,7 @@ describe('ERC1155MetaPackedBalance', () => { }) it('should REVERT if another ERC-1155 is used for fee without sufficient balance', async () => { - const erc1155Contract2 = (await erc1155Abstract.deploy(ownerWallet)) as ERC1155MetaMintBurnPackedBalanceMock + const erc1155Contract2 = (await erc1155Abstract.deploy(ownerWallet, [NAME, METADATA_URI])) as ERC1155MetaMintBurnPackedBalanceMock await erc1155Contract2.mintMock(ownerAddress, feeTokenID, 100, []) await erc1155Contract2.setApprovalForAll(operatorERC1155Contract.address, true) @@ -867,7 +870,7 @@ describe('ERC1155MetaPackedBalance', () => { }) it('should PASS if gas used in onERC1155Received does not exceed limit', async () => { - const okGasLimit = 10000 + const okGasLimit = 12000 gasReceipt!.gasLimitCallback = okGasLimit transferObj.receiver = receiverContract.address diff --git a/tests/ERC1155Metadata.spec.ts b/tests/ERC1155Metadata.spec.ts index 44acc09..ae465ac 100644 --- a/tests/ERC1155Metadata.spec.ts +++ b/tests/ERC1155Metadata.spec.ts @@ -29,6 +29,7 @@ describe('ERC1155Metadata', () => { context('When ERC1155MetadataMock contract is deployed', () => { const BASE_URI = 'https://assets.skyweaver.net/c679a6577c12c47948084dd61a79b9598db17cc5/full-cards/' + const CONTRACT_NAME = 'MyERC1155' before(async () => { ownerAddress = await ownerWallet.getAddress() @@ -39,7 +40,7 @@ describe('ERC1155Metadata', () => { beforeEach(async () => { const abstract = await AbstractContract.fromArtifactName('ERC1155MetadataMock') - erc1155MetadataContract = (await abstract.deploy(ownerWallet)) as ERC1155MetadataMock + erc1155MetadataContract = (await abstract.deploy(ownerWallet, [BASE_URI, CONTRACT_NAME])) as ERC1155MetadataMock anyoneERC1155MetadataContract = (await erc1155MetadataContract.connect(anyoneSigner)) as ERC1155MetadataMock await erc1155MetadataContract.setBaseMetadataURI(BASE_URI) diff --git a/tests/ERC1155MintBurn.spec.ts b/tests/ERC1155MintBurn.spec.ts index 754b090..ec6f621 100644 --- a/tests/ERC1155MintBurn.spec.ts +++ b/tests/ERC1155MintBurn.spec.ts @@ -21,6 +21,8 @@ const { wallet: operatorWallet, provider: operatorProvider, signer: operatorSign describe('ERC1155MintBurn', () => { const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' + const NAME = "MyERC1155" + const METADATA_URI = "https://example.com/" let ownerAddress: string let receiverAddress: string @@ -44,7 +46,7 @@ describe('ERC1155MintBurn', () => { receiverContract = (await abstractReceiver.deploy(ownerWallet)) as ERC1155ReceiverMock const abstract = await AbstractContract.fromArtifactName('ERC1155MetaMintBurnMock') - erc1155MintBurnContract = (await abstract.deploy(ownerWallet)) as ERC1155MetaMintBurnMock + erc1155MintBurnContract = (await abstract.deploy(ownerWallet, [NAME, METADATA_URI])) as ERC1155MetaMintBurnMock anyoneERC1155MintBurnContract = (await erc1155MintBurnContract.connect(anyoneSigner)) as ERC1155MetaMintBurnMock }) diff --git a/tests/ERC1155MintBurnPackedBalance.spec.ts b/tests/ERC1155MintBurnPackedBalance.spec.ts index 911ab2a..cccac71 100644 --- a/tests/ERC1155MintBurnPackedBalance.spec.ts +++ b/tests/ERC1155MintBurnPackedBalance.spec.ts @@ -21,6 +21,8 @@ const { wallet: operatorWallet, provider: operatorProvider, signer: operatorSign describe('ERC1155MintBurnPackedBalance', () => { const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' + const NAME = "MyERC1155" + const METADATA_URI = "https://example.com/" let ownerAddress: string let receiverAddress: string @@ -44,7 +46,7 @@ describe('ERC1155MintBurnPackedBalance', () => { receiverContract = (await abstractReceiver.deploy(ownerWallet)) as ERC1155ReceiverMock const abstract = await AbstractContract.fromArtifactName('ERC1155MetaMintBurnPackedBalanceMock') - erc1155MintBurnContract = (await abstract.deploy(ownerWallet)) as ERC1155MetaMintBurnPackedBalanceMock + erc1155MintBurnContract = (await abstract.deploy(ownerWallet, [NAME, METADATA_URI])) as ERC1155MetaMintBurnPackedBalanceMock anyoneERC1155MintBurnContract = (await erc1155MintBurnContract.connect( anyoneSigner )) as ERC1155MetaMintBurnPackedBalanceMock diff --git a/tests/ERC1155PackedBalance.spec.ts b/tests/ERC1155PackedBalance.spec.ts index f355805..8b21a9c 100644 --- a/tests/ERC1155PackedBalance.spec.ts +++ b/tests/ERC1155PackedBalance.spec.ts @@ -23,6 +23,8 @@ describe('ERC1155PackedBalance', () => { .pow(256) .sub(2) // 2**256 - 2 const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' + const NAME = "MyERC1155" + const METADATA_URI = "https://example.com/" let ownerAddress: string let receiverAddress: string @@ -45,7 +47,7 @@ describe('ERC1155PackedBalance', () => { // deploy before each test, to reset state of contract beforeEach(async () => { - erc1155Contract = (await erc1155Abstract.deploy(ownerWallet)) as ERC1155MetaMintBurnPackedBalanceMock + erc1155Contract = (await erc1155Abstract.deploy(ownerWallet, [NAME, METADATA_URI])) as ERC1155MetaMintBurnPackedBalanceMock operatorERC1155Contract = (await erc1155Contract.connect(operatorSigner)) as ERC1155MetaMintBurnPackedBalanceMock }) diff --git a/tests/ERC2981Global.spec.ts b/tests/ERC2981Global.spec.ts new file mode 100644 index 0000000..fdb45fb --- /dev/null +++ b/tests/ERC2981Global.spec.ts @@ -0,0 +1,97 @@ +import * as ethers from 'ethers' + +import { AbstractContract, assert, expect, RevertError, BigNumber } from './utils' +import * as utils from './utils' + +import { ERC2981GlobalMock } from 'src/gen/typechain' + +// init test wallets from package.json mnemonic +import { web3 } from 'hardhat' + +const { wallet: ownerWallet, provider: ownerProvider, signer: ownerSigner } = utils.createTestWallet(web3, 0) + +const { wallet: receiverWallet, provider: receiverProvider, signer: receiverSigner } = utils.createTestWallet(web3, 2) + +const { wallet: anyoneWallet, provider: anyoneProvider, signer: anyoneSigner } = utils.createTestWallet(web3, 3) + +const { wallet: operatorWallet, provider: operatorProvider, signer: operatorSigner } = utils.createTestWallet(web3, 4) + +describe('ERC2981Global', () => { + let ownerAddress: string + let receiverAddress: string + let anyoneAddress: string + let operatorAddress: string + + let tokenContract: ERC2981GlobalMock + let anyoneERC1155MetadataContract + + const BASE_FEE = 20 // 2% + const NAME = "MyERC1155" + const METADATA_URI = "https://example.com/" + + context('When ERC2981GlobalMock contract is deployed', () => { + before(async () => { + ownerAddress = await ownerWallet.getAddress() + receiverAddress = await receiverWallet.getAddress() + anyoneAddress = await anyoneWallet.getAddress() + operatorAddress = await operatorWallet.getAddress() + }) + + beforeEach(async () => { + const abstract = await AbstractContract.fromArtifactName('ERC2981GlobalMock') + tokenContract = (await abstract.deploy(ownerWallet, [NAME, METADATA_URI])) as ERC2981GlobalMock + anyoneERC1155MetadataContract = (await tokenContract.connect(anyoneSigner)) as ERC2981GlobalMock + }) + + describe('Getter functions', () => { + it('supportsInterface(0x2a55205a) on receiver should return true', async () => { + const returnedValue = await tokenContract.supportsInterface('0x2a55205a') + await expect(returnedValue).to.be.equal(true) + }) + }) + + describe('_setGlobalRoyaltyInfo() function', () => { + it('should ALLOW inheriting contract to call _setGlobalRoyaltyInfo()', async () => { + const tx = tokenContract.setGlobalRoyaltyInfo(receiverAddress, BASE_FEE) + await expect(tx).to.be.fulfilled + }) + + it('should REVERT if recipient address is 0x0', async () => { + const tx = tokenContract.setGlobalRoyaltyInfo(ethers.constants.AddressZero, BASE_FEE) + await expect(tx).to.be.rejectedWith(RevertError('ERC2981Global#_setGlobalRoyalty: RECIPIENT_IS_0x0')) + }) + + it('should revert if fee is above 100%', async () => { + const tx = tokenContract.setGlobalRoyaltyInfo(receiverAddress, 1001) + await expect(tx).to.be.rejectedWith(RevertError('ERC2981Global#_setGlobalRoyalty: FEE_IS_ABOVE_100_PERCENT')) + }) + + it('should update globalRoyaltyInfo when successful', async () => { + const pre_info = await tokenContract.globalRoyaltyInfo() + expect(pre_info.receiver).to.be.eql(ethers.constants.AddressZero) + expect(pre_info.feeBasisPoints).to.be.eql(BigNumber.from(0)) + + await tokenContract.setGlobalRoyaltyInfo(receiverAddress, BASE_FEE) + + const info = await tokenContract.globalRoyaltyInfo() + expect(info.receiver).to.be.eql(receiverAddress) + expect(info.feeBasisPoints).to.be.eql(BigNumber.from(BASE_FEE)) + }) + + it('should return the correct fee amount', async () => { + const cost = BigNumber.from(1337).mul(BigNumber.from(10).pow(18)) + const expected_fee = cost.mul(BASE_FEE).div(1000) + + const pre_info = await tokenContract.royaltyInfo(123123, cost) + expect(pre_info.receiver).to.be.eql(ethers.constants.AddressZero) + expect(pre_info.royaltyAmount).to.be.eql(BigNumber.from(0)) + + await tokenContract.setGlobalRoyaltyInfo(receiverAddress, BASE_FEE) + + const info = await tokenContract.royaltyInfo(123123, cost) + expect(info.receiver).to.be.eql(receiverAddress) + expect(info.royaltyAmount).to.be.eql(BigNumber.from(expected_fee)) + }) + }) + }) +})