{
  "_format": "hh-sol-artifact-1",
  "contractName": "ConvexRewarder",
  "sourceName": "contracts/ConvexRewarder.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "stakingToken_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "rewardToken_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "rewardManager_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "tattooMasterChef_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "convexMasterChef_",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "chefPid_",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "reward",
          "type": "uint256"
        }
      ],
      "name": "RewardAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "reward",
          "type": "uint256"
        }
      ],
      "name": "RewardPaid",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Staked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Withdrawn",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_reward",
          "type": "address"
        }
      ],
      "name": "addExtraReward",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "chefPid",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "clearExtraRewards",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "convexMasterChef",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentRewards",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "duration",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "earned",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "extraRewards",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "extraRewardsLength",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getReward",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "_claimExtras",
          "type": "bool"
        }
      ],
      "name": "getReward",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "harvestFromMasterChef",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "dummyToken",
          "type": "address"
        }
      ],
      "name": "init",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isInit",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "lastTimeRewardApplicable",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "lastUpdateTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "localBalanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "pid",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tattooAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "newLpAmount",
          "type": "uint256"
        }
      ],
      "name": "onTattooReward",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "pid",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tattooAmount",
          "type": "uint256"
        }
      ],
      "name": "pendingTokens",
      "outputs": [
        {
          "internalType": "contract IERC20[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "periodFinish",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "previousRewardDebt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rewardManager",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rewardPerToken",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rewardPerTokenStored",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rewardRate",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rewardToken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "rewards",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "stake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "stakeAll",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_for",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "stakeFor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "stakingToken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "tattooBalanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "tattooMasterChef",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "tattooPid",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "userRewardPerTokenPaid",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "claim",
          "type": "bool"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "claim",
          "type": "bool"
        }
      ],
      "name": "withdrawAll",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6101406040526000808055600181905560048190556007556008805460ff1916905534801561002d57600080fd5b50604051612733380380612733833981810160405260c081101561005057600080fd5b5080516020820151604083015160608085015160808087015160a0978801516001600160601b031997851b881690985294831b8616905291811b841660c05290811b831660e0521b16610100526101205260805160601c60a05160601c60c05160601c60e05160601c6101005160601c610120516125e0610153600039806109805280610edb528061135e52806120995250806108de52806109b75280610f11528061187952806120d2525080610e5652806119015250806106f052806107725280610f83525080610bec5280610dd8528061126352806112b45280611510528061193552508061112b52806116345280611bee5280611e4852506125e06000f3fe608060405234801561001057600080fd5b506004361061023c5760003560e01c80637050ccd91161013b578063b145a5b8116100b8578063df136d651161007c578063df136d65146105f0578063e0d68925146105f8578063e24c761314610600578063ebe2b12b14610642578063f7c618c11461064a5761023c565b8063b145a5b8146104f1578063c8f33c911461050d578063cd3daf9d14610515578063d55a23f41461051d578063d63b3c49146105255761023c565b80638b876347116100ff5780638b876347146104965780638dcb4061146104bc578063901a7d53146104c457806391817d74146104cc578063a694fc3a146104d45761023c565b80637050ccd91461042a57806370a082311461045857806372f702f31461047e5780637b0a47ee1461048657806380faa57d1461048e5761023c565b80632ee40908116101c957806346c652761161018d57806346c65276146103a8578063473be90e146103b05780634f70b15a146103d65780635e43c47b146103de5780636762805c146104045761023c565b80632ee409081461032a57806338d0743614610356578063395596dd1461037b5780633d18b9121461038357806340c354461461038b5761023c565b80630fb5a6b4116102105780630fb5a6b4146102cd57806318160ddd146102d557806319ab453c146102dd5780631c1c6fe5146103035780632ae63c5b146103225761023c565b80628cc262146102415780630569d388146102795780630700037d146102835780630f4ef8a6146102a9575b600080fd5b6102676004803603602081101561025757600080fd5b50356001600160a01b0316610652565b60408051918252519081900360200190f35b6102816106e5565b005b6102676004803603602081101561029957600080fd5b50356001600160a01b031661075e565b6102b1610770565b604080516001600160a01b039092168252519081900360200190f35b610267610794565b61026761079b565b610281600480360360208110156102f357600080fd5b50356001600160a01b03166107a2565b6102816004803603602081101561031957600080fd5b50351515610a22565b610267610a3f565b6102816004803603604081101561034057600080fd5b506001600160a01b038135169060200135610a45565b6102816004803603604081101561036c57600080fd5b50803590602001351515610c50565b6102b1610e54565b610281610e78565b6102b1600480360360208110156103a157600080fd5b5035610e83565b610267610eaa565b610267600480360360208110156103c657600080fd5b50356001600160a01b0316610eb0565b610281610ecb565b610281600480360360208110156103f457600080fd5b50356001600160a01b0316610f78565b6102676004803603602081101561041a57600080fd5b50356001600160a01b0316611082565b6102816004803603604081101561044057600080fd5b506001600160a01b038135169060200135151561109d565b6102676004803603602081101561046e57600080fd5b50356001600160a01b0316611234565b6102b1611261565b610267611285565b61026761128b565b610267600480360360208110156104ac57600080fd5b50356001600160a01b031661129e565b6102816112b0565b610267611356565b61026761135c565b610281600480360360208110156104ea57600080fd5b5035611380565b6104f961157b565b604080519115158252519081900360200190f35b610267611584565b61026761158a565b6102676115dc565b6105576004803603606081101561053b57600080fd5b508035906001600160a01b0360208201351690604001356115e2565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561059b578181015183820152602001610583565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156105da5781810151838201526020016105c2565b5050505090500194505050505060405180910390f35b610267611871565b6102b1611877565b610281600480360360a081101561061657600080fd5b508035906001600160a01b0360208201358116916040810135909116906060810135906080013561189b565b610267611be6565b6102b1611bec565b6001600160a01b0381166000908152600c6020908152604080832054600b9092528220546106df91906106d990670de0b6b3a7640000906106d39061069f9061069961158a565b90611c10565b6001600160a01b0388166000908152600a60209081526040808320546009909252909120546106cd91611c6d565b90611cce565b90611d27565b90611c6d565b92915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610750576040805162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b604482015290519081900360640190fd5b61075c600d6000612507565b565b600c6020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6206978081565b6005545b90565b60085460ff16156107e9576040805162461bcd60e51b815260206004820152600c60248201526b185b1c9958591e481a5b9a5d60a21b604482015290519081900360640190fd5b6008805460ff19166001179055604080516370a0823160e01b815233600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561084057600080fd5b505afa158015610854573d6000803e3d6000fd5b505050506040513d602081101561086a57600080fd5b50519050806108b8576040805162461bcd60e51b8152602060048201526015602482015274042616c616e6365206d75737420657863656564203605c1b604482015290519081900360640190fd5b6108cd6001600160a01b038316333084611d8e565b816001600160a01b031663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561094457600080fd5b505af1158015610958573d6000803e3d6000fd5b505050506040513d602081101561096e57600080fd5b505060408051631c57762b60e31b81527f000000000000000000000000000000000000000000000000000000000000000060048201526024810183905290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163e2bbb15891604480830192600092919082900301818387803b1580156109fe57600080fd5b505af1158015610a12573d6000803e3d6000fd5b50505050610a1e611de8565b5050565b33600090815260096020526040902054610a3c9082610c50565b50565b60065481565b81610a4e61158a565b600355610a5961128b565b6002556001600160a01b03811615610aa057610a7481610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b60008211610af5576040805162461bcd60e51b815260206004820152601b60248201527f526577617264506f6f6c203a2043616e6e6f74207374616b6520300000000000604482015290519081900360640190fd5b610afd611f9a565b600d5460005b81811015610b9557600d8181548110610b1857fe5b6000918252602082200154604080516356e4bb9760e11b81526001600160a01b038981166004830152602482018990529151919092169263adc9772e926044808201939182900301818387803b158015610b7157600080fd5b505af1158015610b85573d6000803e3d6000fd5b505060019092019150610b039050565b50600554610ba39084611c6d565b6005556001600160a01b038416600090815260096020526040902054610bc99084611c6d565b6001600160a01b03808616600090815260096020526040902091909155610c14907f000000000000000000000000000000000000000000000000000000000000000016333086611d8e565b60408051848152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a250505050565b33610c5961158a565b600355610c6461128b565b6002556001600160a01b03811615610cab57610c7f81610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b60008311610d00576040805162461bcd60e51b815260206004820152601e60248201527f526577617264506f6f6c203a2043616e6e6f7420776974686472617720300000604482015290519081900360640190fd5b600d5460005b81811015610d9457600d8181548110610d1b57fe5b60009182526020822001546040805163f3fef3a360e01b81523360048201526024810189905290516001600160a01b039092169263f3fef3a39260448084019382900301818387803b158015610d7057600080fd5b505af1158015610d84573d6000803e3d6000fd5b505060019092019150610d069050565b50600554610da29085611c10565b60055533600090815260096020526040902054610dbf9085611c10565b33600081815260096020526040902091909155610e07907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169086611fc7565b60408051858152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a28215610e4e57610e4e33600161109d565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61075c33600161109d565b600d8181548110610e9057fe5b6000918252602090912001546001600160a01b0316905081565b60075481565b6001600160a01b03166000908152600a602052604090205490565b60408051636eeaf0d960e11b81527f0000000000000000000000000000000000000000000000000000000000000000600482015230602482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163ddd5e1b291604480830192600092919082900301818387803b158015610f5857600080fd5b505af1158015610f6c573d6000803e3d6000fd5b5050505061075c61201e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610fe3576040805162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b604482015290519081900360640190fd5b6001600160a01b038116611030576040805162461bcd60e51b815260206004820152600f60248201526e217265776172642073657474696e6760881b604482015290519081900360640190fd5b600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526009602052604090205490565b816110a661158a565b6003556110b161128b565b6002556001600160a01b038116156110f8576110cc81610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b600061110384610652565b90508015611192576001600160a01b038085166000908152600c6020526040812055611152907f0000000000000000000000000000000000000000000000000000000000000000168583611fc7565b6040805182815290516001600160a01b038616917fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486919081900360200190a25b821561122c57600d5460005b8181101561122957600d81815481106111b357fe5b600091825260208220015460408051630c00007b60e41b81526001600160a01b038a811660048301529151919092169263c00007b0926024808201939182900301818387803b15801561120557600080fd5b505af1158015611219573d6000803e3d6000fd5b50506001909201915061119e9050565b50505b610e4e611f9a565b6001600160a01b0381166000908152600a602090815260408083205460099092528220546106df91611c6d565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b600061129942600054612223565b905090565b600b6020526000908152604090205481565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561131f57600080fd5b505afa158015611333573d6000803e3d6000fd5b505050506040513d602081101561134957600080fd5b50519050610a3c81611380565b60045481565b7f000000000000000000000000000000000000000000000000000000000000000081565b3361138961158a565b60035561139461128b565b6002556001600160a01b038116156113db576113af81610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b60008211611430576040805162461bcd60e51b815260206004820152601b60248201527f526577617264506f6f6c203a2043616e6e6f74207374616b6520300000000000604482015290519081900360640190fd5b611438611f9a565b600d5460005b818110156114cc57600d818154811061145357fe5b6000918252602082200154604080516356e4bb9760e11b81523360048201526024810188905290516001600160a01b039092169263adc9772e9260448084019382900301818387803b1580156114a857600080fd5b505af11580156114bc573d6000803e3d6000fd5b50506001909201915061143e9050565b506005546114da9084611c6d565b600555336000908152600960205260409020546114f79084611c6d565b33600081815260096020526040902091909155611540907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316903086611d8e565b60408051848152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a2505050565b60085460ff1681565b60025481565b60008061159561079b565b9050806115a657505060035461079f565b6115d66115cd826106d3670de0b6b3a76400006106cd6001546106cd60025461069961128b565b60035490611c6d565b91505090565b600d5490565b600d546060908190816001820167ffffffffffffffff8111801561160557600080fd5b5060405190808252806020026020018201604052801561162f578160200160208202803683370190505b5090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061166057fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060005b8281101561173e57600d818154811061169857fe5b600091825260209182902001546040805163f7c618c160e01b815290516001600160a01b039092169263f7c618c192600480840193829003018186803b1580156116e157600080fd5b505afa1580156116f5573d6000803e3d6000fd5b505050506040513d602081101561170b57600080fd5b5051825183906001840190811061171e57fe5b6001600160a01b0390921660209283029190910190910152600101611683565b5060608260010167ffffffffffffffff8111801561175b57600080fd5b50604051908082528060200260200182016040528015611785578160200160208202803683370190505b50905061179187610652565b8160008151811061179e57fe5b60200260200101818152505060005b8381101561186357600d81815481106117c257fe5b60009182526020918290200154604080516246613160e11b81526001600160a01b038c8116600483015291519190921692628cc2629260248082019391829003018186803b15801561181357600080fd5b505afa158015611827573d6000803e3d6000fd5b505050506040513d602081101561183d57600080fd5b5051825183906001840190811061185057fe5b60209081029190910101526001016117ad565b509097909650945050505050565b60035481565b7f000000000000000000000000000000000000000000000000000000000000000081565b836118a461158a565b6003556118af61128b565b6002556001600160a01b038116156118f6576118ca81610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461192b57600080fd5b600654806119ea577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316336001600160a01b03166378ed5d1f896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156119a157600080fd5b505afa1580156119b5573d6000803e3d6000fd5b505050506040513d60208110156119cb57600080fd5b50516001600160a01b0316146119e057600080fd5b60068790556119f6565b8087146119f657600080fd5b8315611a0757611a0786600161109d565b6001600160a01b0386166000908152600a602052604090205480841115611b02576000611a348583611c10565b600d5490915060005b81811015611acf57600d8181548110611a5257fe5b6000918252602082200154604080516356e4bb9760e11b81526001600160a01b038e81166004830152602482018890529151919092169263adc9772e926044808201939182900301818387803b158015611aab57600080fd5b505af1158015611abf573d6000803e3d6000fd5b505060019092019150611a3d9050565b50600554611add9083611c6d565b60055550506001600160a01b0387166000908152600a60205260409020849055611bdc565b80841015611bdc576000611b168286611c10565b600d5490915060005b81811015611bad57600d8181548110611b3457fe5b60009182526020822001546040805163f3fef3a360e01b81523360048201526024810187905290516001600160a01b039092169263f3fef3a39260448084019382900301818387803b158015611b8957600080fd5b505af1158015611b9d573d6000803e3d6000fd5b505060019092019150611b1f9050565b50600554611bbb9083611c10565b60055550506001600160a01b0387166000908152600a602052604090208490555b5050505050505050565b60005481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600082821115611c67576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015611cc7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082611cdd575060006106df565b82820282848281611cea57fe5b0414611cc75760405162461bcd60e51b81526004018080602001828103825260218152602001806125606021913960400191505060405180910390fd5b6000808211611d7d576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381611d8657fe5b049392505050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610e4e908590612239565b6000611df261158a565b600355611dfd61128b565b6002556001600160a01b03811615611e4457611e1881610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611eb357600080fd5b505afa158015611ec7573d6000803e3d6000fd5b505050506040513d6020811015611edd57600080fd5b50516000549091504210611f0057611ef88162069780611d27565b600155611f48565b60008054611f0e9042611c10565b90506000611f2760015483611cce90919063ffffffff16565b9050611f338382611c6d565b9250611f428362069780611d27565b60015550505b6004819055426002819055611f609062069780611c6d565b6000556040805182815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9181900360200190a15050565b60008054118015611fba5750600054611fb69062015180611c10565b4210155b1561075c5761075c610ecb565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612019908490612239565b505050565b600061202861158a565b60035561203361128b565b6002556001600160a01b0381161561207a5761204e81610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b60085460ff1661208957610a3c565b604080516393f1a40b60e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015230602482015281516000926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926393f1a40b9260448083019392829003018186803b15801561211457600080fd5b505afa158015612128573d6000803e3d6000fd5b505050506040513d604081101561213e57600080fd5b5060200151600754909150600090612157908390611c10565b600783905590508061216a575050610a3c565b6000544210612188576121808162069780611d27565b6001556121d0565b600080546121969042611c10565b905060006121af60015483611cce90919063ffffffff16565b90506121bb8382611c6d565b92506121ca8362069780611d27565b60015550505b60048190554260028190556121e89062069780611c6d565b6000556040805182815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9181900360200190a1505050565b60008183106122325781611cc7565b5090919050565b606061228e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166122ea9092919063ffffffff16565b805190915015612019578080602001905160208110156122ad57600080fd5b50516120195760405162461bcd60e51b815260040180806020018281038252602a815260200180612581602a913960400191505060405180910390fd5b60606122f98484600085612301565b949350505050565b6060824710156123425760405162461bcd60e51b815260040180806020018281038252602681526020018061253a6026913960400191505060405180910390fd5b61234b8561245d565b61239c576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106123db5780518252601f1990920191602091820191016123bc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461243d576040519150601f19603f3d011682016040523d82523d6000602084013e612442565b606091505b5091509150612452828286612463565b979650505050505050565b3b151590565b60608315612472575081611cc7565b8251156124825782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124cc5781810151838201526020016124b4565b50505050905090810190601f1680156124f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5080546000825590600052602060002090810190610a3c91905b808211156125355760008155600101612521565b509056fe416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220798ef9ad8b64ea9bc6e803908594f171ca7f8b85c093681d96e336a8fd3fd6f564736f6c634300060c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061023c5760003560e01c80637050ccd91161013b578063b145a5b8116100b8578063df136d651161007c578063df136d65146105f0578063e0d68925146105f8578063e24c761314610600578063ebe2b12b14610642578063f7c618c11461064a5761023c565b8063b145a5b8146104f1578063c8f33c911461050d578063cd3daf9d14610515578063d55a23f41461051d578063d63b3c49146105255761023c565b80638b876347116100ff5780638b876347146104965780638dcb4061146104bc578063901a7d53146104c457806391817d74146104cc578063a694fc3a146104d45761023c565b80637050ccd91461042a57806370a082311461045857806372f702f31461047e5780637b0a47ee1461048657806380faa57d1461048e5761023c565b80632ee40908116101c957806346c652761161018d57806346c65276146103a8578063473be90e146103b05780634f70b15a146103d65780635e43c47b146103de5780636762805c146104045761023c565b80632ee409081461032a57806338d0743614610356578063395596dd1461037b5780633d18b9121461038357806340c354461461038b5761023c565b80630fb5a6b4116102105780630fb5a6b4146102cd57806318160ddd146102d557806319ab453c146102dd5780631c1c6fe5146103035780632ae63c5b146103225761023c565b80628cc262146102415780630569d388146102795780630700037d146102835780630f4ef8a6146102a9575b600080fd5b6102676004803603602081101561025757600080fd5b50356001600160a01b0316610652565b60408051918252519081900360200190f35b6102816106e5565b005b6102676004803603602081101561029957600080fd5b50356001600160a01b031661075e565b6102b1610770565b604080516001600160a01b039092168252519081900360200190f35b610267610794565b61026761079b565b610281600480360360208110156102f357600080fd5b50356001600160a01b03166107a2565b6102816004803603602081101561031957600080fd5b50351515610a22565b610267610a3f565b6102816004803603604081101561034057600080fd5b506001600160a01b038135169060200135610a45565b6102816004803603604081101561036c57600080fd5b50803590602001351515610c50565b6102b1610e54565b610281610e78565b6102b1600480360360208110156103a157600080fd5b5035610e83565b610267610eaa565b610267600480360360208110156103c657600080fd5b50356001600160a01b0316610eb0565b610281610ecb565b610281600480360360208110156103f457600080fd5b50356001600160a01b0316610f78565b6102676004803603602081101561041a57600080fd5b50356001600160a01b0316611082565b6102816004803603604081101561044057600080fd5b506001600160a01b038135169060200135151561109d565b6102676004803603602081101561046e57600080fd5b50356001600160a01b0316611234565b6102b1611261565b610267611285565b61026761128b565b610267600480360360208110156104ac57600080fd5b50356001600160a01b031661129e565b6102816112b0565b610267611356565b61026761135c565b610281600480360360208110156104ea57600080fd5b5035611380565b6104f961157b565b604080519115158252519081900360200190f35b610267611584565b61026761158a565b6102676115dc565b6105576004803603606081101561053b57600080fd5b508035906001600160a01b0360208201351690604001356115e2565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561059b578181015183820152602001610583565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156105da5781810151838201526020016105c2565b5050505090500194505050505060405180910390f35b610267611871565b6102b1611877565b610281600480360360a081101561061657600080fd5b508035906001600160a01b0360208201358116916040810135909116906060810135906080013561189b565b610267611be6565b6102b1611bec565b6001600160a01b0381166000908152600c6020908152604080832054600b9092528220546106df91906106d990670de0b6b3a7640000906106d39061069f9061069961158a565b90611c10565b6001600160a01b0388166000908152600a60209081526040808320546009909252909120546106cd91611c6d565b90611cce565b90611d27565b90611c6d565b92915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610750576040805162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b604482015290519081900360640190fd5b61075c600d6000612507565b565b600c6020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6206978081565b6005545b90565b60085460ff16156107e9576040805162461bcd60e51b815260206004820152600c60248201526b185b1c9958591e481a5b9a5d60a21b604482015290519081900360640190fd5b6008805460ff19166001179055604080516370a0823160e01b815233600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561084057600080fd5b505afa158015610854573d6000803e3d6000fd5b505050506040513d602081101561086a57600080fd5b50519050806108b8576040805162461bcd60e51b8152602060048201526015602482015274042616c616e6365206d75737420657863656564203605c1b604482015290519081900360640190fd5b6108cd6001600160a01b038316333084611d8e565b816001600160a01b031663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561094457600080fd5b505af1158015610958573d6000803e3d6000fd5b505050506040513d602081101561096e57600080fd5b505060408051631c57762b60e31b81527f000000000000000000000000000000000000000000000000000000000000000060048201526024810183905290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163e2bbb15891604480830192600092919082900301818387803b1580156109fe57600080fd5b505af1158015610a12573d6000803e3d6000fd5b50505050610a1e611de8565b5050565b33600090815260096020526040902054610a3c9082610c50565b50565b60065481565b81610a4e61158a565b600355610a5961128b565b6002556001600160a01b03811615610aa057610a7481610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b60008211610af5576040805162461bcd60e51b815260206004820152601b60248201527f526577617264506f6f6c203a2043616e6e6f74207374616b6520300000000000604482015290519081900360640190fd5b610afd611f9a565b600d5460005b81811015610b9557600d8181548110610b1857fe5b6000918252602082200154604080516356e4bb9760e11b81526001600160a01b038981166004830152602482018990529151919092169263adc9772e926044808201939182900301818387803b158015610b7157600080fd5b505af1158015610b85573d6000803e3d6000fd5b505060019092019150610b039050565b50600554610ba39084611c6d565b6005556001600160a01b038416600090815260096020526040902054610bc99084611c6d565b6001600160a01b03808616600090815260096020526040902091909155610c14907f000000000000000000000000000000000000000000000000000000000000000016333086611d8e565b60408051848152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a250505050565b33610c5961158a565b600355610c6461128b565b6002556001600160a01b03811615610cab57610c7f81610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b60008311610d00576040805162461bcd60e51b815260206004820152601e60248201527f526577617264506f6f6c203a2043616e6e6f7420776974686472617720300000604482015290519081900360640190fd5b600d5460005b81811015610d9457600d8181548110610d1b57fe5b60009182526020822001546040805163f3fef3a360e01b81523360048201526024810189905290516001600160a01b039092169263f3fef3a39260448084019382900301818387803b158015610d7057600080fd5b505af1158015610d84573d6000803e3d6000fd5b505060019092019150610d069050565b50600554610da29085611c10565b60055533600090815260096020526040902054610dbf9085611c10565b33600081815260096020526040902091909155610e07907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169086611fc7565b60408051858152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a28215610e4e57610e4e33600161109d565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61075c33600161109d565b600d8181548110610e9057fe5b6000918252602090912001546001600160a01b0316905081565b60075481565b6001600160a01b03166000908152600a602052604090205490565b60408051636eeaf0d960e11b81527f0000000000000000000000000000000000000000000000000000000000000000600482015230602482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163ddd5e1b291604480830192600092919082900301818387803b158015610f5857600080fd5b505af1158015610f6c573d6000803e3d6000fd5b5050505061075c61201e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610fe3576040805162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b604482015290519081900360640190fd5b6001600160a01b038116611030576040805162461bcd60e51b815260206004820152600f60248201526e217265776172642073657474696e6760881b604482015290519081900360640190fd5b600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526009602052604090205490565b816110a661158a565b6003556110b161128b565b6002556001600160a01b038116156110f8576110cc81610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b600061110384610652565b90508015611192576001600160a01b038085166000908152600c6020526040812055611152907f0000000000000000000000000000000000000000000000000000000000000000168583611fc7565b6040805182815290516001600160a01b038616917fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486919081900360200190a25b821561122c57600d5460005b8181101561122957600d81815481106111b357fe5b600091825260208220015460408051630c00007b60e41b81526001600160a01b038a811660048301529151919092169263c00007b0926024808201939182900301818387803b15801561120557600080fd5b505af1158015611219573d6000803e3d6000fd5b50506001909201915061119e9050565b50505b610e4e611f9a565b6001600160a01b0381166000908152600a602090815260408083205460099092528220546106df91611c6d565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b600061129942600054612223565b905090565b600b6020526000908152604090205481565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561131f57600080fd5b505afa158015611333573d6000803e3d6000fd5b505050506040513d602081101561134957600080fd5b50519050610a3c81611380565b60045481565b7f000000000000000000000000000000000000000000000000000000000000000081565b3361138961158a565b60035561139461128b565b6002556001600160a01b038116156113db576113af81610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b60008211611430576040805162461bcd60e51b815260206004820152601b60248201527f526577617264506f6f6c203a2043616e6e6f74207374616b6520300000000000604482015290519081900360640190fd5b611438611f9a565b600d5460005b818110156114cc57600d818154811061145357fe5b6000918252602082200154604080516356e4bb9760e11b81523360048201526024810188905290516001600160a01b039092169263adc9772e9260448084019382900301818387803b1580156114a857600080fd5b505af11580156114bc573d6000803e3d6000fd5b50506001909201915061143e9050565b506005546114da9084611c6d565b600555336000908152600960205260409020546114f79084611c6d565b33600081815260096020526040902091909155611540907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316903086611d8e565b60408051848152905133917f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d919081900360200190a2505050565b60085460ff1681565b60025481565b60008061159561079b565b9050806115a657505060035461079f565b6115d66115cd826106d3670de0b6b3a76400006106cd6001546106cd60025461069961128b565b60035490611c6d565b91505090565b600d5490565b600d546060908190816001820167ffffffffffffffff8111801561160557600080fd5b5060405190808252806020026020018201604052801561162f578160200160208202803683370190505b5090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061166057fe5b60200260200101906001600160a01b031690816001600160a01b03168152505060005b8281101561173e57600d818154811061169857fe5b600091825260209182902001546040805163f7c618c160e01b815290516001600160a01b039092169263f7c618c192600480840193829003018186803b1580156116e157600080fd5b505afa1580156116f5573d6000803e3d6000fd5b505050506040513d602081101561170b57600080fd5b5051825183906001840190811061171e57fe5b6001600160a01b0390921660209283029190910190910152600101611683565b5060608260010167ffffffffffffffff8111801561175b57600080fd5b50604051908082528060200260200182016040528015611785578160200160208202803683370190505b50905061179187610652565b8160008151811061179e57fe5b60200260200101818152505060005b8381101561186357600d81815481106117c257fe5b60009182526020918290200154604080516246613160e11b81526001600160a01b038c8116600483015291519190921692628cc2629260248082019391829003018186803b15801561181357600080fd5b505afa158015611827573d6000803e3d6000fd5b505050506040513d602081101561183d57600080fd5b5051825183906001840190811061185057fe5b60209081029190910101526001016117ad565b509097909650945050505050565b60035481565b7f000000000000000000000000000000000000000000000000000000000000000081565b836118a461158a565b6003556118af61128b565b6002556001600160a01b038116156118f6576118ca81610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461192b57600080fd5b600654806119ea577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316336001600160a01b03166378ed5d1f896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156119a157600080fd5b505afa1580156119b5573d6000803e3d6000fd5b505050506040513d60208110156119cb57600080fd5b50516001600160a01b0316146119e057600080fd5b60068790556119f6565b8087146119f657600080fd5b8315611a0757611a0786600161109d565b6001600160a01b0386166000908152600a602052604090205480841115611b02576000611a348583611c10565b600d5490915060005b81811015611acf57600d8181548110611a5257fe5b6000918252602082200154604080516356e4bb9760e11b81526001600160a01b038e81166004830152602482018890529151919092169263adc9772e926044808201939182900301818387803b158015611aab57600080fd5b505af1158015611abf573d6000803e3d6000fd5b505060019092019150611a3d9050565b50600554611add9083611c6d565b60055550506001600160a01b0387166000908152600a60205260409020849055611bdc565b80841015611bdc576000611b168286611c10565b600d5490915060005b81811015611bad57600d8181548110611b3457fe5b60009182526020822001546040805163f3fef3a360e01b81523360048201526024810187905290516001600160a01b039092169263f3fef3a39260448084019382900301818387803b158015611b8957600080fd5b505af1158015611b9d573d6000803e3d6000fd5b505060019092019150611b1f9050565b50600554611bbb9083611c10565b60055550506001600160a01b0387166000908152600a602052604090208490555b5050505050505050565b60005481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600082821115611c67576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015611cc7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082611cdd575060006106df565b82820282848281611cea57fe5b0414611cc75760405162461bcd60e51b81526004018080602001828103825260218152602001806125606021913960400191505060405180910390fd5b6000808211611d7d576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381611d8657fe5b049392505050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610e4e908590612239565b6000611df261158a565b600355611dfd61128b565b6002556001600160a01b03811615611e4457611e1881610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611eb357600080fd5b505afa158015611ec7573d6000803e3d6000fd5b505050506040513d6020811015611edd57600080fd5b50516000549091504210611f0057611ef88162069780611d27565b600155611f48565b60008054611f0e9042611c10565b90506000611f2760015483611cce90919063ffffffff16565b9050611f338382611c6d565b9250611f428362069780611d27565b60015550505b6004819055426002819055611f609062069780611c6d565b6000556040805182815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9181900360200190a15050565b60008054118015611fba5750600054611fb69062015180611c10565b4210155b1561075c5761075c610ecb565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612019908490612239565b505050565b600061202861158a565b60035561203361128b565b6002556001600160a01b0381161561207a5761204e81610652565b6001600160a01b0382166000908152600c6020908152604080832093909355600354600b909152919020555b60085460ff1661208957610a3c565b604080516393f1a40b60e01b81527f0000000000000000000000000000000000000000000000000000000000000000600482015230602482015281516000926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016926393f1a40b9260448083019392829003018186803b15801561211457600080fd5b505afa158015612128573d6000803e3d6000fd5b505050506040513d604081101561213e57600080fd5b5060200151600754909150600090612157908390611c10565b600783905590508061216a575050610a3c565b6000544210612188576121808162069780611d27565b6001556121d0565b600080546121969042611c10565b905060006121af60015483611cce90919063ffffffff16565b90506121bb8382611c6d565b92506121ca8362069780611d27565b60015550505b60048190554260028190556121e89062069780611c6d565b6000556040805182815290517fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9181900360200190a1505050565b60008183106122325781611cc7565b5090919050565b606061228e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166122ea9092919063ffffffff16565b805190915015612019578080602001905160208110156122ad57600080fd5b50516120195760405162461bcd60e51b815260040180806020018281038252602a815260200180612581602a913960400191505060405180910390fd5b60606122f98484600085612301565b949350505050565b6060824710156123425760405162461bcd60e51b815260040180806020018281038252602681526020018061253a6026913960400191505060405180910390fd5b61234b8561245d565b61239c576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106123db5780518252601f1990920191602091820191016123bc565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461243d576040519150601f19603f3d011682016040523d82523d6000602084013e612442565b606091505b5091509150612452828286612463565b979650505050505050565b3b151590565b60608315612472575081611cc7565b8251156124825782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124cc5781810151838201526020016124b4565b50505050905090810190601f1680156124f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5080546000825590600052602060002090810190610a3c91905b808211156125355760008155600101612521565b509056fe416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220798ef9ad8b64ea9bc6e803908594f171ca7f8b85c093681d96e336a8fd3fd6f564736f6c634300060c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
