{
  "_format": "hh-sol-artifact-1",
  "contractName": "PerpV2BaseToken",
  "sourceName": "contracts/BaseToken.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "WhitelistAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "WhitelistRemoved",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "addWhitelist",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "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": "candidate",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "interval",
          "type": "uint256"
        }
      ],
      "name": "getIndexPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getPriceFeed",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "nameArg",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "symbolArg",
          "type": "string"
        },
        {
          "internalType": "address",
          "name": "priceFeedArg",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "isInWhitelist",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "mintMaximumTo",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "removeWhitelist",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "setOwner",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "updateOwner",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50611c2e806100206000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063a457c2d71161007c578063a457c2d7146104d8578063a9059cbb14610504578063bc5920ba14610530578063dd62ed3e14610538578063f52e308e14610566578063f80f5dd51461058c5761014d565b806370a082311461046c578063715018a61461049257806378c8cda71461049a5780638da5cb5b146104c057806395d89b41146104c85780639e87a5cd146104d05761014d565b806313af40351161011557806313af40351461039a57806318160ddd146103c057806323b872dd146103c8578063313ce567146103fe578063395093511461041c5780636c8381f8146104485761014d565b806306fdde0314610152578063077f224a146101cf578063095ea7b31461030557806309fd821214610345578063120806471461036b575b600080fd5b61015a6105b2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610303600480360360608110156101e557600080fd5b810190602081018135600160201b8111156101ff57600080fd5b82018360208201111561021157600080fd5b803590602001918460018302840111600160201b8311171561023257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561028457600080fd5b82018360208201111561029657600080fd5b803590602001918460018302840111600160201b831117156102b757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b031691506106489050565b005b6103316004803603604081101561031b57600080fd5b506001600160a01b0381351690602001356107da565b604080519115158252519081900360200190f35b6103316004803603602081101561035b57600080fd5b50356001600160a01b03166107f8565b6103886004803603602081101561038157600080fd5b5035610816565b60408051918252519081900360200190f35b610303600480360360208110156103b057600080fd5b50356001600160a01b03166108a5565b610388610a00565b610331600480360360608110156103de57600080fd5b506001600160a01b03813581169160208101359091169060400135610a06565b610406610a8d565b6040805160ff9092168252519081900360200190f35b6103316004803603604081101561043257600080fd5b506001600160a01b038135169060200135610a96565b610450610ae4565b604080516001600160a01b039092168252519081900360200190f35b6103886004803603602081101561048257600080fd5b50356001600160a01b0316610af3565b610303610b0e565b610303600480360360208110156104b057600080fd5b50356001600160a01b0316610baf565b610450610ca8565b61015a610cb7565b610450610d18565b610331600480360360408110156104ee57600080fd5b506001600160a01b038135169060200135610d2c565b6103316004803603604081101561051a57600080fd5b506001600160a01b038135169060200135610d94565b610303610da8565b6103886004803603604081101561054e57600080fd5b506001600160a01b0381358116916020013516610e94565b6103036004803603602081101561057c57600080fd5b50356001600160a01b0316610ebf565b610303600480360360208110156105a257600080fd5b50356001600160a01b0316610f2b565b606a8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561063e5780601f106106135761010080835404028352916020019161063e565b820191906000526020600020905b81548152906001019060200180831161062157829003601f168201915b5050505050905090565b600054610100900460ff16806106615750610661610fe3565b8061066f575060005460ff16155b6106aa5760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff161580156106d5576000805460ff1961ff0019909116610100171660011790555b6106df8484610ff4565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561071a57600080fd5b505afa15801561072e573d6000803e3d6000fd5b505050506040513d602081101561074457600080fd5b50519050610750610a8d565b60ff168160ff161115610794576040805162461bcd60e51b8152602060048201526007602482015266109517d254119160ca1b604482015290519081900360640190fd5b60cc8054610100600160a81b0319166101006001600160a01b038616021760ff191660ff9290921691909117905580156107d4576000805461ff00191690555b50505050565b60006107ee6107e76110aa565b84846110ae565b5060015b92915050565b6001600160a01b031660009081526099602052604090205460ff1690565b60006107f260cc60019054906101000a90046001600160a01b03166001600160a01b031663e7572230846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561087457600080fd5b505afa158015610888573d6000803e3d6000fd5b505050506040513d602081101561089e57600080fd5b505161119a565b6108ad6110aa565b6001600160a01b03166108be610ca8565b6001600160a01b031614610902576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610946576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610992576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b03828116911614156109de576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b60695490565b6000610a138484846111c6565b610a8384610a1f6110aa565b610a7e85604051806060016040528060288152602001611b43602891396001600160a01b038a16600090815260686020526040812090610a5d6110aa565b6001600160a01b031681526020810191909152604001600020549190611323565b6110ae565b5060019392505050565b606c5460ff1690565b60006107ee610aa36110aa565b84610a7e8560686000610ab46110aa565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906113ba565b6034546001600160a01b031690565b6001600160a01b031660009081526067602052604090205490565b610b166110aa565b6001600160a01b0316610b27610ca8565b6001600160a01b031614610b6b576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020611b6b833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b610bb76110aa565b6001600160a01b0316610bc8610ca8565b6001600160a01b031614610c0c576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610c1581610af3565b15610c50576040805162461bcd60e51b81526020600482015260066024820152652b2a2fa1272d60d11b604482015290519081900360640190fd5b6001600160a01b038116600081815260996020908152604091829020805460ff19169055815192835290517fde8cf212af7ce38b2840785a2768d97ff2dbf3c21b516961cec0061e134c2a1e9281900390910190a150565b6033546001600160a01b031690565b606b8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561063e5780601f106106135761010080835404028352916020019161063e565b60cc5461010090046001600160a01b031690565b60006107ee610d396110aa565b84610a7e85604051806060016040528060258152602001611bd46025913960686000610d636110aa565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611323565b60006107ee610da16110aa565b84846111c6565b6034546001600160a01b0316610ded576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610df56110aa565b6034546001600160a01b03908116911614610e40576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020611b6b83398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b03918216600090815260686020908152604080832093909416825291909152205490565b610ec76110aa565b6001600160a01b0316610ed8610ca8565b6001600160a01b031614610f1c576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610f288160001961141b565b50565b610f336110aa565b6001600160a01b0316610f44610ca8565b6001600160a01b031614610f88576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116600081815260996020908152604091829020805460ff19166001179055815192835290517f4790a4adb426ca2345bb5108f6e454eae852a7bf687544cd66a7270dff3a41d69281900390910190a150565b6000610fee3061150d565b15905090565b600054610100900460ff168061100d575061100d610fe3565b8061101b575060005460ff16155b6110565760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff16158015611081576000805460ff1961ff0019909116610100171660011790555b611089611513565b6110938383611602565b80156110a5576000805461ff00191690555b505050565b3390565b6001600160a01b0383166110f35760405162461bcd60e51b8152600401808060200182810382526024815260200180611bb06024913960400191505060405180910390fd5b6001600160a01b0382166111385760405162461bcd60e51b8152600401808060200182810382526022815260200180611aac6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260686020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60cc546000906107f2906111bc9060ff166111b3610a8d565b60ff16906116a1565b8390600a0a6116fe565b6001600160a01b03831661120b5760405162461bcd60e51b8152600401808060200182810382526025815260200180611b8b6025913960400191505060405180910390fd5b6001600160a01b0382166112505760405162461bcd60e51b8152600401808060200182810382526023815260200180611a896023913960400191505060405180910390fd5b61125b838383611757565b61129881604051806060016040528060268152602001611ace602691396001600160a01b0386166000908152606760205260409020549190611323565b6001600160a01b0380851660009081526067602052604080822093909355908416815220546112c790826113ba565b6001600160a01b0380841660008181526067602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156113b25760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561137757818101518382015260200161135f565b50505050905090810190601f1680156113a45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611414576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611476576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61148260008383611757565b60695461148f90826113ba565b6069556001600160a01b0382166000908152606760205260409020546114b590826113ba565b6001600160a01b03831660008181526067602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b3b151590565b600054610100900460ff168061152c575061152c610fe3565b8061153a575060005460ff16155b6115755760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff161580156115a0576000805460ff1961ff0019909116610100171660011790555b6115a86117c6565b60006115b26110aa565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020611b6b833981519152908290a3508015610f28576000805461ff001916905550565b600054610100900460ff168061161b575061161b610fe3565b80611629575060005460ff16155b6116645760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff1615801561168f576000805460ff1961ff0019909116610100171660011790555b61169761186f565b611093838361190f565b6000828211156116f8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008261170d575060006107f2565b8282028284828161171a57fe5b04146114145760405162461bcd60e51b8152600401808060200182810382526021815260200180611b226021913960400191505060405180910390fd5b6117628383836110a5565b6001600160a01b038316156110a5576001600160a01b03831660009081526099602052604090205460ff166110a5576040805162461bcd60e51b815260206004820152600560248201526456545f4e5760d81b604482015290519081900360640190fd5b600054610100900460ff16806117df57506117df610fe3565b806117ed575060005460ff16155b6118285760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff16158015611853576000805460ff1961ff0019909116610100171660011790555b61185b61186f565b8015610f28576000805461ff001916905550565b600054610100900460ff16806118885750611888610fe3565b80611896575060005460ff16155b6118d15760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff1615801561185b576000805460ff1961ff0019909116610100171660011790558015610f28576000805461ff001916905550565b600054610100900460ff16806119285750611928610fe3565b80611936575060005460ff16155b6119715760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff1615801561199c576000805460ff1961ff0019909116610100171660011790555b82516119af90606a9060208601906119e7565b5081516119c390606b9060208501906119e7565b50606c805460ff1916601217905580156110a5576000805461ff0019169055505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611a1d5760008555611a63565b82601f10611a3657805160ff1916838001178555611a63565b82800160010185558215611a63579182015b82811115611a63578251825591602001919060010190611a48565b50611a6f929150611a73565b5090565b5b80821115611a6f5760008155600101611a7456fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203fdef3179580b66494d8eaf496bb2d3596a1cd6767f264f5f13515837ecaaaca64736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063a457c2d71161007c578063a457c2d7146104d8578063a9059cbb14610504578063bc5920ba14610530578063dd62ed3e14610538578063f52e308e14610566578063f80f5dd51461058c5761014d565b806370a082311461046c578063715018a61461049257806378c8cda71461049a5780638da5cb5b146104c057806395d89b41146104c85780639e87a5cd146104d05761014d565b806313af40351161011557806313af40351461039a57806318160ddd146103c057806323b872dd146103c8578063313ce567146103fe578063395093511461041c5780636c8381f8146104485761014d565b806306fdde0314610152578063077f224a146101cf578063095ea7b31461030557806309fd821214610345578063120806471461036b575b600080fd5b61015a6105b2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019457818101518382015260200161017c565b50505050905090810190601f1680156101c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610303600480360360608110156101e557600080fd5b810190602081018135600160201b8111156101ff57600080fd5b82018360208201111561021157600080fd5b803590602001918460018302840111600160201b8311171561023257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561028457600080fd5b82018360208201111561029657600080fd5b803590602001918460018302840111600160201b831117156102b757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b031691506106489050565b005b6103316004803603604081101561031b57600080fd5b506001600160a01b0381351690602001356107da565b604080519115158252519081900360200190f35b6103316004803603602081101561035b57600080fd5b50356001600160a01b03166107f8565b6103886004803603602081101561038157600080fd5b5035610816565b60408051918252519081900360200190f35b610303600480360360208110156103b057600080fd5b50356001600160a01b03166108a5565b610388610a00565b610331600480360360608110156103de57600080fd5b506001600160a01b03813581169160208101359091169060400135610a06565b610406610a8d565b6040805160ff9092168252519081900360200190f35b6103316004803603604081101561043257600080fd5b506001600160a01b038135169060200135610a96565b610450610ae4565b604080516001600160a01b039092168252519081900360200190f35b6103886004803603602081101561048257600080fd5b50356001600160a01b0316610af3565b610303610b0e565b610303600480360360208110156104b057600080fd5b50356001600160a01b0316610baf565b610450610ca8565b61015a610cb7565b610450610d18565b610331600480360360408110156104ee57600080fd5b506001600160a01b038135169060200135610d2c565b6103316004803603604081101561051a57600080fd5b506001600160a01b038135169060200135610d94565b610303610da8565b6103886004803603604081101561054e57600080fd5b506001600160a01b0381358116916020013516610e94565b6103036004803603602081101561057c57600080fd5b50356001600160a01b0316610ebf565b610303600480360360208110156105a257600080fd5b50356001600160a01b0316610f2b565b606a8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561063e5780601f106106135761010080835404028352916020019161063e565b820191906000526020600020905b81548152906001019060200180831161062157829003601f168201915b5050505050905090565b600054610100900460ff16806106615750610661610fe3565b8061066f575060005460ff16155b6106aa5760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff161580156106d5576000805460ff1961ff0019909116610100171660011790555b6106df8484610ff4565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561071a57600080fd5b505afa15801561072e573d6000803e3d6000fd5b505050506040513d602081101561074457600080fd5b50519050610750610a8d565b60ff168160ff161115610794576040805162461bcd60e51b8152602060048201526007602482015266109517d254119160ca1b604482015290519081900360640190fd5b60cc8054610100600160a81b0319166101006001600160a01b038616021760ff191660ff9290921691909117905580156107d4576000805461ff00191690555b50505050565b60006107ee6107e76110aa565b84846110ae565b5060015b92915050565b6001600160a01b031660009081526099602052604090205460ff1690565b60006107f260cc60019054906101000a90046001600160a01b03166001600160a01b031663e7572230846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561087457600080fd5b505afa158015610888573d6000803e3d6000fd5b505050506040513d602081101561089e57600080fd5b505161119a565b6108ad6110aa565b6001600160a01b03166108be610ca8565b6001600160a01b031614610902576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116610946576040805162461bcd60e51b81526020600482015260066024820152650534f5f4e57360d41b604482015290519081900360640190fd5b6033546001600160a01b0382811691161415610992576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414f60d01b604482015290519081900360640190fd5b6034546001600160a01b03828116911614156109de576040805162461bcd60e51b8152602060048201526006602482015265534f5f53414360d01b604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0392909216919091179055565b60695490565b6000610a138484846111c6565b610a8384610a1f6110aa565b610a7e85604051806060016040528060288152602001611b43602891396001600160a01b038a16600090815260686020526040812090610a5d6110aa565b6001600160a01b031681526020810191909152604001600020549190611323565b6110ae565b5060019392505050565b606c5460ff1690565b60006107ee610aa36110aa565b84610a7e8560686000610ab46110aa565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906113ba565b6034546001600160a01b031690565b6001600160a01b031660009081526067602052604090205490565b610b166110aa565b6001600160a01b0316610b27610ca8565b6001600160a01b031614610b6b576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6033546040516000916001600160a01b031690600080516020611b6b833981519152908390a3603380546001600160a01b0319908116909155603480549091169055565b610bb76110aa565b6001600160a01b0316610bc8610ca8565b6001600160a01b031614610c0c576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610c1581610af3565b15610c50576040805162461bcd60e51b81526020600482015260066024820152652b2a2fa1272d60d11b604482015290519081900360640190fd5b6001600160a01b038116600081815260996020908152604091829020805460ff19169055815192835290517fde8cf212af7ce38b2840785a2768d97ff2dbf3c21b516961cec0061e134c2a1e9281900390910190a150565b6033546001600160a01b031690565b606b8054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561063e5780601f106106135761010080835404028352916020019161063e565b60cc5461010090046001600160a01b031690565b60006107ee610d396110aa565b84610a7e85604051806060016040528060258152602001611bd46025913960686000610d636110aa565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611323565b60006107ee610da16110aa565b84846111c6565b6034546001600160a01b0316610ded576040805162461bcd60e51b81526020600482015260056024820152640534f5f43360dc1b604482015290519081900360640190fd5b610df56110aa565b6034546001600160a01b03908116911614610e40576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4360d01b604482015290519081900360640190fd5b6034546033546040516001600160a01b039283169290911690600080516020611b6b83398151915290600090a360348054603380546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b03918216600090815260686020908152604080832093909416825291909152205490565b610ec76110aa565b6001600160a01b0316610ed8610ca8565b6001600160a01b031614610f1c576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b610f288160001961141b565b50565b610f336110aa565b6001600160a01b0316610f44610ca8565b6001600160a01b031614610f88576040805162461bcd60e51b8152602060048201526006602482015265534f5f434e4f60d01b604482015290519081900360640190fd5b6001600160a01b038116600081815260996020908152604091829020805460ff19166001179055815192835290517f4790a4adb426ca2345bb5108f6e454eae852a7bf687544cd66a7270dff3a41d69281900390910190a150565b6000610fee3061150d565b15905090565b600054610100900460ff168061100d575061100d610fe3565b8061101b575060005460ff16155b6110565760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff16158015611081576000805460ff1961ff0019909116610100171660011790555b611089611513565b6110938383611602565b80156110a5576000805461ff00191690555b505050565b3390565b6001600160a01b0383166110f35760405162461bcd60e51b8152600401808060200182810382526024815260200180611bb06024913960400191505060405180910390fd5b6001600160a01b0382166111385760405162461bcd60e51b8152600401808060200182810382526022815260200180611aac6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260686020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60cc546000906107f2906111bc9060ff166111b3610a8d565b60ff16906116a1565b8390600a0a6116fe565b6001600160a01b03831661120b5760405162461bcd60e51b8152600401808060200182810382526025815260200180611b8b6025913960400191505060405180910390fd5b6001600160a01b0382166112505760405162461bcd60e51b8152600401808060200182810382526023815260200180611a896023913960400191505060405180910390fd5b61125b838383611757565b61129881604051806060016040528060268152602001611ace602691396001600160a01b0386166000908152606760205260409020549190611323565b6001600160a01b0380851660009081526067602052604080822093909355908416815220546112c790826113ba565b6001600160a01b0380841660008181526067602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156113b25760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561137757818101518382015260200161135f565b50505050905090810190601f1680156113a45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611414576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611476576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61148260008383611757565b60695461148f90826113ba565b6069556001600160a01b0382166000908152606760205260409020546114b590826113ba565b6001600160a01b03831660008181526067602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b3b151590565b600054610100900460ff168061152c575061152c610fe3565b8061153a575060005460ff16155b6115755760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff161580156115a0576000805460ff1961ff0019909116610100171660011790555b6115a86117c6565b60006115b26110aa565b603380546001600160a01b0319166001600160a01b03831690811790915560405191925090600090600080516020611b6b833981519152908290a3508015610f28576000805461ff001916905550565b600054610100900460ff168061161b575061161b610fe3565b80611629575060005460ff16155b6116645760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff1615801561168f576000805460ff1961ff0019909116610100171660011790555b61169761186f565b611093838361190f565b6000828211156116f8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008261170d575060006107f2565b8282028284828161171a57fe5b04146114145760405162461bcd60e51b8152600401808060200182810382526021815260200180611b226021913960400191505060405180910390fd5b6117628383836110a5565b6001600160a01b038316156110a5576001600160a01b03831660009081526099602052604090205460ff166110a5576040805162461bcd60e51b815260206004820152600560248201526456545f4e5760d81b604482015290519081900360640190fd5b600054610100900460ff16806117df57506117df610fe3565b806117ed575060005460ff16155b6118285760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff16158015611853576000805460ff1961ff0019909116610100171660011790555b61185b61186f565b8015610f28576000805461ff001916905550565b600054610100900460ff16806118885750611888610fe3565b80611896575060005460ff16155b6118d15760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff1615801561185b576000805460ff1961ff0019909116610100171660011790558015610f28576000805461ff001916905550565b600054610100900460ff16806119285750611928610fe3565b80611936575060005460ff16155b6119715760405162461bcd60e51b815260040180806020018281038252602e815260200180611af4602e913960400191505060405180910390fd5b600054610100900460ff1615801561199c576000805460ff1961ff0019909116610100171660011790555b82516119af90606a9060208601906119e7565b5081516119c390606b9060208501906119e7565b50606c805460ff1916601217905580156110a5576000805461ff0019169055505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282611a1d5760008555611a63565b82601f10611a3657805160ff1916838001178555611a63565b82800160010185558215611a63579182015b82811115611a63578251825591602001919060010190611a48565b50611a6f929150611a73565b5090565b5b80821115611a6f5760008155600101611a7456fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203fdef3179580b66494d8eaf496bb2d3596a1cd6767f264f5f13515837ecaaaca64736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}