{
  "contractName": "GenericScheme",
  "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"
    },
    {
      "inputs": [],
      "name": "avatar",
      "outputs": [
        {
          "internalType": "contract Avatar",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_stakingToken",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "balanceOfStakingToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "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"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "contractToCall",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "execute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "int256",
          "name": "_decision",
          "type": "int256"
        }
      ],
      "name": "executeProposal",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getTotalReputationSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        },
        {
          "internalType": "contract IntVoteInterface",
          "name": "_votingMachine",
          "type": "address"
        },
        {
          "internalType": "uint256[11]",
          "name": "_votingParams",
          "type": "uint256[11]"
        },
        {
          "internalType": "address",
          "name": "_voteOnBehalf",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_voteParamsHash",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_contractToCall",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "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"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "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"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "proposalsBlockNumber",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "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"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "reputationOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "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"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "voteParamsHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "votingMachine",
      "outputs": [
        {
          "internalType": "contract IntVoteInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50611b3b806100206000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063b20d7c2611610097578063d29b5d2f11610066578063d29b5d2f146103dc578063d8145e2d1461040e578063e751f271146104c0578063f81f8bf6146104dd57610100565b8063b20d7c2614610246578063b551c3731461024e578063bea75f281461026b578063cf65725d146102a757610100565b80637a5cb92c116100d35780637a5cb92c146101775780639588378e14610194578063985e313f146101c05780639d4c162d1461020f57610100565b80633edf7ca1146101055780634ea2c7ec146101295780635aef7de6146101435780636b8eb4031461014b575b600080fd5b61010d61050f565b604080516001600160a01b039092168252519081900360200190f35b61013161051e565b60408051918252519081900360200190f35b61010d610524565b6101316004803603604081101561016157600080fd5b506001600160a01b038135169060200135610533565b6101316004803603602081101561018d57600080fd5b503561060d565b610131600480360360408110156101aa57600080fd5b506001600160a01b03813516906020013561061f565b61020d60048036036102008110156101d757600080fd5b506001600160a01b038135811691602081013582169160408201916101a08101358216916101c0820135916101e0013516610750565b005b6102326004803603604081101561022557600080fd5b50803590602001356107ae565b604080519115158252519081900360200190f35b61010d61099d565b6101316004803603602081101561026457600080fd5b50356109ac565b6102326004803603608081101561028157600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610b09565b610131600480360360608110156102bd57600080fd5b8101906020810181356401000000008111156102d857600080fd5b8201836020820111156102ea57600080fd5b8035906020019184600183028401116401000000008311171561030c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595909490935060408101925060200135905064010000000081111561036757600080fd5b82018360208201111561037957600080fd5b8035906020019184600183028401116401000000008311171561039b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c6d945050505050565b610232600480360360608110156103f257600080fd5b508035906001600160a01b036020820135169060400135610ec1565b61042b6004803603602081101561042457600080fd5b503561101c565b60405180806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561048257818101518382015260200161046a565b50505050905090810190601f1680156104af5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61020d600480360360208110156104d657600080fd5b50356110d6565b610232600480360360608110156104f357600080fd5b508035906001600160a01b036020820135169060400135611511565b6034546001600160a01b031681565b60355481565b6033546001600160a01b031681565b60345460009082906001600160a01b0316331461058c576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b1580156105d957600080fd5b505afa1580156105ed573d6000803e3d6000fd5b505050506040513d602081101561060357600080fd5b5051949350505050565b60366020526000908152604090205481565b60345460009082906001600160a01b03163314610678576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156106c657600080fd5b505afa1580156106da573d6000803e3d6000fd5b505050506040513d60208110156106f057600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b1580156105d957600080fd5b61078786868487600b806020026040519081016040528092919082600b602002808284376000920191909152508991506116379050565b603880546001600160a01b0319166001600160a01b03929092169190911790555050505050565b60345460009083906001600160a01b03163314610807576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b6000848152603760205260409020600281015460ff16610868576040805162461bcd60e51b81526020600482015260176024820152761b5d5cdd0818994818481b1a5d99481c1c9bdc1bdcd85b604a1b604482015290519081900360640190fd5b6002810154610100900460ff16156108be576040805162461bcd60e51b815260206004820152601460248201527363616e6e6f74206578656375746520747769636560601b604482015290519081900360640190fd5b83600114156108e65760028101805461ff0019166101001790556108e1856110d6565b61094f565b6000858152603760205260408120906108ff82826119d2565b506000600182018190556002909101805461ffff1916905560335460405187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a35b60335460408051868152905187926001600160a01b0316917f25d4c89430c1f10c60c292556941e3e624ec1ec04972a5da46cee1b352429cbe919081900360200190a3506001949350505050565b6038546001600160a01b031681565b60345460009082906001600160a01b03163314610a05576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5357600080fd5b505afa158015610a67573d6000803e3d6000fd5b505050506040513d6020811015610a7d57600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b158015610ad657600080fd5b505afa158015610aea573d6000803e3d6000fd5b505050506040513d6020811015610b0057600080fd5b50519392505050565b60345460009082906001600160a01b03163314610b62576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bb057600080fd5b505afa158015610bc4573d6000803e3d6000fd5b505050506040513d6020811015610bda57600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b158015610c3757600080fd5b505af1158015610c4b573d6000803e3d6000fd5b505050506040513d6020811015610c6157600080fd5b50519695505050505050565b60345460355460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009384939216916388737b5e91608480830192602092919082900301818787803b158015610cd857600080fd5b505af1158015610cec573d6000803e3d6000fd5b505050506040513d6020811015610d0257600080fd5b505160408051608081018252878152602081810188905260018284015260006060830181905284815260378252929092208151805194955091939092610d4c928492910190611a19565b5060208281015160018301556040808401516002909301805460609586015115156101000261ff001995151560ff1990921691909117949094169390931790925560008481526036825282812043905560335483518084018a90528581528a5195810195909552895186956001600160a01b03909216947f36418f82d814fb021ca04ebdc2c4a3cd69f719851f597c489bca2ed245e8c8ad948c948c948c949093849390840192608085019291890191908190849084905b83811015610e1c578181015183820152602001610e04565b50505050905090810190601f168015610e495780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610e7c578181015183820152602001610e64565b50505050905090810190601f168015610ea95780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a3949350505050565b60345460009082906001600160a01b03163314610f1a576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6857600080fd5b505afa158015610f7c573d6000803e3d6000fd5b505050506040513d6020811015610f9257600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505050506040513d602081101561101157600080fd5b505195945050505050565b60376020908152600091825260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529092918391908301828280156110b35780601f10611088576101008083540402835291602001916110b3565b820191906000526020600020905b81548152906001019060200180831161109657829003601f168201915b50505050600183015460029093015491929160ff80821692506101009091041684565b6000818152603760205260409020600281015460ff16611137576040805162461bcd60e51b81526020600482015260176024820152761b5d5cdd0818994818481b1a5d99481c1c9bdc1bdcd85b604a1b604482015290519081900360640190fd5b6002810154610100900460ff1661117f5760405162461bcd60e51b8152600401808060200182810382526026815260200180611ae06026913960400191505060405180910390fd5b60028101805460ff1916905560335460408051638da5cb5b60e01b8152905160609260009283926001600160a01b0390921691638da5cb5b91600480820192602092909190829003018186803b1580156111d857600080fd5b505afa1580156111ec573d6000803e3d6000fd5b505050506040513d602081101561120257600080fd5b505160385460018681015460405163057e2c8b60e31b81526001600160a01b0393841660048201818152604483018490526060602484019081528b54600260001997821615610100029790970116959095046064840181905296975094871695632bf164589591948b94939091608490910190859080156112c45780601f10611299576101008083540402835291602001916112c4565b820191906000526020600020905b8154815290600101906020018083116112a757829003601f168201915b5050945050505050600060405180830381600087803b1580156112e657600080fd5b505af11580156112fa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561132357600080fd5b81516020830180516040519294929383019291908464010000000082111561134a57600080fd5b90830190602082018581111561135f57600080fd5b825164010000000081118282018810171561137957600080fd5b82525081516020918201929091019080838360005b838110156113a657818101518382015260200161138e565b50505050905090810190601f1680156113d35780820380516001836020036101000a031916815260200191505b506040525091955091935050821590506114fa5760008581526037602052604081209061140082826119d2565b506000600182018190556002909101805461ffff1916905560335460405187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a3603354604080516020808252865181830152865189946001600160a01b0316937f1c57c986b085f821f3126bc24b5aba57ed92fe545788a34925528295cef240159389939092839283019185019080838360005b838110156114bb5781810151838201526020016114a3565b50505050905090810190601f1680156114e85780820380516001836020036101000a031916815260200191505b509250505060405180910390a361150a565b60028401805460ff191660011790555b5050505050565b60345460009082906001600160a01b0316331461156a576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115b857600080fd5b505afa1580156115cc573d6000803e3d6000fd5b505050506040513d60208110156115e257600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b158015610fe757600080fd5b6001600160a01b038416611692576040805162461bcd60e51b815260206004820152601c60248201527f766f74696e674d616368696e652063616e6e6f74206265207a65726f00000000604482015290519081900360640190fd5b61169b856118b2565b603480546001600160a01b0319166001600160a01b038616179055826118a9576040516307b4e1e360e01b815284906001600160a01b038216906307b4e1e39085908590600401808361016080838360005b838110156117055781810151838201526020016116ed565b50505050905001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b15801561174057600080fd5b505afa158015611754573d6000803e3d6000fd5b505050506040513d602081101561176a57600080fd5b505160358190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b1580156117bc57600080fd5b505afa1580156117d0573d6000803e3d6000fd5b505050506040513d6101a08110156117e757600080fd5b50519050806118a257604051638894c41b60e01b81526001600160a01b03831690638894c41b9086908690600401808361016080838360005b83811015611838578181015183820152602001611820565b50505050905001826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b15801561187557600080fd5b505af1158015611889573d6000803e3d6000fd5b505050506040513d602081101561189f57600080fd5b50505b505061150a565b50506035555050565b600054610100900460ff16806118cb57506118cb6119cb565b806118d9575060005460ff16155b6119145760405162461bcd60e51b815260040180806020018281038252602e815260200180611ab2602e913960400191505060405180910390fd5b600054610100900460ff1615801561193f576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821661199a576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b03841617905580156119c7576000805461ff00191690555b5050565b303b155b90565b50805460018160011615610100020316600290046000825580601f106119f85750611a16565b601f016020900490600052602060002090810190611a169190611a97565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a5a57805160ff1916838001178555611a87565b82800160010185558215611a87579182015b82811115611a87578251825591602001919060010190611a6c565b50611a93929150611a97565b5090565b6119cf91905b80821115611a935760008155600101611a9d56fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656470726f706f73616c206d7573742070617373656420627920766f74696e67206d616368696e65a2646970667358221220c1c0a5e754f2625c68af3c8b2803d161b010a15ecad4476adc82652cfae51b0264736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063b20d7c2611610097578063d29b5d2f11610066578063d29b5d2f146103dc578063d8145e2d1461040e578063e751f271146104c0578063f81f8bf6146104dd57610100565b8063b20d7c2614610246578063b551c3731461024e578063bea75f281461026b578063cf65725d146102a757610100565b80637a5cb92c116100d35780637a5cb92c146101775780639588378e14610194578063985e313f146101c05780639d4c162d1461020f57610100565b80633edf7ca1146101055780634ea2c7ec146101295780635aef7de6146101435780636b8eb4031461014b575b600080fd5b61010d61050f565b604080516001600160a01b039092168252519081900360200190f35b61013161051e565b60408051918252519081900360200190f35b61010d610524565b6101316004803603604081101561016157600080fd5b506001600160a01b038135169060200135610533565b6101316004803603602081101561018d57600080fd5b503561060d565b610131600480360360408110156101aa57600080fd5b506001600160a01b03813516906020013561061f565b61020d60048036036102008110156101d757600080fd5b506001600160a01b038135811691602081013582169160408201916101a08101358216916101c0820135916101e0013516610750565b005b6102326004803603604081101561022557600080fd5b50803590602001356107ae565b604080519115158252519081900360200190f35b61010d61099d565b6101316004803603602081101561026457600080fd5b50356109ac565b6102326004803603608081101561028157600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610b09565b610131600480360360608110156102bd57600080fd5b8101906020810181356401000000008111156102d857600080fd5b8201836020820111156102ea57600080fd5b8035906020019184600183028401116401000000008311171561030c57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595909490935060408101925060200135905064010000000081111561036757600080fd5b82018360208201111561037957600080fd5b8035906020019184600183028401116401000000008311171561039b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c6d945050505050565b610232600480360360608110156103f257600080fd5b508035906001600160a01b036020820135169060400135610ec1565b61042b6004803603602081101561042457600080fd5b503561101c565b60405180806020018581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b8381101561048257818101518382015260200161046a565b50505050905090810190601f1680156104af5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b61020d600480360360208110156104d657600080fd5b50356110d6565b610232600480360360608110156104f357600080fd5b508035906001600160a01b036020820135169060400135611511565b6034546001600160a01b031681565b60355481565b6033546001600160a01b031681565b60345460009082906001600160a01b0316331461058c576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603354604080516370a0823160e01b81526001600160a01b0392831660048201529051918616916370a0823191602480820192602092909190829003018186803b1580156105d957600080fd5b505afa1580156105ed573d6000803e3d6000fd5b505050506040513d602081101561060357600080fd5b5051949350505050565b60366020526000908152604090205481565b60345460009082906001600160a01b03163314610678576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b1580156106c657600080fd5b505afa1580156106da573d6000803e3d6000fd5b505050506040513d60208110156106f057600080fd5b505160008481526036602090815260409182902054825163277166bf60e11b81526001600160a01b03898116600483015260248201929092529251931692634ee2cd7e926044808201939291829003018186803b1580156105d957600080fd5b61078786868487600b806020026040519081016040528092919082600b602002808284376000920191909152508991506116379050565b603880546001600160a01b0319166001600160a01b03929092169190911790555050505050565b60345460009083906001600160a01b03163314610807576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b6000848152603760205260409020600281015460ff16610868576040805162461bcd60e51b81526020600482015260176024820152761b5d5cdd0818994818481b1a5d99481c1c9bdc1bdcd85b604a1b604482015290519081900360640190fd5b6002810154610100900460ff16156108be576040805162461bcd60e51b815260206004820152601460248201527363616e6e6f74206578656375746520747769636560601b604482015290519081900360640190fd5b83600114156108e65760028101805461ff0019166101001790556108e1856110d6565b61094f565b6000858152603760205260408120906108ff82826119d2565b506000600182018190556002909101805461ffff1916905560335460405187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a35b60335460408051868152905187926001600160a01b0316917f25d4c89430c1f10c60c292556941e3e624ec1ec04972a5da46cee1b352429cbe919081900360200190a3506001949350505050565b6038546001600160a01b031681565b60345460009082906001600160a01b03163314610a05576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b03166389ae1c906040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5357600080fd5b505afa158015610a67573d6000803e3d6000fd5b505050506040513d6020811015610a7d57600080fd5b5051600084815260366020908152604091829020548251630981b24d60e41b8152600481019190915291516001600160a01b039093169263981b24d0926024808201939291829003018186803b158015610ad657600080fd5b505afa158015610aea573d6000803e3d6000fd5b505050506040513d6020811015610b0057600080fd5b50519392505050565b60345460009082906001600160a01b03163314610b62576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bb057600080fd5b505afa158015610bc4573d6000803e3d6000fd5b505050506040513d6020811015610bda57600080fd5b50516040805163dab0efff60e01b81526001600160a01b0389811660048301528881166024830152604482018890529151919092169163dab0efff9160648083019260209291908290030181600087803b158015610c3757600080fd5b505af1158015610c4b573d6000803e3d6000fd5b505050506040513d6020811015610c6157600080fd5b50519695505050505050565b60345460355460335460408051634439bdaf60e11b81526002600482015260248101939093523360448401526001600160a01b0391821660648401525160009384939216916388737b5e91608480830192602092919082900301818787803b158015610cd857600080fd5b505af1158015610cec573d6000803e3d6000fd5b505050506040513d6020811015610d0257600080fd5b505160408051608081018252878152602081810188905260018284015260006060830181905284815260378252929092208151805194955091939092610d4c928492910190611a19565b5060208281015160018301556040808401516002909301805460609586015115156101000261ff001995151560ff1990921691909117949094169390931790925560008481526036825282812043905560335483518084018a90528581528a5195810195909552895186956001600160a01b03909216947f36418f82d814fb021ca04ebdc2c4a3cd69f719851f597c489bca2ed245e8c8ad948c948c948c949093849390840192608085019291890191908190849084905b83811015610e1c578181015183820152602001610e04565b50505050905090810190601f168015610e495780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610e7c578181015183820152602001610e64565b50505050905090810190601f168015610ea95780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a3949350505050565b60345460009082906001600160a01b03163314610f1a576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6857600080fd5b505afa158015610f7c573d6000803e3d6000fd5b505050506040513d6020811015610f9257600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b0387811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b158015610fe757600080fd5b505af1158015610ffb573d6000803e3d6000fd5b505050506040513d602081101561101157600080fd5b505195945050505050565b60376020908152600091825260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529092918391908301828280156110b35780601f10611088576101008083540402835291602001916110b3565b820191906000526020600020905b81548152906001019060200180831161109657829003601f168201915b50505050600183015460029093015491929160ff80821692506101009091041684565b6000818152603760205260409020600281015460ff16611137576040805162461bcd60e51b81526020600482015260176024820152761b5d5cdd0818994818481b1a5d99481c1c9bdc1bdcd85b604a1b604482015290519081900360640190fd5b6002810154610100900460ff1661117f5760405162461bcd60e51b8152600401808060200182810382526026815260200180611ae06026913960400191505060405180910390fd5b60028101805460ff1916905560335460408051638da5cb5b60e01b8152905160609260009283926001600160a01b0390921691638da5cb5b91600480820192602092909190829003018186803b1580156111d857600080fd5b505afa1580156111ec573d6000803e3d6000fd5b505050506040513d602081101561120257600080fd5b505160385460018681015460405163057e2c8b60e31b81526001600160a01b0393841660048201818152604483018490526060602484019081528b54600260001997821615610100029790970116959095046064840181905296975094871695632bf164589591948b94939091608490910190859080156112c45780601f10611299576101008083540402835291602001916112c4565b820191906000526020600020905b8154815290600101906020018083116112a757829003601f168201915b5050945050505050600060405180830381600087803b1580156112e657600080fd5b505af11580156112fa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561132357600080fd5b81516020830180516040519294929383019291908464010000000082111561134a57600080fd5b90830190602082018581111561135f57600080fd5b825164010000000081118282018810171561137957600080fd5b82525081516020918201929091019080838360005b838110156113a657818101518382015260200161138e565b50505050905090810190601f1680156113d35780820380516001836020036101000a031916815260200191505b506040525091955091935050821590506114fa5760008581526037602052604081209061140082826119d2565b506000600182018190556002909101805461ffff1916905560335460405187926001600160a01b03909216917f6bc0cb9e9967b59a69ace442598e1df4368d38661bd5c0800fbcbc9fe855fbbe91a3603354604080516020808252865181830152865189946001600160a01b0316937f1c57c986b085f821f3126bc24b5aba57ed92fe545788a34925528295cef240159389939092839283019185019080838360005b838110156114bb5781810151838201526020016114a3565b50505050905090810190601f1680156114e85780820380516001836020036101000a031916815260200191505b509250505060405180910390a361150a565b60028401805460ff191660011790555b5050505050565b60345460009082906001600160a01b0316331461156a576040805162461bcd60e51b81526020600482015260126024820152716f6e6c7920566f74696e674d616368696e6560701b604482015290519081900360640190fd5b603360009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115b857600080fd5b505afa1580156115cc573d6000803e3d6000fd5b505050506040513d60208110156115e257600080fd5b50516040805163ddbfcc6b60e01b8152600481018890526001600160a01b0387811660248301529151919092169163ddbfcc6b9160448083019260209291908290030181600087803b158015610fe757600080fd5b6001600160a01b038416611692576040805162461bcd60e51b815260206004820152601c60248201527f766f74696e674d616368696e652063616e6e6f74206265207a65726f00000000604482015290519081900360640190fd5b61169b856118b2565b603480546001600160a01b0319166001600160a01b038616179055826118a9576040516307b4e1e360e01b815284906001600160a01b038216906307b4e1e39085908590600401808361016080838360005b838110156117055781810151838201526020016116ed565b50505050905001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b15801561174057600080fd5b505afa158015611754573d6000803e3d6000fd5b505050506040513d602081101561176a57600080fd5b505160358190556040805162941a0160e21b81526004810192909252516000916001600160a01b038416916302506804916024808201926101a092909190829003018186803b1580156117bc57600080fd5b505afa1580156117d0573d6000803e3d6000fd5b505050506040513d6101a08110156117e757600080fd5b50519050806118a257604051638894c41b60e01b81526001600160a01b03831690638894c41b9086908690600401808361016080838360005b83811015611838578181015183820152602001611820565b50505050905001826001600160a01b03166001600160a01b0316815260200192505050602060405180830381600087803b15801561187557600080fd5b505af1158015611889573d6000803e3d6000fd5b505050506040513d602081101561189f57600080fd5b50505b505061150a565b50506035555050565b600054610100900460ff16806118cb57506118cb6119cb565b806118d9575060005460ff16155b6119145760405162461bcd60e51b815260040180806020018281038252602e815260200180611ab2602e913960400191505060405180910390fd5b600054610100900460ff1615801561193f576000805460ff1961ff0019909116610100171660011790555b6001600160a01b03821661199a576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603380546001600160a01b0319166001600160a01b03841617905580156119c7576000805461ff00191690555b5050565b303b155b90565b50805460018160011615610100020316600290046000825580601f106119f85750611a16565b601f016020900490600052602060002090810190611a169190611a97565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a5a57805160ff1916838001178555611a87565b82800160010185558215611a87579182015b82811115611a87578251825591602001919060010190611a6c565b50611a93929150611a97565b5090565b6119cf91905b80821115611a935760008155600101611a9d56fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656470726f706f73616c206d7573742070617373656420627920766f74696e67206d616368696e65a2646970667358221220c1c0a5e754f2625c68af3c8b2803d161b010a15ecad4476adc82652cfae51b0264736f6c634300060a0033"
}