UNPKG

@gnosis.pm/hg-contracts

Version:

Collection of smart contracts for the Gnosis prediction market platform

284 lines 820 kB
{ "contractName": "ERC1155", "abi": [ { "constant": true, "inputs": [ { "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "operator", "type": "address" }, { "indexed": true, "name": "from", "type": "address" }, { "indexed": true, "name": "to", "type": "address" }, { "indexed": false, "name": "id", "type": "uint256" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "operator", "type": "address" }, { "indexed": true, "name": "from", "type": "address" }, { "indexed": true, "name": "to", "type": "address" }, { "indexed": false, "name": "ids", "type": "uint256[]" }, { "indexed": false, "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "owner", "type": "address" }, { "indexed": true, "name": "operator", "type": "address" }, { "indexed": false, "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "value", "type": "string" }, { "indexed": true, "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "constant": true, "inputs": [ { "name": "owner", "type": "address" }, { "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "owners", "type": "address[]" }, { "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "name": "", "type": "uint256[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "operator", "type": "address" }, { "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "owner", "type": "address" }, { "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "from", "type": "address" }, { "name": "to", "type": "address" }, { "name": "id", "type": "uint256" }, { "name": "value", "type": "uint256" }, { "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "from", "type": "address" }, { "name": "to", "type": "address" }, { "name": "ids", "type": "uint256[]" }, { "name": "values", "type": "uint256[]" }, { "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b5061004c6301ffc9a77c0100000000000000000000000000000000000000000000000000000000026101e0640100000000026401000000009004565b6101db600073ffffffffffffffffffffffffffffffffffffffff1663e985e9c590507c010000000000000000000000000000000000000000000000000000000002600073ffffffffffffffffffffffffffffffffffffffff1663a22cb46590507c010000000000000000000000000000000000000000000000000000000002600073ffffffffffffffffffffffffffffffffffffffff16634e1273f490507c010000000000000000000000000000000000000000000000000000000002600073ffffffffffffffffffffffffffffffffffffffff1662fdd58e90507c010000000000000000000000000000000000000000000000000000000002600073ffffffffffffffffffffffffffffffffffffffff16632eb2c2d690507c010000000000000000000000000000000000000000000000000000000002600073ffffffffffffffffffffffffffffffffffffffff1663f242432a90507c01000000000000000000000000000000000000000000000000000000000218181818186101e0640100000000026401000000009004565b610306565b63ffffffff7c010000000000000000000000000000000000000000000000000000000002817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415151561029a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611e0980620003166000396000f3fe60806040526004361061007c576000357c010000000000000000000000000000000000000000000000000000000090048062fdd58e1461008157806301ffc9a7146100f05780632eb2c2d6146101625780634e1273f4146102d2578063a22cb46514610480578063e985e9c5146104dd578063f242432a14610566575b600080fd5b34801561008d57600080fd5b506100da600480360360408110156100a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610640565b6040518082815260200191505060405180910390f35b3480156100fc57600080fd5b506101486004803603602081101561011357600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610765565b604051808215151515815260200191505060405180910390f35b34801561016e57600080fd5b506102d0600480360360a081101561018557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156101e257600080fd5b8201836020820111156101f457600080fd5b8035906020019184602083028401116401000000008311171561021657600080fd5b90919293919293908035906020019064010000000081111561023757600080fd5b82018360208201111561024957600080fd5b8035906020019184602083028401116401000000008311171561026b57600080fd5b90919293919293908035906020019064010000000081111561028c57600080fd5b82018360208201111561029e57600080fd5b803590602001918460018302840111640100000000831117156102c057600080fd5b90919293919293905050506107cc565b005b3480156102de57600080fd5b50610429600480360360408110156102f557600080fd5b810190808035906020019064010000000081111561031257600080fd5b82018360208201111561032457600080fd5b8035906020019184602083028401116401000000008311171561034657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103a657600080fd5b8201836020820111156103b857600080fd5b803590602001918460208302840111640100000000831117156103da57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610e1a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561046c578082015181840152602081019050610451565b505050509050019250505060405180910390f35b34801561048c57600080fd5b506104db600480360360408110156104a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611092565b005b3480156104e957600080fd5b5061054c6004803603604081101561050057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611193565b604051808215151515815260200191505060405180910390f35b34801561057257600080fd5b5061063e600480360360a081101561058957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156105fa57600080fd5b82018360208201111561060c57600080fd5b8035906020019184600183028401116401000000008311171561062e57600080fd5b9091929391929390505050611227565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561070c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f455243313135353a2062616c616e636520717565727920666f7220746865207a81526020017f65726f206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b838390508686905014151561086f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f455243313135353a2049447320616e642076616c756573206d7573742068617681526020017f652073616d65206c656e6774687300000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415151561093a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f455243313135353a207461726765742061646472657373206d7573742062652081526020017f6e6f6e2d7a65726f00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480610a01575060011515600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515610a9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f455243313135353a206e656564206f70657261746f7220617070726f76616c2081526020017f666f7220337264207061727479207472616e73666572732e000000000000000081525060400191505060405180910390fd5b60008090505b86869050811015610c595760008787838181101515610abc57fe5b90506020020135905060008686848181101515610ad557fe5b905060200201359050610b41816001600085815260200190815260200160002060008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169f90919063ffffffff16565b6001600084815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bf86001600084815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261172a90919063ffffffff16565b6001600084815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050610aa1565b508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb898989896040518080602001806020018381038352878782818152602001925060200280828437600081840152601f19601f8201169050808301925050508381038252858582818152602001925060200280828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a4610e10338989898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506117b4565b5050505050505050565b606081518351141515610ebb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f455243313135353a206f776e65727320616e6420494473206d7573742068617681526020017f652073616d65206c656e6774687300000000000000000000000000000000000081525060400191505060405180910390fd5b60608351604051908082528060200260200182016040528015610eed5781602001602082028038833980820191505090505b50905060008090505b845181101561108757600073ffffffffffffffffffffffffffffffffffffffff168582815181101515610f2557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614151515610fe1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f455243313135353a20736f6d65206164647265737320696e206261746368206281526020017f616c616e6365207175657279206973207a65726f00000000000000000000000081525060400191505060405180910390fd5b600160008583815181101515610ff357fe5b9060200190602002015181526020019081526020016000206000868381518110151561101b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054828281518110151561106e57fe5b9060200190602002018181525050806001019050610ef6565b508091505092915050565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f455243313135353a207461726765742061646472657373206d7573742062652081526020017f6e6f6e2d7a65726f00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806113b9575060011515600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515611453576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f455243313135353a206e656564206f70657261746f7220617070726f76616c2081526020017f666f7220337264207061727479207472616e73666572732e000000000000000081525060400191505060405180910390fd5b6114b6836001600087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169f90919063ffffffff16565b6001600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061156d6001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461172a90919063ffffffff16565b6001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a4611697338787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611b00565b505050505050565b6000828211151515611719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b60008082840190508381101515156117aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6117d38473ffffffffffffffffffffffffffffffffffffffff16611dca565b15611af8578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8190507c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663bc197c8188888787876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561192f578082015181840152602081019050611914565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611971578082015181840152602081019050611956565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156119b0578082015181840152602081019050611995565b50505050905090810190601f1680156119dd5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015611a0257600080fd5b505af1158015611a16573d6000803e3d6000fd5b505050506040513d6020811015611a2c57600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515611af7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f455243313135353a20676f7420756e6b6e6f776e2076616c75652066726f6d2081526020017f6f6e45524331313535426174636852656365697665640000000000000000000081525060400191505060405180910390fd5b5b505050505050565b611b1f8473ffffffffffffffffffffffffffffffffffffffff16611dca565b15611dc2578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6190507c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663f23a6e6188888787876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611c7c578082015181840152602081019050611c61565b50505050905090810190601f168015611ca95780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015611ccc57600080fd5b505af1158015611ce0573d6000803e3d6000fd5b505050506040513d6020811015611cf657600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515611dc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f455243313135353a20676f7420756e6b6e6f776e2076616c75652066726f6d2081526020017f6f6e45524331313535526563656976656400000000000000000000000000000081525060400191505060405180910390fd5b5b505050505050565b600080823b90506000811191505091905056fea165627a7a72305820ee84eda6f4e60d91cf460ef84b7ed15b45bde29e5eb2df4b4f172da5bf3269400029", "deployedBytecode": "0x60806040526004361061007c576000357c010000000000000000000000000000000000000000000000000000000090048062fdd58e1461008157806301ffc9a7146100f05780632eb2c2d6146101625780634e1273f4146102d2578063a22cb46514610480578063e985e9c5146104dd578063f242432a14610566575b600080fd5b34801561008d57600080fd5b506100da600480360360408110156100a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610640565b6040518082815260200191505060405180910390f35b3480156100fc57600080fd5b506101486004803603602081101561011357600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610765565b604051808215151515815260200191505060405180910390f35b34801561016e57600080fd5b506102d0600480360360a081101561018557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156101e257600080fd5b8201836020820111156101f457600080fd5b8035906020019184602083028401116401000000008311171561021657600080fd5b90919293919293908035906020019064010000000081111561023757600080fd5b82018360208201111561024957600080fd5b8035906020019184602083028401116401000000008311171561026b57600080fd5b90919293919293908035906020019064010000000081111561028c57600080fd5b82018360208201111561029e57600080fd5b803590602001918460018302840111640100000000831117156102c057600080fd5b90919293919293905050506107cc565b005b3480156102de57600080fd5b50610429600480360360408110156102f557600080fd5b810190808035906020019064010000000081111561031257600080fd5b82018360208201111561032457600080fd5b8035906020019184602083028401116401000000008311171561034657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103a657600080fd5b8201836020820111156103b857600080fd5b803590602001918460208302840111640100000000831117156103da57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050610e1a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561046c578082015181840152602081019050610451565b505050509050019250505060405180910390f35b34801561048c57600080fd5b506104db600480360360408110156104a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611092565b005b3480156104e957600080fd5b5061054c6004803603604081101561050057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611193565b604051808215151515815260200191505060405180910390f35b34801561057257600080fd5b5061063e600480360360a081101561058957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001906401000000008111156105fa57600080fd5b82018360208201111561060c57600080fd5b8035906020019184600183028401116401000000008311171561062e57600080fd5b9091929391929390505050611227565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561070c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f455243313135353a2062616c616e636520717565727920666f7220746865207a81526020017f65726f206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b838390508686905014151561086f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f455243313135353a2049447320616e642076616c756573206d7573742068617681526020017f652073616d65206c656e6774687300000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415151561093a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f455243313135353a207461726765742061646472657373206d7573742062652081526020017f6e6f6e2d7a65726f00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161480610a01575060011515600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515610a9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f455243313135353a206e656564206f70657261746f7220617070726f76616c2081526020017f666f7220337264207061727479207472616e73666572732e000000000000000081525060400191505060405180910390fd5b60008090505b86869050811015610c595760008787838181101515610abc57fe5b90506020020135905060008686848181101515610ad557fe5b905060200201359050610b41816001600085815260200190815260200160002060008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169f90919063ffffffff16565b6001600084815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bf86001600084815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261172a90919063ffffffff16565b6001600084815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050610aa1565b508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb898989896040518080602001806020018381038352878782818152602001925060200280828437600081840152601f19601f8201169050808301925050508381038252858582818152602001925060200280828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a4610e10338989898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506117b4565b5050505050505050565b606081518351141515610ebb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f455243313135353a206f776e65727320616e6420494473206d7573742068617681526020017f652073616d65206c656e6774687300000000000000000000000000000000000081525060400191505060405180910390fd5b60608351604051908082528060200260200182016040528015610eed5781602001602082028038833980820191505090505b50905060008090505b845181101561108757600073ffffffffffffffffffffffffffffffffffffffff168582815181101515610f2557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614151515610fe1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f455243313135353a20736f6d65206164647265737320696e206261746368206281526020017f616c616e6365207175657279206973207a65726f00000000000000000000000081525060400191505060405180910390fd5b600160008583815181101515610ff357fe5b9060200190602002015181526020019081526020016000206000868381518110151561101b57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054828281518110151561106e57fe5b9060200190602002018181525050806001019050610ef6565b508091505092915050565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f455243313135353a207461726765742061646472657373206d7573742062652081526020017f6e6f6e2d7a65726f00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806113b9575060011515600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515611453576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f455243313135353a206e656564206f70657261746f7220617070726f76616c2081526020017f666f7220337264207061727479207472616e73666572732e000000000000000081525060400191505060405180910390fd5b6114b6836001600087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169f90919063ffffffff16565b6001600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061156d6001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461172a90919063ffffffff16565b6001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a4611697338787878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611b00565b505050505050565b6000828211151515611719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b60008082840190508381101515156117aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6117d38473ffffffffffffffffffffffffffffffffffffffff16611dca565b15611af8578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8190507c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663bc197c8188888787876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561192f578082015181840152602081019050611914565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015611971578082015181840152602081019050611956565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156119b0578082015181840152602081019050611995565b50505050905090810190601f1680156119dd5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015611a0257600080fd5b505af1158015611a16573d6000803e3d6000fd5b505050506040513d6020811015611a2c57600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515611af7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f455243313135353a20676f7420756e6b6e6f776e2076616c75652066726f6d2081526020017f6f6e45524331313535426174636852656365697665640000000000000000000081525060400191505060405180910390fd5b5b505050505050565b611b1f8473ffffffffffffffffffffffffffffffffffffffff16611dca565b15611dc2578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6190507c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663f23a6e6188888787876040518663ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611c7c578082015181840152602081019050611c61565b50505050905090810190601f168015611ca95780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b158015611ccc57600080fd5b505af1158015611ce0573d6000803e3d6000fd5b505050506040513d6020811015611cf657600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515611dc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f455243313135353a20676f7420756e6b6e6f776e2076616c75652066726f6d2081526020017f6f6e45524331313535526563656976656400000000000000000000000000000081525060400191505060405180910390fd5b5b505050505050565b600080823b90506000811191505091905056fea165627a7a72305820ee84eda6f4e60d91cf460ef84b7ed15b45bde29e5eb2df4b4f172da5bf3269400029", "sourceMap": "497:8012:0:-;;;851:380;8:9:-1;5:2;;;30:1;27;20:12;5:2;851:380:0;718:40:8;385:10;737:20;;718:18;;;:40;;;:::i;:::-;894:330:0;1186:1;1178:27;;;:36;;;;1134:1;1126:28;;;:37;;;;1085:1;1077:25;;;:34;;;;1041:1;1033:20;;;:29;;;;985:1;977:32;;;:41;;;;934:1;926:27;;;:36;;;;:92;:136;:185;:237;:288;894:18;;;:330;;;:::i;:::-;497:8012;;1442:190:8;1532:10;1517:25;;:11;:25;;;;;1509:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1621:4;1585:20;:33;1606:11;1585:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1442:190;:::o;497:8012:0:-;;;;;;;", "deployedSourceMap": "497:8012:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1481:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1481:205:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1481:205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;915:133:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;915:133:8;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;915:133:8;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5265:971:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5265:971:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;5265:971:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5265:971:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5265:971:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5265:971:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5265:971:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5265:971:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5265:971:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5265:971:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5265:971:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5265:971:0;;;;;;;;;;;;:::i;:::-;;1921:594;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1921:594:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1921:594:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1921:594:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1921:594:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1921:594:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1921:594:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1921:594:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1921:594:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1921:594:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1921:594:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1921:594:0;;;;;;;;;;;;;;;;;2804:198;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2804:198:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2804:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3279:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3279:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3279:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3980:696;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3980:696:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3980:696:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3980:696:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3980:696:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3980:696:0;;;;;;;;;;;;:::i;:::-;;1481:205;1548:7;1592:1;1575:19;;:5;:19;;;;1567:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1659:9;:13;1669:2;1659:13;;;;;;;;;;;:20;1673:5;1659:20;;;;;;;;;;;;;;;;1652:27;;1481:205;;;;:::o;915:133:8:-;985:4;1008:20;:33;1029:11;1008:33;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:40;;915:133;;;:::o;5265:971:0:-;5493:6;;:13;;5479:3;;:10;;:27;5471:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5589:1;5575:16;;:2;:16;;;;5567:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5675:10;5667:18;;:4;:18;;;:66;;;;5729:4;5689:44;;:18;:24;5708:4;5689:24;;;;;;;;;;;;;;;:36;5714:10;5689:36;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;5667:66;5646:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5831:9;5843:1;5831:13;;5826:253;5850:3;;:10;;5846:1;:14;5826:253;;;5881:10;5894:3;;5898:1;5894:6;;;;;;;;;;;;;;;5881:19;;5914:13;5930:6;;5937:1;5930:9;;;;;;;;;;;;;;;5914:25;;5976:30;6000:5;5976:9;:13;5986:2;5976:13;;;;;;;;;;;:19;5990:4;5976:19;;;;;;;;;;;;;;;;:23;;:30;;;;:::i;:::-;5954:9;:13;5964:2;5954:13;;;;;;;;;;;:19;5968:4;5954:19;;;;;;;;;;;;;;;:52;;;;6040:28;6050:9;:13;6060:2;6050:13;;;;;;;;;;;:17;6064:2;6050:17;;;;;;;;;;;;;;;;6040:5;:9;;:28;;;;:::i;:::-;6020:9;:13;6030:2;6020:13;;;;;;;;;;;:17;6034:2;6020:17;;;;;;;;;;;;;;;:48;;;;5826:253;;5862:3;;;;;5826:253;;;;6126:2;6094:48;;6120:4;6094:48;;6108:10;6094:48;;;6130:3;;6135:6;;6094:48;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6094:48:0;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6094:48:0;;;;;;;;;;;;;;;;;6153:76;6189:10;6201:4;6207:2;6211:3;;6153:76;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6153:76:0;;;;;;6216:6;;6153:76;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6153:76:0;;;;;;6224:4;;6153:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6153:76:0;;;;;;:35;:76::i;:::-;5265:971;;;;;;;;:::o;1921:594::-;2059:16;2116:3;:10;2099:6;:13;:27;2091:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2188:30;2235:6;:13;2221:28;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;2221:28:0;;;;2188:61;;2265:9;2277:1;2265:13;;2260:218;2284:6;:13;2280:1;:17;2260:218;;;2347:1;2326:23;;:6;2333:1;2326:9;;;;;;;;;;;;;;;;;;:23;;;;2318:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2439:9;:17;2449:3;2453:1;2449:6;;;;;;;;;;;;;;;;;;2439:17;;;;;;;;;;;:28;2457:6;2464:1;2457:9;;;;;;;;;;;;;;;;;;2439:28;;;;;;;;;;;;;;;;2420:13;2434:1;2420:16;;;;;;;;;;;;;;;;;:47;;;;;2299:3;;;;;2260:218;;;;2495:13;2488:20;;;1921:594;;;;:::o;2804:198::-;2926:8;2883:18;:30;2902:10;2883:30;;;;;;;;;;;;;;;:40;2914:8;2883:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;2976:8;2949:46;;2964:10;2949:46;;;2986:8;2949:46;;;;;;;;;;;;;;;;;;;;;;2804:198;;:::o;3279:147::-;3361:4;3384:18;:25;3403:5;3384:25;;;;;;;;;;;;;;;:35;3410:8;3384:35;;;;;;;;;;;;;;;;;;;;;;;;;3377:42;;3279:147;;;;:::o;3980:696::-;4179:1;4165:16;;:2;:16;;;;4157:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4265:10;4257:18;;:4;:18;;;:66;;;;4319:4;4279:44;;:18;:24;4298:4;4279:24;;;;;;;;;;;;;;;:36;4304:10;4279:36;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;4257:66;4236:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4438:30;4462:5;4438:9;:13;4448:2;4438:13;;;;;;;;;;;:19;4452:4;4438:19;;;;;;;;;;;;;;;;:23;;:30;;;;:::i;:::-;4416:9;:13;4426:2;4416:13;;;;;;;;;;;:19;4430:4;4416:19;;;;;;;;;;;;;;;:52;;;;4498:28;4508:9;:13;4518:2;4508:13;;;;;;;;;;;:17;4522:2;4508:17;;;;;;;;;;;;;;;;4498:5;:9;;:28;;;;:::i;:::-;4478:9;:13;4488:2;4478:13;;;;;;;;;;;:17;4492:2;4478:17;;;;;;;;;;;;;;;:48;;;;4575:2;4542:47;;4569:4;4542:47;;4557:10;4542:47;;;4579:2;4583:5;4542:47;;;;;;;;;;;;;;;;;;;;;;;;4600:69;4631:10;4643:4;4649:2;4653;4657:5;4664:4;;4600:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4600:69:0;;;;;;:30;:69::i;:::-;3980:696;;;;;;:::o;1274:179:10:-;1332:7;1364:1;1359;:6;;1351:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1410:9;1426:1;1422;:5;1410:17;;1445:1;1438:8;;;1274:179;;;;:::o;834:176::-;892:7;911:9;927:1;923;:5;911:17;;951:1;946;:6;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;995:8;;;834:176;;;;:::o;7959:548:0:-;8202:15;:2;:13;;;:15::i;:::-;8199:302;;;8367:2;8345:48;;;:57;;;;8258:144;;;8280:2;8258:48;;;8307:8;8317:4;8323:3;8328:6;8336:4;8258:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8258:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8258:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8258:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8258:83:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8258:83:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8258:83:0;;;;;;;;;;;;;;;;:144;;;;8233:257;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8199:302;7959:548;;;;;;:::o;7427:526::-;7645:15;:2;:13;;;:15::i;:::-;7642:305;;;7823:2;7801:43;;;:52;;;;7701:152;;;7723:2;7701:43;;;7745:8;7755:4;7761:2;7765:5;7772:4;7701:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7701:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7701:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7701:76:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7701:76:0;;;;;;;;;;;;;;;;:152;;;;7676:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7642:305;7427:526;;;;;;:::o;542:413:12:-;602:4;805:12;914:7;902:20;894:28;;947:1;940:4;:8;933:15;;;542:413;;;:::o", "source": "pragma solidity ^0.5.0;\n\nimport \"./IERC1155.sol\";\nimport \"./IERC1155TokenReceiver.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/utils/Address.sol\";\nimport \"openzeppelin-solidity/contracts/introspection/ERC165.sol\";\n\n/**\n * @title Standard ERC1155 token\n *\n * @dev Implementation of the basic standard multi-token.\n * See https://eips.ethereum.org/EIPS/eip-1155\n * Originally based on code by Enjin: https://github.com/enjin/erc-1155\n */\ncontract ERC1155 is ERC165, IERC1155\n{\n using SafeMath for uint256;\n using Address for address;\n\n // Mapping from token ID to owner balances\n mapping (uint256 => mapping(address => uint256)) private _balances;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping(address => bool)) private _operatorApprovals;\n\n constructor()\n public\n {\n _registerInterface(\n ERC1155(0).safeTransferFrom.selector ^\n ERC1155(0).safeBatchTransferFrom.selector ^\n ERC1155(0).balanceOf.selector ^\n ERC1155(0).balanceOfBatch.selector ^\n ERC1155(0).setApprovalForAll.selector ^\n ERC1155(0).isApprovedForAll.selector\n );\n }\n\n /**\n @dev Get the specified address' balance for token with specified ID.\n @param owner The address of the token holder\n @param id ID of the token\n @return The owner's balance of the token type requested\n */\n function balanceOf(address owner, uint256 id) public view returns (uint256) {\n require(owner != address(0), \"ERC1155: balance query for the zero address\");\n return _balances[id][owner];\n }\n\n /**\n @dev Get the balance of multiple account/token pairs\n @param owners The addresses of the token holders\n @param ids IDs of the tokens\n @return Balances for each owner and token id pair\n */\n function balanceOfBatch(\n address[] memory owners,\n uint256[] memory ids\n )\n public\n view\n returns (uint256[] memory)\n {\n require(owners.length == ids.length, \"ERC1155: owners and IDs must have same lengths\");\n\n uint256[] memory batchBalances = new uint256[](owners.length)