{
  "_format": "hh-sol-artifact-1",
  "contractName": "GenericScheme",
  "sourceName": "contracts/schemes/GenericScheme.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "_callData",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        }
      ],
      "name": "NewCallProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "ProposalDeleted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "_genericCallReturnValue",
          "type": "bytes"
        }
      ],
      "name": "ProposalExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "_param",
          "type": "int256"
        }
      ],
      "name": "ProposalExecutedByVotingMachine",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "avatar",
      "outputs": [
        {
          "internalType": "contract Avatar",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_stakingToken",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "balanceOfStakingToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "burnReputation",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "contractToCall",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "execute",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "int256",
          "name": "_decision",
          "type": "int256"
        }
      ],
      "name": "executeProposal",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getTotalReputationSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        },
        {
          "internalType": "contract IntVoteInterface",
          "name": "_votingMachine",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_voteParams",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_contractToCall",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "mintReputation",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "organizationProposals",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "callData",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "exist",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "passed",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "proposalsInfo",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        },
        {
          "internalType": "contract Avatar",
          "name": "avatar",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_callData",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "_descriptionHash",
          "type": "string"
        }
      ],
      "name": "proposeCall",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "reputationOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_stakingToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "stakingTokenTransfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "voteParams",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "votingMachine",
      "outputs": [
        {
          "internalType": "contract IntVoteInterface",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50611be7806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063b551c37311610097578063d8145e2d11610066578063d8145e2d14610425578063e5e21164146104d7578063e751f271146104df578063f81f8bf6146104fc57610100565b8063b551c37314610265578063bea75f2814610282578063cf65725d146102be578063d29b5d2f146103f357610100565b80639588378e116100d35780639588378e146101bc5780639d4c162d146101e8578063a31ee5b01461021f578063b20d7c261461025d57610100565b80633edf7ca1146101055780635aef7de61461012957806360bdbb3f146101315780636b8eb4031461017e575b600080fd5b61010d61052e565b604080516001600160a01b039092168252519081900360200190f35b61010d61053d565b61015d6004803603604081101561014757600080fd5b506001600160a01b03813516906020013561054c565b604080519283526001600160a01b0390911660208301528051918290030190f35b6101aa6004803603604081101561019457600080fd5b506001600160a01b038135169060200135610576565b60408051918252519081900360200190f35b6101aa600480360360408110156101d257600080fd5b506001600160a01b038135169060200135610636565b61020b600480360360408110156101fe57600080fd5b50803590602001356108c8565b604080519115158252519081900360200190f35b61025b6004803603608081101561023557600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516610acb565b005b61010d610bc1565b6101aa6004803603602081101561027b57600080fd5b5035610bd0565b61020b6004803603608081101561029857600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610e58565b6101aa600480360360608110156102d457600080fd5b8101906020810181356401000000008111156102ef57600080fd5b82018360208201111561030157600080fd5b8035906020019184600183028401116401000000008311171561032357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595909490935060408101925060200135905064010000000081111561037e57600080fd5b82018360208201111561039057600080fd5b803590602001918460018302840111640100000000831117156103b257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ffa945050505050565b61020b6004803603606081101561040957600080fd5b508035906001600160a01b036020820135169060400135611293565b6104426004803603602081101561043b57600080fd5b503561142c565b60405180806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610499578181015183820152602001610481565b50505050905090810190601f1680156104c65780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6101aa6114e1565b61025b600480360360208110156104f557600080fd5b50356114e7565b61020b6004803603606081101561051257600080fd5b508035906001600160a01b036020820135169060400135611932565b6002546001600160a01b031681565b6005546001600160a01b031681565b6000602081815292815260408082209093529081522080546001909101546001600160a01b031682565b336000908152602081815260408083208484529091528120600101546001600160a01b0316806105aa576000915050610630565b836001600160a01b03166370a08231826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561060057600080fd5b505afa158015610614573d6000803e3d6000fd5b505050506040513d602081101561062a57600080fd5b50519150505b92915050565b336000908152602081815260408083208484528252808320600101548151638da5cb5b60e01b8152915185936001600160a01b03909216928392638da5cb5b92600480840193829003018186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506040513d60208110156106ba57600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03848116602483015291519190921691639be2faed916044808301926020929190829003018186803b15801561070c57600080fd5b505afa158015610720573d6000803e3d6000fd5b505050506040513d602081101561073657600080fd5b5051610784576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b61078c611a93565b5033600090815260208181526040808320878452825291829020825180840190935280548352600101546001600160a01b03169082018190526107d35760009350506108c0565b80602001516001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b15801561081057600080fd5b505afa158015610824573d6000803e3d6000fd5b505050506040513d602081101561083a57600080fd5b505181516040805163277166bf60e11b81526001600160a01b038a81166004830152602482019390935290519190921691634ee2cd7e916044808301926020929190829003018186803b15801561089057600080fd5b505afa1580156108a4573d6000803e3d6000fd5b505050506040513d60208110156108ba57600080fd5b50519350505b505092915050565b3360009081526020818152604080832085845290915281206001015483906001600160a01b0316610935576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b6000848152600160205260409020600281015460ff16610996576040805162461bcd60e51b81526020600482015260176024820152761b5d5cdd0818994818481b1a5d99481c1c9bdc1bdcd85b604a1b604482015290519081900360640190fd5b6002810154610100900460ff16156109ec576040805162461bcd60e51b815260206004820152601460248201527363616e6e6f74206578656375746520747769636560601b604482015290519081900360640190fd5b8360011415610a145760028101805461ff001916610100179055610a0f856114e7565b610a7d565b600085815260016020526040812090610a2d8282611aaa565b506000600182018190556002909101805461ffff1916905560055460405187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a35b60055460408051868152905187926001600160a01b0316917f25d4c89430c1f10c60c292556941e3e624ec1ec04972a5da46cee1b352429cbe919081900360200190a3506001949350505050565b6005546001600160a01b031615610b29576040805162461bcd60e51b815260206004820152601b60248201527f63616e2062652063616c6c6564206f6e6c79206f6e652074696d650000000000604482015290519081900360640190fd5b6001600160a01b038416610b7c576040805162461bcd60e51b81526020600482015260156024820152746176617461722063616e6e6f74206265207a65726f60581b604482015290519081900360640190fd5b600580546001600160a01b039586166001600160a01b031991821617909155600280549486169482169490941790935560039190915560048054919093169116179055565b6004546001600160a01b031681565b336000908152602081815260408083208484528252808320600101548151638da5cb5b60e01b8152915185936001600160a01b03909216928392638da5cb5b92600480840193829003018186803b158015610c2a57600080fd5b505afa158015610c3e573d6000803e3d6000fd5b505050506040513d6020811015610c5457600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03848116602483015291519190921691639be2faed916044808301926020929190829003018186803b158015610ca657600080fd5b505afa158015610cba573d6000803e3d6000fd5b505050506040513d6020811015610cd057600080fd5b5051610d1e576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b610d26611a93565b5033600090815260208181526040808320878452825291829020825180840190935280548352600101546001600160a01b0316908201819052610d6d576000935050610e51565b80602001516001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610daa57600080fd5b505afa158015610dbe573d6000803e3d6000fd5b505050506040513d6020811015610dd457600080fd5b5051815160408051630981b24d60e41b81526004810192909252516001600160a01b039092169163981b24d091602480820192602092909190829003018186803b158015610e2157600080fd5b505afa158015610e35573d6000803e3d6000fd5b505050506040513d6020811015610e4b57600080fd5b50519350505b5050919050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b0316610ec5576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b031680610ef9576000925050610ff1565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f3257600080fd5b505afa158015610f46573d6000803e3d6000fd5b505050506040513d6020811015610f5c57600080fd5b50516040805163b9a04cdd60e01b81526001600160a01b038a8116600483015289811660248301526044820189905284811660648301529151919092169163b9a04cdd9160848083019260209291908290030181600087803b158015610fc157600080fd5b505af1158015610fd5573d6000803e3d6000fd5b505050506040513d6020811015610feb57600080fd5b50519250505b50949350505050565b6002805460035460055460408051634439bdaf60e11b8152600481019590955260248501929092523360448501526001600160a01b0390811660648501529051600093849392909216916388737b5e91608480830192602092919082900301818787803b15801561106a57600080fd5b505af115801561107e573d6000803e3d6000fd5b505050506040513d602081101561109457600080fd5b505160408051608081018252878152602081810188905260018284018190526000606084018190528581529082529290922081518051949550919390926110df928492910190611af1565b506020828101516001838101919091556040808501516002948501805460609788015160ff199091169215159290921761ff0019166101009215159290920291909117905580518082018252438152600580546001600160a01b039081168387019081529654811660009081528087528481208a825287528481209351845596519290940180546001600160a01b031916928516929092179091555481518085018b90528681528b51968101969096528a51879691909316947f36418f82d814fb021ca04ebdc2c4a3cd69f719851f597c489bca2ed245e8c8ad948c948c948c949384939184019260808501928901918190849084905b838110156111ee5781810151838201526020016111d6565b50505050905090810190601f16801561121b5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561124e578181015183820152602001611236565b50505050905090810190601f16801561127b5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a3949350505050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b0316611300576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b031680611334576000925050611424565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561136d57600080fd5b505afa158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b50516040805163757cca5960e11b8152600481018990526001600160a01b03888116602483015284811660448301529151919092169163eaf994b29160648083019260209291908290030181600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505050506040513d602081101561141e57600080fd5b50519250505b509392505050565b60016020818152600092835260409283902080548451600294821615610100026000190190911693909304601f81018390048302840183019094528383529283918301828280156114be5780601f10611493576101008083540402835291602001916114be565b820191906000526020600020905b8154815290600101906020018083116114a157829003601f168201915b50505050600183015460029093015491929160ff80821692506101009091041684565b60035481565b6000818152600160205260409020600281015460ff16611548576040805162461bcd60e51b81526020600482015260176024820152761b5d5cdd0818994818481b1a5d99481c1c9bdc1bdcd85b604a1b604482015290519081900360640190fd5b6002810154610100900460ff166115905760405162461bcd60e51b8152600401808060200182810382526026815260200180611b8d6026913960400191505060405180910390fd5b60028101805460ff1916905560055460408051638da5cb5b60e01b8152905160609260009283926001600160a01b0390921691638da5cb5b91600480820192602092909190829003018186803b1580156115e957600080fd5b505afa1580156115fd573d6000803e3d6000fd5b505050506040513d602081101561161357600080fd5b5051600480546005546001888101546040516368db844d60e11b81526001600160a01b0394851695810186815293851660448201819052606482018390526080602483019081528c5460026000199682161561010002969096011694909404608483018190529798509488169663d1b7089a96958c9590949092909160a490910190869080156116e45780601f106116b9576101008083540402835291602001916116e4565b820191906000526020600020905b8154815290600101906020018083116116c757829003601f168201915b505095505050505050600060405180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561174457600080fd5b81516020830180516040519294929383019291908464010000000082111561176b57600080fd5b90830190602082018581111561178057600080fd5b825164010000000081118282018810171561179a57600080fd5b82525081516020918201929091019080838360005b838110156117c75781810151838201526020016117af565b50505050905090810190601f1680156117f45780820380516001836020036101000a031916815260200191505b5060405250919550919350508215905061191b576000858152600160205260408120906118218282611aaa565b506000600182018190556002909101805461ffff1916905560055460405187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a3600554604080516020808252865181830152865189946001600160a01b0316937f1c57c986b085f821f3126bc24b5aba57ed92fe545788a34925528295cef240159389939092839283019185019080838360005b838110156118dc5781810151838201526020016118c4565b50505050905090810190601f1680156119095780820380516001836020036101000a031916815260200191505b509250505060405180910390a361192b565b60028401805460ff191660011790555b5050505050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b031661199f576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b0316806119d3576000925050611424565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a0c57600080fd5b505afa158015611a20573d6000803e3d6000fd5b505050506040513d6020811015611a3657600080fd5b505160408051630dd29a4f60e31b8152600481018990526001600160a01b038881166024830152848116604483015291519190921691636e94d2789160648083019260209291908290030181600087803b1580156113f457600080fd5b604080518082019091526000808252602082015290565b50805460018160011615610100020316600290046000825580601f10611ad05750611aee565b601f016020900490600052602060002090810190611aee9190611b6f565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b3257805160ff1916838001178555611b5f565b82800160010185558215611b5f579182015b82811115611b5f578251825591602001919060010190611b44565b50611b6b929150611b6f565b5090565b611b8991905b80821115611b6b5760008155600101611b75565b9056fe70726f706f73616c206d7573742070617373656420627920766f74696e67206d616368696e65a265627a7a72315820f789001a7e9d481a2200d54bfa23c8f2880a78b0370fa66b7253b35b94df523564736f6c63430005110032",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063b551c37311610097578063d8145e2d11610066578063d8145e2d14610425578063e5e21164146104d7578063e751f271146104df578063f81f8bf6146104fc57610100565b8063b551c37314610265578063bea75f2814610282578063cf65725d146102be578063d29b5d2f146103f357610100565b80639588378e116100d35780639588378e146101bc5780639d4c162d146101e8578063a31ee5b01461021f578063b20d7c261461025d57610100565b80633edf7ca1146101055780635aef7de61461012957806360bdbb3f146101315780636b8eb4031461017e575b600080fd5b61010d61052e565b604080516001600160a01b039092168252519081900360200190f35b61010d61053d565b61015d6004803603604081101561014757600080fd5b506001600160a01b03813516906020013561054c565b604080519283526001600160a01b0390911660208301528051918290030190f35b6101aa6004803603604081101561019457600080fd5b506001600160a01b038135169060200135610576565b60408051918252519081900360200190f35b6101aa600480360360408110156101d257600080fd5b506001600160a01b038135169060200135610636565b61020b600480360360408110156101fe57600080fd5b50803590602001356108c8565b604080519115158252519081900360200190f35b61025b6004803603608081101561023557600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516610acb565b005b61010d610bc1565b6101aa6004803603602081101561027b57600080fd5b5035610bd0565b61020b6004803603608081101561029857600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610e58565b6101aa600480360360608110156102d457600080fd5b8101906020810181356401000000008111156102ef57600080fd5b82018360208201111561030157600080fd5b8035906020019184600183028401116401000000008311171561032357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595909490935060408101925060200135905064010000000081111561037e57600080fd5b82018360208201111561039057600080fd5b803590602001918460018302840111640100000000831117156103b257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610ffa945050505050565b61020b6004803603606081101561040957600080fd5b508035906001600160a01b036020820135169060400135611293565b6104426004803603602081101561043b57600080fd5b503561142c565b60405180806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610499578181015183820152602001610481565b50505050905090810190601f1680156104c65780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6101aa6114e1565b61025b600480360360208110156104f557600080fd5b50356114e7565b61020b6004803603606081101561051257600080fd5b508035906001600160a01b036020820135169060400135611932565b6002546001600160a01b031681565b6005546001600160a01b031681565b6000602081815292815260408082209093529081522080546001909101546001600160a01b031682565b336000908152602081815260408083208484529091528120600101546001600160a01b0316806105aa576000915050610630565b836001600160a01b03166370a08231826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561060057600080fd5b505afa158015610614573d6000803e3d6000fd5b505050506040513d602081101561062a57600080fd5b50519150505b92915050565b336000908152602081815260408083208484528252808320600101548151638da5cb5b60e01b8152915185936001600160a01b03909216928392638da5cb5b92600480840193829003018186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506040513d60208110156106ba57600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03848116602483015291519190921691639be2faed916044808301926020929190829003018186803b15801561070c57600080fd5b505afa158015610720573d6000803e3d6000fd5b505050506040513d602081101561073657600080fd5b5051610784576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b61078c611a93565b5033600090815260208181526040808320878452825291829020825180840190935280548352600101546001600160a01b03169082018190526107d35760009350506108c0565b80602001516001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b15801561081057600080fd5b505afa158015610824573d6000803e3d6000fd5b505050506040513d602081101561083a57600080fd5b505181516040805163277166bf60e11b81526001600160a01b038a81166004830152602482019390935290519190921691634ee2cd7e916044808301926020929190829003018186803b15801561089057600080fd5b505afa1580156108a4573d6000803e3d6000fd5b505050506040513d60208110156108ba57600080fd5b50519350505b505092915050565b3360009081526020818152604080832085845290915281206001015483906001600160a01b0316610935576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b6000848152600160205260409020600281015460ff16610996576040805162461bcd60e51b81526020600482015260176024820152761b5d5cdd0818994818481b1a5d99481c1c9bdc1bdcd85b604a1b604482015290519081900360640190fd5b6002810154610100900460ff16156109ec576040805162461bcd60e51b815260206004820152601460248201527363616e6e6f74206578656375746520747769636560601b604482015290519081900360640190fd5b8360011415610a145760028101805461ff001916610100179055610a0f856114e7565b610a7d565b600085815260016020526040812090610a2d8282611aaa565b506000600182018190556002909101805461ffff1916905560055460405187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a35b60055460408051868152905187926001600160a01b0316917f25d4c89430c1f10c60c292556941e3e624ec1ec04972a5da46cee1b352429cbe919081900360200190a3506001949350505050565b6005546001600160a01b031615610b29576040805162461bcd60e51b815260206004820152601b60248201527f63616e2062652063616c6c6564206f6e6c79206f6e652074696d650000000000604482015290519081900360640190fd5b6001600160a01b038416610b7c576040805162461bcd60e51b81526020600482015260156024820152746176617461722063616e6e6f74206265207a65726f60581b604482015290519081900360640190fd5b600580546001600160a01b039586166001600160a01b031991821617909155600280549486169482169490941790935560039190915560048054919093169116179055565b6004546001600160a01b031681565b336000908152602081815260408083208484528252808320600101548151638da5cb5b60e01b8152915185936001600160a01b03909216928392638da5cb5b92600480840193829003018186803b158015610c2a57600080fd5b505afa158015610c3e573d6000803e3d6000fd5b505050506040513d6020811015610c5457600080fd5b505160408051639be2faed60e01b81523060048201526001600160a01b03848116602483015291519190921691639be2faed916044808301926020929190829003018186803b158015610ca657600080fd5b505afa158015610cba573d6000803e3d6000fd5b505050506040513d6020811015610cd057600080fd5b5051610d1e576040805162461bcd60e51b81526020600482015260186024820152771cd8da195b59481a5cc81b9bdd081c9959da5cdd195c995960421b604482015290519081900360640190fd5b610d26611a93565b5033600090815260208181526040808320878452825291829020825180840190935280548352600101546001600160a01b0316908201819052610d6d576000935050610e51565b80602001516001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610daa57600080fd5b505afa158015610dbe573d6000803e3d6000fd5b505050506040513d6020811015610dd457600080fd5b5051815160408051630981b24d60e41b81526004810192909252516001600160a01b039092169163981b24d091602480820192602092909190829003018186803b158015610e2157600080fd5b505afa158015610e35573d6000803e3d6000fd5b505050506040513d6020811015610e4b57600080fd5b50519350505b5050919050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b0316610ec5576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b031680610ef9576000925050610ff1565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f3257600080fd5b505afa158015610f46573d6000803e3d6000fd5b505050506040513d6020811015610f5c57600080fd5b50516040805163b9a04cdd60e01b81526001600160a01b038a8116600483015289811660248301526044820189905284811660648301529151919092169163b9a04cdd9160848083019260209291908290030181600087803b158015610fc157600080fd5b505af1158015610fd5573d6000803e3d6000fd5b505050506040513d6020811015610feb57600080fd5b50519250505b50949350505050565b6002805460035460055460408051634439bdaf60e11b8152600481019590955260248501929092523360448501526001600160a01b0390811660648501529051600093849392909216916388737b5e91608480830192602092919082900301818787803b15801561106a57600080fd5b505af115801561107e573d6000803e3d6000fd5b505050506040513d602081101561109457600080fd5b505160408051608081018252878152602081810188905260018284018190526000606084018190528581529082529290922081518051949550919390926110df928492910190611af1565b506020828101516001838101919091556040808501516002948501805460609788015160ff199091169215159290921761ff0019166101009215159290920291909117905580518082018252438152600580546001600160a01b039081168387019081529654811660009081528087528481208a825287528481209351845596519290940180546001600160a01b031916928516929092179091555481518085018b90528681528b51968101969096528a51879691909316947f36418f82d814fb021ca04ebdc2c4a3cd69f719851f597c489bca2ed245e8c8ad948c948c948c949384939184019260808501928901918190849084905b838110156111ee5781810151838201526020016111d6565b50505050905090810190601f16801561121b5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561124e578181015183820152602001611236565b50505050905090810190601f16801561127b5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a3949350505050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b0316611300576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b031680611334576000925050611424565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561136d57600080fd5b505afa158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b50516040805163757cca5960e11b8152600481018990526001600160a01b03888116602483015284811660448301529151919092169163eaf994b29160648083019260209291908290030181600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505050506040513d602081101561141e57600080fd5b50519250505b509392505050565b60016020818152600092835260409283902080548451600294821615610100026000190190911693909304601f81018390048302840183019094528383529283918301828280156114be5780601f10611493576101008083540402835291602001916114be565b820191906000526020600020905b8154815290600101906020018083116114a157829003601f168201915b50505050600183015460029093015491929160ff80821692506101009091041684565b60035481565b6000818152600160205260409020600281015460ff16611548576040805162461bcd60e51b81526020600482015260176024820152761b5d5cdd0818994818481b1a5d99481c1c9bdc1bdcd85b604a1b604482015290519081900360640190fd5b6002810154610100900460ff166115905760405162461bcd60e51b8152600401808060200182810382526026815260200180611b8d6026913960400191505060405180910390fd5b60028101805460ff1916905560055460408051638da5cb5b60e01b8152905160609260009283926001600160a01b0390921691638da5cb5b91600480820192602092909190829003018186803b1580156115e957600080fd5b505afa1580156115fd573d6000803e3d6000fd5b505050506040513d602081101561161357600080fd5b5051600480546005546001888101546040516368db844d60e11b81526001600160a01b0394851695810186815293851660448201819052606482018390526080602483019081528c5460026000199682161561010002969096011694909404608483018190529798509488169663d1b7089a96958c9590949092909160a490910190869080156116e45780601f106116b9576101008083540402835291602001916116e4565b820191906000526020600020905b8154815290600101906020018083116116c757829003601f168201915b505095505050505050600060405180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561174457600080fd5b81516020830180516040519294929383019291908464010000000082111561176b57600080fd5b90830190602082018581111561178057600080fd5b825164010000000081118282018810171561179a57600080fd5b82525081516020918201929091019080838360005b838110156117c75781810151838201526020016117af565b50505050905090810190601f1680156117f45780820380516001836020036101000a031916815260200191505b5060405250919550919350508215905061191b576000858152600160205260408120906118218282611aaa565b506000600182018190556002909101805461ffff1916905560055460405187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a3600554604080516020808252865181830152865189946001600160a01b0316937f1c57c986b085f821f3126bc24b5aba57ed92fe545788a34925528295cef240159389939092839283019185019080838360005b838110156118dc5781810151838201526020016118c4565b50505050905090810190601f1680156119095780820380516001836020036101000a031916815260200191505b509250505060405180910390a361192b565b60028401805460ff191660011790555b5050505050565b3360009081526020818152604080832084845290915281206001015482906001600160a01b031661199f576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b336000908152602081815260408083208684529091529020600101546001600160a01b0316806119d3576000925050611424565b806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a0c57600080fd5b505afa158015611a20573d6000803e3d6000fd5b505050506040513d6020811015611a3657600080fd5b505160408051630dd29a4f60e31b8152600481018990526001600160a01b038881166024830152848116604483015291519190921691636e94d2789160648083019260209291908290030181600087803b1580156113f457600080fd5b604080518082019091526000808252602082015290565b50805460018160011615610100020316600290046000825580601f10611ad05750611aee565b601f016020900490600052602060002090810190611aee9190611b6f565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611b3257805160ff1916838001178555611b5f565b82800160010185558215611b5f579182015b82811115611b5f578251825591602001919060010190611b44565b50611b6b929150611b6f565b5090565b611b8991905b80821115611b6b5760008155600101611b75565b9056fe70726f706f73616c206d7573742070617373656420627920766f74696e67206d616368696e65a265627a7a72315820f789001a7e9d481a2200d54bfa23c8f2880a78b0370fa66b7253b35b94df523564736f6c63430005110032",
  "linkReferences": {},
  "deployedLinkReferences": {}
}