{
  "contractName": "GenesisProtocolLogic",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_stakingToken",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_confidenceThreshold",
          "type": "uint256"
        }
      ],
      "name": "ConfidenceLevelChange",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_organization",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_decision",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_totalReputation",
          "type": "uint256"
        }
      ],
      "name": "ExecuteProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "ExpirationCallBounty",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum GenesisProtocolLogic.ExecutionState",
          "name": "_executionState",
          "type": "uint8"
        }
      ],
      "name": "GPExecuteProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_organization",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_numOfChoices",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_proposer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_paramsHash",
          "type": "bytes32"
        }
      ],
      "name": "NewProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_organization",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Redeem",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_organization",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "RedeemDaoBounty",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_organization",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "RedeemReputation",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_organization",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_staker",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_vote",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Stake",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum GenesisProtocolLogic.ProposalState",
          "name": "_proposalState",
          "type": "uint8"
        }
      ],
      "name": "StateChange",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_organization",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_voter",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_vote",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_reputation",
          "type": "uint256"
        }
      ],
      "name": "VoteProposal",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "NO",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "NUM_OF_CHOICES",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "YES",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "averagesDownstakesOfBoosted",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "calcExecuteCallBounty",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "executeBoosted",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "expirationCallBounty",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[11]",
          "name": "_params",
          "type": "uint256[11]"
        },
        {
          "internalType": "address",
          "name": "_voteOnBehalf",
          "type": "address"
        }
      ],
      "name": "getParametersHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "orgBoostedProposalsCnt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "organizations",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "parameters",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "queuedVoteRequiredPercentage",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "queuedVotePeriodLimit",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "boostedVotePeriodLimit",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "preBoostedVotePeriodLimit",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "thresholdConst",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "limitExponentValue",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "quietEndingPeriod",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "proposingRepReward",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "votersReputationLossRatio",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "minimumDaoBounty",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "daoBountyConst",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "activationTime",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "voteOnBehalf",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "proposals",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "organizationId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "callbacks",
          "type": "address"
        },
        {
          "internalType": "enum GenesisProtocolLogic.ProposalState",
          "name": "state",
          "type": "uint8"
        },
        {
          "internalType": "uint256",
          "name": "winningVote",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "currentBoostedVotePeriodLimit",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "paramsHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "daoBountyRemain",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "daoBounty",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalStakes",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "confidenceThreshold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "secondsFromTimeOutTillExecuteBoosted",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "daoRedeemItsWinnings",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proposalsCnt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        }
      ],
      "name": "redeem",
      "outputs": [
        {
          "internalType": "uint256[3]",
          "name": "rewards",
          "type": "uint256[3]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        }
      ],
      "name": "redeemDaoBounty",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "redeemedAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "potentialAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[11]",
          "name": "_params",
          "type": "uint256[11]"
        },
        {
          "internalType": "address",
          "name": "_voteOnBehalf",
          "type": "address"
        }
      ],
      "name": "setParameters",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "shouldBoost",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "stakingToken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_paramsHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_organizationId",
          "type": "bytes32"
        }
      ],
      "name": "threshold",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b506040516200290238038062002902833981810160405260208110156200003757600080fd5b50516200006473543ff227f64aa17ea132bf9886cab5db55dcaddf620000b9602090811b620019b717901c565b156200009657600680546001600160a01b03191673543ff227f64aa17ea132bf9886cab5db55dcaddf179055620000b2565b600680546001600160a01b0319166001600160a01b0383161790555b50620000f6565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590620000ee57508115155b949350505050565b6127fc80620001066000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806380f5e0a1116100a2578063ba51b14e11610071578063ba51b14e146103e1578063bb5a05ed146103fe578063beda80151461041b578063cc3bf9e914610438578063fb6c0cbb1461049c57610116565b806380f5e0a11461037c5780638894c41b146103ad5780639bc5689d14610215578063b2449d65146103d957610116565b80632d598e58116100e95780632d598e581461022557806332ed5b121461024857806340474873146102f65780636359036b1461031357806372f702f31461035857610116565b8063025068041461011b57806307b4e1e3146101a65780630d4834421461021557806321b4b3dc1461021d575b600080fd5b6101386004803603602081101561013157600080fd5b50356104b9565b604080519d8e5260208e019c909c528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e08801526101008701526101208601526101408501526101608401526001600160a01b031661018083015251908190036101a00190f35b61020360048036036101808110156101bd57600080fd5b81019080806101600190600b806020026040519081016040528092919082600b602002808284376000920191909152509194505050356001600160a01b03169050610529565b60408051918252519081900360200190f35b61020361063a565b61020361063f565b6102036004803603604081101561023b57600080fd5b5080359060200135610645565b6102656004803603602081101561025e57600080fd5b5035610692565b604080518e81526001600160a01b038e1660208201529081018c600681111561028a57fe5b60ff168152602081019b909b52506001600160a01b039098166040808b019190915260608a0197909752608089019590955260a088019390935260c087019190915260e08601526101008501526101208401529015156101408301525190819003610160019350915050f35b6102036004803603602081101561030c57600080fd5b5035610700565b61033f6004803603604081101561032957600080fd5b50803590602001356001600160a01b0316610778565b6040805192835260208301919091528051918290030190f35b610360610a5b565b604080516001600160a01b039092168252519081900360200190f35b6103996004803603602081101561039257600080fd5b5035610a6a565b604080519115158252519081900360200190f35b61020360048036036101808110156103c457600080fd5b506001600160a01b0361016082013516610ba7565b610203610f94565b610360600480360360208110156103f757600080fd5b5035610f99565b6102036004803603602081101561041457600080fd5b5035610fb4565b6102036004803603602081101561043157600080fd5b5035610fc6565b6104646004803603604081101561044e57600080fd5b50803590602001356001600160a01b031661120f565b6040518082606080838360005b83811015610489578181015183820152602001610471565b5050505090500191505060405180910390f35b610203600480360360208110156104b257600080fd5b50356119a5565b600060208190529081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b8c0154600c909c01549a9b999a989997989697959694959394929391929091906001600160a01b03168d565b60008281602002015183600160200201518460026020020151856003602002015186600460200201518760056020020151886006602002015189600760200201518a600860200201518b600960200201518c600a6020020151604051602001808c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019b505050505050505050505050604051602081830303815290604052805190602001208260405160200180838152602001826001600160a01b03166001600160a01b031660601b8152601401925050506040516020818303038152906040528051906020012090505b92915050565b600281565b60055481565b600081815260026020908152604080832054858452918390528220600581015482111561067457806005015491505b6004810154610689908363ffffffff6119f016565b95945050505050565b600160208190526000918252604090912080549181015460028201546003830154600484015460058501546006860154600787015460088801546009890154600a8a0154600e909a01546001600160a01b03808b169b60ff600160a01b909c048c169b99909116989091168d565b6000818152600160205260408120600a01546105dc90829061072990839063ffffffff611a3a16565b60008581526001602081815260408084209284526012909201905290205490915061077090600a84029061076490849063ffffffff611a5216565b9063ffffffff611aab16565b949350505050565b6000828152600160205260408120819060026001820154600160a01b900460ff1660068111156107a457fe5b146107f6576040805162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206e6f742065786563757465642079657400000000000000604482015290519081900360640190fd5b600281015460009081526012820160209081526040808320546001600160a01b03881684526013850190925290912060018101546001600160f81b03161580159061084b57506002830154600182015460f81c145b801561085b575060018360020154145b801561086657508115155b1561088b5781836007015482600101546001600160f81b0316028161088757fe5b0493505b83158015906109205750600183015460065460408051636b8eb40360e01b81526001600160a01b039283166004820152602481018b9052905187939290921691636b8eb40391604480820192602092909190829003018186803b1580156108f157600080fd5b505afa158015610905573d6000803e3d6000fd5b505050506040513d602081101561091b57600080fd5b505110155b15610a51576001810180546001600160f81b0319169055600683015461094c908563ffffffff611aed16565b60068085019190915560018401549054604080516317d4ebe560e31b81526001600160a01b039283166004820152898316602482015260448101889052606481018b90529051919092169163bea75f289160848083019260209291908290030181600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b505050506040513d60208110156109e857600080fd5b50516109f357600080fd5b8254600090815260036020908152604091829020548251878152925196975087966001600160a01b03808b16949216928b927fb4a37163ec93e05e09b62e52f7f2ea8cfde431802edede7dfebe53d2ad969dbb929081900390910190a45b5050509250929050565b6006546001600160a01b031681565b6000610a746125e1565b60008381526001602081815260409283902083516101c08101855281548152928101546001600160a01b038116928401929092529192830190600160a01b900460ff166006811115610ac257fe5b6006811115610acd57fe5b8152600282015460208201526003808301546001600160a01b0316604080840191909152600484015460608085019190915260058501546080850152600685015460a0850152600785015460c0850152600885015460e08501526009850154610100850152600a8501546101208501528151908101918290526101409093019291600b85019182845b815481526020019060010190808311610b56575050509183525050600e919091015460ff16151560209091015260c08101518151919250610b9691610645565b610b9f84611b2f565b119392505050565b60006064833511801590610bbd57506032833510155b610bf85760405162461bcd60e51b815260040180806020018281038252602981526020018061274a6029913960400191505060405180910390fd5b613e80608084013511801590610c1357506103e86080840135115b610c64576040805162461bcd60e51b815260206004820152601e60248201527f31303030203c207468726573686f6c64436f6e7374203c3d2031363030300000604482015290519081900360640190fd5b606460e08401351115610cbe576040805162461bcd60e51b815260206004820181905260248201527f766f7465727352657075746174696f6e4c6f7373526174696f203c3d20313030604482015290519081900360640190fd5b60a083013560408401351015610d055760405162461bcd60e51b815260040180806020018281038252602b81526020018061271f602b913960400191505060405180910390fd5b610100830135610d5c576040805162461bcd60e51b815260206004820152601e60248201527f6d696e696d756d44616f426f756e74792073686f756c64206265203e20300000604482015290519081900360640190fd5b610120830135610db3576040805162461bcd60e51b815260206004820152601c60248201527f64616f426f756e7479436f6e73742073686f756c64206265203e203000000000604482015290519081900360640190fd5b6000610de984600b806020026040519081016040528092919082600b602002808284376000920191909152508691506105299050565b905060ac60026107d05b613e80811015610e3b57608087013581108015610e17575060028102608088013511155b15610e2d57818381610e2557fe5b049250610e3b565b600190910190600202610df3565b50604080516101a0810182528735815260208089013590820152878201359181019190915260608088013590820152608080820190610e88908901356001600160d81b03166103e8611b70565b81526020810184905260a088810135604083015260c0808a0135606084015260e0808b013560808501526101008b0135928401929092526101208a0135908301520187600a6020908102919091013582526001600160a01b03978816918101919091526000858152808252604090819020835181559183015160018301558201516002820155606082015160038201556080820151600482015560a0820151600582015560c0820151600682015560e0820151600782015561010082015160088201556101208201516009820155610140820151600a820155610160820151600b82015561018090910151600c90910180546001600160a01b0319169190961617909455509392505050565b600181565b6003602052600090815260409020546001600160a01b031681565b60046020526000908152604090205481565b600081815260016020526040812060056001820154600160a01b900460ff166006811115610ff057fe5b1480611015575060066001820154600160a01b900460ff16600681111561101357fe5b145b6110505760405162461bcd60e51b81526004018080602001828103825260338152602001806127946033913960400191505060405180910390fd5b61105983611b93565b6110aa576040805162461bcd60e51b815260206004820152601760248201527f70726f706f73616c206e65656420746f20657870697265000000000000000000604482015290519081900360640190fd5b6110d66110c9600b83016001015460048401549063ffffffff61240c16565b429063ffffffff611aed16565b600a8201556110e483610700565b60088201549092506110fc908363ffffffff611aed16565b60088201556006546040805163a9059cbb60e01b81523360048201526024810185905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561115557600080fd5b505af1158015611169573d6000803e3d6000fd5b505050506040513d602081101561117f57600080fd5b50516111d2576040805162461bcd60e51b815260206004820152601d60248201527f7472616e7366657220746f206d73672e73656e646572206661696c6564000000604482015290519081900360640190fd5b604080518381529051339185917f7468017f6ff596af88244327e88fe691ac48cc1db88b033d11c335f2c7ccdd039181900360200190a350919050565b611217612662565b600083815260016020526040902060026001820154600160a01b900460ff16600681111561124157fe5b14806112655750600180820154600160a01b900460ff16600681111561126357fe5b145b6112a05760405162461bcd60e51b815260040180806020018281038252602d8152602001806126f2602d913960400191505060405180910390fd5b6112a8612680565b5060058082015460009081526020818152604080832081516101a081018352815481526001820154818501526002808301548285015260038301546060830152600483015460808301529582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b820154610160820152600c909101546001600160a01b0390811661018083015288168452601386018352818420948601548452601286019092528220549092916113b461137e89610700565b6001600090815260128801602052604080822054600283529120546113a89163ffffffff61240c16565b9063ffffffff611aed16565b83549091501561147b57600180860154600160a01b900460ff1660068111156113d957fe5b14156113e85782548652611476565b6002850154600184015460f81c14156114765760018381015460f81c141561145757808560070154101561145257600061142f866007015483611aed90919063ffffffff16565b84549091508390611446908363ffffffff611a5216565b8161144d57fe5b048752505b611476565b8254829061146b908363ffffffff611a5216565b8161147257fe5b0486525b600083555b600e85015460ff161580156114ab575084546000908152600360205260409020546001600160a01b038881169116145b80156114d05750600180860154600160a01b900460ff1660068111156114cd57fe5b14155b80156114e0575060028560020154145b1561153157600785015461151f906113a884611502838663ffffffff611a5216565b8161150957fe5b048960005b60200201519063ffffffff61240c16565b8652600e8501805460ff191660011790555b6001600160a01b03871660009081526011860160205260409020546fffffffffffffffffffffffffffffffff8116600160f783901c81161460f883901c821580159061157a5750815b156116c1576001808a0154600160a01b900460ff16600681111561159a57fe5b14156115cc5760646115ba89610100015185611a5290919063ffffffff16565b816115c157fe5b0460208b01526116a5565b8060ff16896002015414156116a557600060018a60020154141561160357506002600090815260108a016020526040902054611618565b506001600090815260108a0160205260409020545b60646116328a610100015183611a5290919063ffffffff16565b8161163957fe5b60028c0154600090815260108d016020526040902054919004915061169e90611668868463ffffffff611a5216565b8161166f57fe5b04606461168a8c610100015188611a5290919063ffffffff16565b8161169157fe5b049063ffffffff61240c16565b60208c0152505b6001600160a01b038b16600090815260118a0160205260408120555b60038901546001600160a01b038c811691161480156116e4575060018960020154145b80156116fc575060038901546001600160a01b031615155b1561171e5760e088015160408b01526003890180546001600160a01b03191690555b89511561187157895160088a015461173591611aed565b60088a01556006548a516040805163a9059cbb60e01b81526001600160a01b038f8116600483015260248201939093529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561179357600080fd5b505af11580156117a7573d6000803e3d6000fd5b505050506040513d60208110156117bd57600080fd5b5051611810576040805162461bcd60e51b815260206004820152601e60248201527f7472616e7366657220746f2062656e6566696369617279206661696c65640000604482015290519081900360640190fd5b88546000908152600360205260408120546001600160a01b03808e16929116908e907f6d26871c9f457d104b2122485f659f126f7a0cf6938cf20482c03f49794a2fbf908e9060200201516040518082815260200191505060405180910390a45b60408a0151611882908b600161150e565b156119965760018901546001600160a01b031663d29b5d2f6118ad8c600260200201518d600161150e565b8d8f6040518463ffffffff1660e01b815260040180848152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561190557600080fd5b505af1158015611919573d6000803e3d6000fd5b505050506040513d602081101561192f57600080fd5b505088546000908152600360205260409020546001600160a01b03808d1691168d7f7419b736daacf66d5c1645948c956fca2b83be1e2e02d486d65713f289d683b86119848e600260200201518f600161150e565b60408051918252519081900360200190a45b50505050505050505092915050565b60026020526000908152604090205481565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610770575050151592915050565b60008282650100000000005b8115610689578160011660011415611a1b57611a188184612466565b90505b60019190911c908115611a3557611a328384612466565b92505b6119fc565b6000818310611a495781611a4b565b825b9392505050565b600082611a6157506000610634565b82820282848281611a6e57fe5b0414611a4b5760405162461bcd60e51b81526004018080602001828103825260218152602001806127736021913960400191505060405180910390fd5b6000611a4b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124ca565b6000611a4b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061256c565b60008181526001602081815260408084206002855260128101909252808420549284528320549091611a4b916001600160d81b03169063ffffffff611b7016565b6000611a4b6001600160d81b0380851665010000000000908102918516026125c6565b6000818152600160205260408120611ba9612680565b506005808201546000908152602081815260409182902082516101a0810184528154815260018201549281019290925260028101549282019290925260038201546060820152600482015460808201529181015460a0830152600681015460c0830152600781015460e083015260088101546101008301526009810154610120830152600a810154610140830152600b810154610160830152600c01546001600160a01b0316610180820152611c5d6125e1565b604080516101c0810182528454815260018501546001600160a01b03811660208301529091859190830190600160a01b900460ff166006811115611c9d57fe5b6006811115611ca857fe5b8152600282015460208201526003808301546001600160a01b0316604080840191909152600484015460608085019190915260058501546080850152600685015460a0850152600785015460c0850152600885015460e08501526009850154610100850152600a8501546101208501528151908101918290526101409093019291600b85019182845b815481526020019060010190808311611d31575050509183525050600e919091015460ff16151560209182015260018501546040805163b551c37360e01b8152600481018a905290519394506000936001600160a01b039092169263b551c37392602480840193829003018186803b158015611dac57600080fd5b505afa158015611dc0573d6000803e3d6000fd5b505050506040513d6020811015611dd657600080fd5b5051835160028601546000908152600f87016020526040812054929350606484049091029181908190841015611e835760036001890154600160a01b900460ff166006811115611e2257fe5b1415611e315760019250611e61565b60046001890154600160a01b900460ff166006811115611e4d57fe5b1415611e5c5760039250611e61565b600592505b6001880180546002919060ff60a01b1916600160a01b835b02179055506120ca565b60036001890154600160a01b900460ff166006811115611e9f57fe5b1415611f21576020870151600b890154420310611eda5760018801805460ff60a01b1916600160a01b17905560028089018190559250611f21565b611eec88600501548960000154610645565b905080611ef88b611b2f565b1115611f215760018801805460ff60a01b1916600160a21b17905542600d890155600988018190555b60046001890154600160a01b900460ff166006811115611f3d57fe5b14156120ca57611f5588600501548960000154610645565b6060880151909150600b89016002015442031061203b5780611f768b611b2f565b111561201a5787546000908152600260205260409020546110001115612015576001888101805460ff60a01b1916600560a01b17905542600c8a01558854600090815260026020818152604080842080549095019094558b54835260048152838320548282528484205492845260128d0190915292909120549193509083900381611ffd57fe5b89546000908152600460205260409020919005830190555b612036565b6001880180546003919060ff60a01b1916600160a01b83611e79565b6120ca565b60006120468b611b2f565b60098a015490915061205e908363ffffffff611a3a16565b811161207e5760018901805460ff60a01b1916600360a01b1790556120c8565b80896009015411156120c857600989018290556040805183815290518c917fad767d61af51c7895fa3cc0497dde01afb610c74e55ee4d8a71fa5e3ee136d54919081900360200190a25b505b60056001890154600160a01b900460ff1660068111156120e657fe5b148061210b575060066001890154600160a01b900460ff16600681111561210957fe5b145b1561213b576004880154600c89015442031061213b5760018801805460ff60a01b1916600160a11b179055600492505b600083600581111561214957fe5b1461236757600483600581111561215c57fe5b14806121735750600583600581111561217157fe5b145b1561222e57855160009081526002602052604090205461219a90600163ffffffff611aed16565b865160009081526002602052604080822092909255875181522054806121d057885460009081526004602052604081205561222c565b88546000908152600460209081526040808320546002845260128d0190925290912054909350819061220f906113a8866001850163ffffffff611a5216565b8161221657fe5b8a54600090815260046020526040902091900490555b505b87546000908152600360209081526040918290205460028b0154835190815291820188905282516001600160a01b03909116928d927f37471b9c9d295ffb1309ad070b8964700bfb7b555e8e8292d0b6cbc7dba35d10929081900390910190a3897f46a713b994c752c68fbefa9048bec9a0010cc7d933ad95a3c3dbb25931a167e784604051808260058111156122c157fe5b60ff16815260200191505060405180910390a26001880154600289015460408051639d4c162d60e01b8152600481018e90526024810192909252516001600160a01b0390921691639d4c162d916044808201926020929091908290030181600087803b15801561233057600080fd5b505af1158015612344573d6000803e3d6000fd5b505050506040513d602081101561235a57600080fd5b5050600688015460078901555b6001880154600160a01b900460ff16600681111561238157fe5b8660400151600681111561239157fe5b146123ee57897f21aca7f0285ccddeca2935074d3e36b5ab8fea0327f84cbbf12cf1b6d1a749f98960010160149054906101000a900460ff16604051808260068111156123da57fe5b60ff16815260200191505060405180910390a25b60008360058111156123fc57fe5b14159a9950505050505050505050565b600082820183811015611a4b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008282028284828161247557fe5b04146124c0576040805162461bcd60e51b81526020600482015260156024820152745265616c4d617468206d756c206f766572666c6f7760581b604482015290519081900360640190fd5b60281c9392505050565b600081836125565760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561251b578181015183820152602001612503565b50505050905090810190601f1680156125485780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161256257fe5b0495945050505050565b600081848411156125be5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561251b578181015183820152602001612503565b505050900390565b600081650100000000008402816125d957fe5b049392505050565b604080516101c081018252600080825260208201819052909182019081526020016000815260200160006001600160a01b0316815260200160008152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001612655612662565b8152600060209091015290565b60405180606001604052806003906020820280368337509192915050565b604051806101a0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152509056fe50726f706f73616c2073686f756c64206265204578656375746564206f722045787069726564496e5175657565626f6f73746564566f7465506572696f644c696d6974203e3d207175696574456e64696e67506572696f643530203c3d20717565756564566f7465526571756972656450657263656e74616765203c3d20313030536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7770726f706f73616c20737461746520696e206e6f7420426f6f73746564206e6f72205175696574456e64696e67506572696f64a2646970667358221220a04201ad1f9d77ef40294f52ae451cb689a88d2d330cc6ba2d058c9832a6524d64736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c806380f5e0a1116100a2578063ba51b14e11610071578063ba51b14e146103e1578063bb5a05ed146103fe578063beda80151461041b578063cc3bf9e914610438578063fb6c0cbb1461049c57610116565b806380f5e0a11461037c5780638894c41b146103ad5780639bc5689d14610215578063b2449d65146103d957610116565b80632d598e58116100e95780632d598e581461022557806332ed5b121461024857806340474873146102f65780636359036b1461031357806372f702f31461035857610116565b8063025068041461011b57806307b4e1e3146101a65780630d4834421461021557806321b4b3dc1461021d575b600080fd5b6101386004803603602081101561013157600080fd5b50356104b9565b604080519d8e5260208e019c909c528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e08801526101008701526101208601526101408501526101608401526001600160a01b031661018083015251908190036101a00190f35b61020360048036036101808110156101bd57600080fd5b81019080806101600190600b806020026040519081016040528092919082600b602002808284376000920191909152509194505050356001600160a01b03169050610529565b60408051918252519081900360200190f35b61020361063a565b61020361063f565b6102036004803603604081101561023b57600080fd5b5080359060200135610645565b6102656004803603602081101561025e57600080fd5b5035610692565b604080518e81526001600160a01b038e1660208201529081018c600681111561028a57fe5b60ff168152602081019b909b52506001600160a01b039098166040808b019190915260608a0197909752608089019590955260a088019390935260c087019190915260e08601526101008501526101208401529015156101408301525190819003610160019350915050f35b6102036004803603602081101561030c57600080fd5b5035610700565b61033f6004803603604081101561032957600080fd5b50803590602001356001600160a01b0316610778565b6040805192835260208301919091528051918290030190f35b610360610a5b565b604080516001600160a01b039092168252519081900360200190f35b6103996004803603602081101561039257600080fd5b5035610a6a565b604080519115158252519081900360200190f35b61020360048036036101808110156103c457600080fd5b506001600160a01b0361016082013516610ba7565b610203610f94565b610360600480360360208110156103f757600080fd5b5035610f99565b6102036004803603602081101561041457600080fd5b5035610fb4565b6102036004803603602081101561043157600080fd5b5035610fc6565b6104646004803603604081101561044e57600080fd5b50803590602001356001600160a01b031661120f565b6040518082606080838360005b83811015610489578181015183820152602001610471565b5050505090500191505060405180910390f35b610203600480360360208110156104b257600080fd5b50356119a5565b600060208190529081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b8c0154600c909c01549a9b999a989997989697959694959394929391929091906001600160a01b03168d565b60008281602002015183600160200201518460026020020151856003602002015186600460200201518760056020020151886006602002015189600760200201518a600860200201518b600960200201518c600a6020020151604051602001808c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019b505050505050505050505050604051602081830303815290604052805190602001208260405160200180838152602001826001600160a01b03166001600160a01b031660601b8152601401925050506040516020818303038152906040528051906020012090505b92915050565b600281565b60055481565b600081815260026020908152604080832054858452918390528220600581015482111561067457806005015491505b6004810154610689908363ffffffff6119f016565b95945050505050565b600160208190526000918252604090912080549181015460028201546003830154600484015460058501546006860154600787015460088801546009890154600a8a0154600e909a01546001600160a01b03808b169b60ff600160a01b909c048c169b99909116989091168d565b6000818152600160205260408120600a01546105dc90829061072990839063ffffffff611a3a16565b60008581526001602081815260408084209284526012909201905290205490915061077090600a84029061076490849063ffffffff611a5216565b9063ffffffff611aab16565b949350505050565b6000828152600160205260408120819060026001820154600160a01b900460ff1660068111156107a457fe5b146107f6576040805162461bcd60e51b815260206004820152601960248201527f70726f706f73616c206e6f742065786563757465642079657400000000000000604482015290519081900360640190fd5b600281015460009081526012820160209081526040808320546001600160a01b03881684526013850190925290912060018101546001600160f81b03161580159061084b57506002830154600182015460f81c145b801561085b575060018360020154145b801561086657508115155b1561088b5781836007015482600101546001600160f81b0316028161088757fe5b0493505b83158015906109205750600183015460065460408051636b8eb40360e01b81526001600160a01b039283166004820152602481018b9052905187939290921691636b8eb40391604480820192602092909190829003018186803b1580156108f157600080fd5b505afa158015610905573d6000803e3d6000fd5b505050506040513d602081101561091b57600080fd5b505110155b15610a51576001810180546001600160f81b0319169055600683015461094c908563ffffffff611aed16565b60068085019190915560018401549054604080516317d4ebe560e31b81526001600160a01b039283166004820152898316602482015260448101889052606481018b90529051919092169163bea75f289160848083019260209291908290030181600087803b1580156109be57600080fd5b505af11580156109d2573d6000803e3d6000fd5b505050506040513d60208110156109e857600080fd5b50516109f357600080fd5b8254600090815260036020908152604091829020548251878152925196975087966001600160a01b03808b16949216928b927fb4a37163ec93e05e09b62e52f7f2ea8cfde431802edede7dfebe53d2ad969dbb929081900390910190a45b5050509250929050565b6006546001600160a01b031681565b6000610a746125e1565b60008381526001602081815260409283902083516101c08101855281548152928101546001600160a01b038116928401929092529192830190600160a01b900460ff166006811115610ac257fe5b6006811115610acd57fe5b8152600282015460208201526003808301546001600160a01b0316604080840191909152600484015460608085019190915260058501546080850152600685015460a0850152600785015460c0850152600885015460e08501526009850154610100850152600a8501546101208501528151908101918290526101409093019291600b85019182845b815481526020019060010190808311610b56575050509183525050600e919091015460ff16151560209091015260c08101518151919250610b9691610645565b610b9f84611b2f565b119392505050565b60006064833511801590610bbd57506032833510155b610bf85760405162461bcd60e51b815260040180806020018281038252602981526020018061274a6029913960400191505060405180910390fd5b613e80608084013511801590610c1357506103e86080840135115b610c64576040805162461bcd60e51b815260206004820152601e60248201527f31303030203c207468726573686f6c64436f6e7374203c3d2031363030300000604482015290519081900360640190fd5b606460e08401351115610cbe576040805162461bcd60e51b815260206004820181905260248201527f766f7465727352657075746174696f6e4c6f7373526174696f203c3d20313030604482015290519081900360640190fd5b60a083013560408401351015610d055760405162461bcd60e51b815260040180806020018281038252602b81526020018061271f602b913960400191505060405180910390fd5b610100830135610d5c576040805162461bcd60e51b815260206004820152601e60248201527f6d696e696d756d44616f426f756e74792073686f756c64206265203e20300000604482015290519081900360640190fd5b610120830135610db3576040805162461bcd60e51b815260206004820152601c60248201527f64616f426f756e7479436f6e73742073686f756c64206265203e203000000000604482015290519081900360640190fd5b6000610de984600b806020026040519081016040528092919082600b602002808284376000920191909152508691506105299050565b905060ac60026107d05b613e80811015610e3b57608087013581108015610e17575060028102608088013511155b15610e2d57818381610e2557fe5b049250610e3b565b600190910190600202610df3565b50604080516101a0810182528735815260208089013590820152878201359181019190915260608088013590820152608080820190610e88908901356001600160d81b03166103e8611b70565b81526020810184905260a088810135604083015260c0808a0135606084015260e0808b013560808501526101008b0135928401929092526101208a0135908301520187600a6020908102919091013582526001600160a01b03978816918101919091526000858152808252604090819020835181559183015160018301558201516002820155606082015160038201556080820151600482015560a0820151600582015560c0820151600682015560e0820151600782015561010082015160088201556101208201516009820155610140820151600a820155610160820151600b82015561018090910151600c90910180546001600160a01b0319169190961617909455509392505050565b600181565b6003602052600090815260409020546001600160a01b031681565b60046020526000908152604090205481565b600081815260016020526040812060056001820154600160a01b900460ff166006811115610ff057fe5b1480611015575060066001820154600160a01b900460ff16600681111561101357fe5b145b6110505760405162461bcd60e51b81526004018080602001828103825260338152602001806127946033913960400191505060405180910390fd5b61105983611b93565b6110aa576040805162461bcd60e51b815260206004820152601760248201527f70726f706f73616c206e65656420746f20657870697265000000000000000000604482015290519081900360640190fd5b6110d66110c9600b83016001015460048401549063ffffffff61240c16565b429063ffffffff611aed16565b600a8201556110e483610700565b60088201549092506110fc908363ffffffff611aed16565b60088201556006546040805163a9059cbb60e01b81523360048201526024810185905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561115557600080fd5b505af1158015611169573d6000803e3d6000fd5b505050506040513d602081101561117f57600080fd5b50516111d2576040805162461bcd60e51b815260206004820152601d60248201527f7472616e7366657220746f206d73672e73656e646572206661696c6564000000604482015290519081900360640190fd5b604080518381529051339185917f7468017f6ff596af88244327e88fe691ac48cc1db88b033d11c335f2c7ccdd039181900360200190a350919050565b611217612662565b600083815260016020526040902060026001820154600160a01b900460ff16600681111561124157fe5b14806112655750600180820154600160a01b900460ff16600681111561126357fe5b145b6112a05760405162461bcd60e51b815260040180806020018281038252602d8152602001806126f2602d913960400191505060405180910390fd5b6112a8612680565b5060058082015460009081526020818152604080832081516101a081018352815481526001820154818501526002808301548285015260038301546060830152600483015460808301529582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b820154610160820152600c909101546001600160a01b0390811661018083015288168452601386018352818420948601548452601286019092528220549092916113b461137e89610700565b6001600090815260128801602052604080822054600283529120546113a89163ffffffff61240c16565b9063ffffffff611aed16565b83549091501561147b57600180860154600160a01b900460ff1660068111156113d957fe5b14156113e85782548652611476565b6002850154600184015460f81c14156114765760018381015460f81c141561145757808560070154101561145257600061142f866007015483611aed90919063ffffffff16565b84549091508390611446908363ffffffff611a5216565b8161144d57fe5b048752505b611476565b8254829061146b908363ffffffff611a5216565b8161147257fe5b0486525b600083555b600e85015460ff161580156114ab575084546000908152600360205260409020546001600160a01b038881169116145b80156114d05750600180860154600160a01b900460ff1660068111156114cd57fe5b14155b80156114e0575060028560020154145b1561153157600785015461151f906113a884611502838663ffffffff611a5216565b8161150957fe5b048960005b60200201519063ffffffff61240c16565b8652600e8501805460ff191660011790555b6001600160a01b03871660009081526011860160205260409020546fffffffffffffffffffffffffffffffff8116600160f783901c81161460f883901c821580159061157a5750815b156116c1576001808a0154600160a01b900460ff16600681111561159a57fe5b14156115cc5760646115ba89610100015185611a5290919063ffffffff16565b816115c157fe5b0460208b01526116a5565b8060ff16896002015414156116a557600060018a60020154141561160357506002600090815260108a016020526040902054611618565b506001600090815260108a0160205260409020545b60646116328a610100015183611a5290919063ffffffff16565b8161163957fe5b60028c0154600090815260108d016020526040902054919004915061169e90611668868463ffffffff611a5216565b8161166f57fe5b04606461168a8c610100015188611a5290919063ffffffff16565b8161169157fe5b049063ffffffff61240c16565b60208c0152505b6001600160a01b038b16600090815260118a0160205260408120555b60038901546001600160a01b038c811691161480156116e4575060018960020154145b80156116fc575060038901546001600160a01b031615155b1561171e5760e088015160408b01526003890180546001600160a01b03191690555b89511561187157895160088a015461173591611aed565b60088a01556006548a516040805163a9059cbb60e01b81526001600160a01b038f8116600483015260248201939093529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561179357600080fd5b505af11580156117a7573d6000803e3d6000fd5b505050506040513d60208110156117bd57600080fd5b5051611810576040805162461bcd60e51b815260206004820152601e60248201527f7472616e7366657220746f2062656e6566696369617279206661696c65640000604482015290519081900360640190fd5b88546000908152600360205260408120546001600160a01b03808e16929116908e907f6d26871c9f457d104b2122485f659f126f7a0cf6938cf20482c03f49794a2fbf908e9060200201516040518082815260200191505060405180910390a45b60408a0151611882908b600161150e565b156119965760018901546001600160a01b031663d29b5d2f6118ad8c600260200201518d600161150e565b8d8f6040518463ffffffff1660e01b815260040180848152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561190557600080fd5b505af1158015611919573d6000803e3d6000fd5b505050506040513d602081101561192f57600080fd5b505088546000908152600360205260409020546001600160a01b03808d1691168d7f7419b736daacf66d5c1645948c956fca2b83be1e2e02d486d65713f289d683b86119848e600260200201518f600161150e565b60408051918252519081900360200190a45b50505050505050505092915050565b60026020526000908152604090205481565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610770575050151592915050565b60008282650100000000005b8115610689578160011660011415611a1b57611a188184612466565b90505b60019190911c908115611a3557611a328384612466565b92505b6119fc565b6000818310611a495781611a4b565b825b9392505050565b600082611a6157506000610634565b82820282848281611a6e57fe5b0414611a4b5760405162461bcd60e51b81526004018080602001828103825260218152602001806127736021913960400191505060405180910390fd5b6000611a4b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124ca565b6000611a4b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061256c565b60008181526001602081815260408084206002855260128101909252808420549284528320549091611a4b916001600160d81b03169063ffffffff611b7016565b6000611a4b6001600160d81b0380851665010000000000908102918516026125c6565b6000818152600160205260408120611ba9612680565b506005808201546000908152602081815260409182902082516101a0810184528154815260018201549281019290925260028101549282019290925260038201546060820152600482015460808201529181015460a0830152600681015460c0830152600781015460e083015260088101546101008301526009810154610120830152600a810154610140830152600b810154610160830152600c01546001600160a01b0316610180820152611c5d6125e1565b604080516101c0810182528454815260018501546001600160a01b03811660208301529091859190830190600160a01b900460ff166006811115611c9d57fe5b6006811115611ca857fe5b8152600282015460208201526003808301546001600160a01b0316604080840191909152600484015460608085019190915260058501546080850152600685015460a0850152600785015460c0850152600885015460e08501526009850154610100850152600a8501546101208501528151908101918290526101409093019291600b85019182845b815481526020019060010190808311611d31575050509183525050600e919091015460ff16151560209182015260018501546040805163b551c37360e01b8152600481018a905290519394506000936001600160a01b039092169263b551c37392602480840193829003018186803b158015611dac57600080fd5b505afa158015611dc0573d6000803e3d6000fd5b505050506040513d6020811015611dd657600080fd5b5051835160028601546000908152600f87016020526040812054929350606484049091029181908190841015611e835760036001890154600160a01b900460ff166006811115611e2257fe5b1415611e315760019250611e61565b60046001890154600160a01b900460ff166006811115611e4d57fe5b1415611e5c5760039250611e61565b600592505b6001880180546002919060ff60a01b1916600160a01b835b02179055506120ca565b60036001890154600160a01b900460ff166006811115611e9f57fe5b1415611f21576020870151600b890154420310611eda5760018801805460ff60a01b1916600160a01b17905560028089018190559250611f21565b611eec88600501548960000154610645565b905080611ef88b611b2f565b1115611f215760018801805460ff60a01b1916600160a21b17905542600d890155600988018190555b60046001890154600160a01b900460ff166006811115611f3d57fe5b14156120ca57611f5588600501548960000154610645565b6060880151909150600b89016002015442031061203b5780611f768b611b2f565b111561201a5787546000908152600260205260409020546110001115612015576001888101805460ff60a01b1916600560a01b17905542600c8a01558854600090815260026020818152604080842080549095019094558b54835260048152838320548282528484205492845260128d0190915292909120549193509083900381611ffd57fe5b89546000908152600460205260409020919005830190555b612036565b6001880180546003919060ff60a01b1916600160a01b83611e79565b6120ca565b60006120468b611b2f565b60098a015490915061205e908363ffffffff611a3a16565b811161207e5760018901805460ff60a01b1916600360a01b1790556120c8565b80896009015411156120c857600989018290556040805183815290518c917fad767d61af51c7895fa3cc0497dde01afb610c74e55ee4d8a71fa5e3ee136d54919081900360200190a25b505b60056001890154600160a01b900460ff1660068111156120e657fe5b148061210b575060066001890154600160a01b900460ff16600681111561210957fe5b145b1561213b576004880154600c89015442031061213b5760018801805460ff60a01b1916600160a11b179055600492505b600083600581111561214957fe5b1461236757600483600581111561215c57fe5b14806121735750600583600581111561217157fe5b145b1561222e57855160009081526002602052604090205461219a90600163ffffffff611aed16565b865160009081526002602052604080822092909255875181522054806121d057885460009081526004602052604081205561222c565b88546000908152600460209081526040808320546002845260128d0190925290912054909350819061220f906113a8866001850163ffffffff611a5216565b8161221657fe5b8a54600090815260046020526040902091900490555b505b87546000908152600360209081526040918290205460028b0154835190815291820188905282516001600160a01b03909116928d927f37471b9c9d295ffb1309ad070b8964700bfb7b555e8e8292d0b6cbc7dba35d10929081900390910190a3897f46a713b994c752c68fbefa9048bec9a0010cc7d933ad95a3c3dbb25931a167e784604051808260058111156122c157fe5b60ff16815260200191505060405180910390a26001880154600289015460408051639d4c162d60e01b8152600481018e90526024810192909252516001600160a01b0390921691639d4c162d916044808201926020929091908290030181600087803b15801561233057600080fd5b505af1158015612344573d6000803e3d6000fd5b505050506040513d602081101561235a57600080fd5b5050600688015460078901555b6001880154600160a01b900460ff16600681111561238157fe5b8660400151600681111561239157fe5b146123ee57897f21aca7f0285ccddeca2935074d3e36b5ab8fea0327f84cbbf12cf1b6d1a749f98960010160149054906101000a900460ff16604051808260068111156123da57fe5b60ff16815260200191505060405180910390a25b60008360058111156123fc57fe5b14159a9950505050505050505050565b600082820183811015611a4b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008282028284828161247557fe5b04146124c0576040805162461bcd60e51b81526020600482015260156024820152745265616c4d617468206d756c206f766572666c6f7760581b604482015290519081900360640190fd5b60281c9392505050565b600081836125565760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561251b578181015183820152602001612503565b50505050905090810190601f1680156125485780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161256257fe5b0495945050505050565b600081848411156125be5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561251b578181015183820152602001612503565b505050900390565b600081650100000000008402816125d957fe5b049392505050565b604080516101c081018252600080825260208201819052909182019081526020016000815260200160006001600160a01b0316815260200160008152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001612655612662565b8152600060209091015290565b60405180606001604052806003906020820280368337509192915050565b604051806101a0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152509056fe50726f706f73616c2073686f756c64206265204578656375746564206f722045787069726564496e5175657565626f6f73746564566f7465506572696f644c696d6974203e3d207175696574456e64696e67506572696f643530203c3d20717565756564566f7465526571756972656450657263656e74616765203c3d20313030536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7770726f706f73616c20737461746520696e206e6f7420426f6f73746564206e6f72205175696574456e64696e67506572696f64a2646970667358221220a04201ad1f9d77ef40294f52ae451cb689a88d2d330cc6ba2d058c9832a6524d64736f6c634300060a0033"
}