{
  "_format": "hh-sol-artifact-1",
  "contractName": "AllocationVester",
  "sourceName": "contracts/allocation-vester/AllocationVester.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "distributionToken",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "member",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "allocation",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "duration",
          "type": "uint256"
        }
      ],
      "name": "AllocationSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "member",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Harvested",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newMinDuration",
          "type": "uint256"
        }
      ],
      "name": "MinDurationSet",
      "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": "pendingOwner",
          "type": "address"
        }
      ],
      "name": "PendingOwnerSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Withdrawn",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "claimOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getMembers",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "harvest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "members",
      "outputs": [
        {
          "internalType": "uint96",
          "name": "reserve",
          "type": "uint96"
        },
        {
          "internalType": "uint96",
          "name": "stash",
          "type": "uint96"
        },
        {
          "internalType": "uint64",
          "name": "lastUpdate",
          "type": "uint64"
        },
        {
          "internalType": "uint256",
          "name": "rate",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "minDuration",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "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": "pendingHarvest",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "reserve",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "allocations",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "durations",
          "type": "uint256[]"
        }
      ],
      "name": "setAllocations",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newMinDuration",
          "type": "uint256"
        }
      ],
      "name": "setMinDuration",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unreserved",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a06040526212750060065534801561001757600080fd5b5060405161185c38038061185c833981016040819052610036916100fb565b61003f336100ab565b600180546001600160a01b031916331790556001600160a01b03811661009a5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b604482015260640160405180910390fd5b6001600160a01b031660805261012b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561010d57600080fd5b81516001600160a01b038116811461012457600080fd5b9392505050565b6080516116fa61016260003960008181610299015281816108b1015281816109eb01528181610b820152610d3b01526116fa6000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063cd3293de11610066578063cd3293de14610267578063e30c397814610270578063f2fde38b14610281578063fc0c546a1461029457600080fd5b8063715018a61461021d5780638da5cb5b146102255780639eab52531461024a578063c6728c6c1461025f57600080fd5b80632e1a7d4d116100d35780632e1a7d4d146101f15780634641257d146102045780634e71e0c81461020c578063567157611461021457600080fd5b806307d41e791461010557806308ae4b0c1461012b5780631674bade146101c9578063182a89e6146101de575b600080fd5b61011861011336600461134e565b6102bb565b6040519081526020015b60405180910390f35b61018a61013936600461134e565b600260205260009081526040902080546001909101546bffffffffffffffffffffffff808316926c01000000000000000000000000810490911691600160c01b90910467ffffffffffffffff169084565b604080516bffffffffffffffffffffffff958616815294909316602085015267ffffffffffffffff909116918301919091526060820152608001610122565b6101dc6101d7366004611377565b610398565b005b6101dc6101ec3660046113dc565b610431565b6101dc6101ff366004611377565b61097f565b6101dc610a42565b6101dc610be2565b61011860065481565b6101dc610c5c565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610122565b610252610ced565b6040516101229190611476565b610118610cfe565b61011860055481565b6001546001600160a01b0316610232565b6101dc61028f36600461134e565b610db0565b6102327f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381166000908152600260209081526040808320815160808101835281546bffffffffffffffffffffffff80821683526c0100000000000000000000000082041694820194909452600160c01b90930467ffffffffffffffff169183018290526001015460608301819052839161033990426114d9565b61034391906114f0565b82602001516bffffffffffffffffffffffff16610360919061150f565b82519091506bffffffffffffffffffffffff16811161037f5780610390565b81516bffffffffffffffffffffffff165b949350505050565b6103a0610e1a565b806000036103f55760405162461bcd60e51b815260206004820152600d60248201527f7a65726f206475726174696f6e0000000000000000000000000000000000000060448201526064015b60405180910390fd5b60068190556040518181527f850b0d4898947ead6a23251622e8c2ea46d217fa5ff2c1f06638f92e91880bfe906020015b60405180910390a150565b610439610e1a565b60055460065486919060008390036104935760405162461bcd60e51b815260206004820152600b60248201527f656d70747920617272617900000000000000000000000000000000000000000060448201526064016103ec565b82861480156104a157508284145b6104ed5760405162461bcd60e51b815260206004820152601560248201527f76617279696e672d6c656e67746820617272617973000000000000000000000060448201526064016103ec565b60005b838110156108805760008a8a8381811061050c5761050c611527565b9050602002016020810190610521919061134e565b9050600089898481811061053757610537611527565b905060200201359050600088888581811061055457610554611527565b60200291909101359150506001600160a01b0383166105b55760405162461bcd60e51b815260206004820152600d60248201527f62616420726563697069656e740000000000000000000000000000000000000060448201526064016103ec565b6001600160a01b038316600090815260026020526040902080546bffffffffffffffffffffffff16801561065c5760006105ee866102bb565b83547fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff166c010000000000000000000000006bffffffffffffffffffffffff831602178455905061063f818361153d565b610657906bffffffffffffffffffffffff168a6114d9565b985090505b83156107cd57868310156106b25760405162461bcd60e51b815260206004820152601660248201527f73686f72742076657374696e67206475726174696f6e0000000000000000000060448201526064016103ec565b6bffffffffffffffffffffffff84111561070e5760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420616c6c6f636174696f6e000000000000000000000000000060448201526064016103ec565b610718848961150f565b97506000610726848661156a565b9050806000036107785760405162461bcd60e51b815260206004820152601660248201527f72617465207472756e636174656420746f207a65726f0000000000000000000060448201526064016103ec565b610782858361158c565b60018401829055835477ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b4267ffffffffffffffff160217845591506107c6600387610e74565b50506107f0565b806bffffffffffffffffffffffff166000036107f0576107ee600386610e92565b505b81547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff821617825560408051858152602081018590526001600160a01b038716917f159e9e56dec3d6bf3e3c20510a7b005a0b9f89bd991ff9eb0c4f387b1fd3682d910160405180910390a2505050505080610879906115bc565b90506104f0565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610900573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092491906115d6565b10156109725760405162461bcd60e51b815260206004820152600b60248201527f6c6f772062616c616e636500000000000000000000000000000000000000000060448201526064016103ec565b5060055550505050505050565b610987610e1a565b80610990610cfe565b10156109de5760405162461bcd60e51b815260206004820152600b60248201527f6c6f772062616c616e636500000000000000000000000000000000000000000060448201526064016103ec565b610a126001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610ea7565b6040518181527f430648de173157e069201c943adb2d4e340e7cf5b27b1b09c9cb852f03d63b5690602001610426565b33600081815260026020526040812091610a5b906102bb565b905080600003610aad5760405162461bcd60e51b815260206004820152601260248201527f6e6f2070656e64696e672068617276657374000000000000000000000000000060448201526064016103ec565b81546bffffffffffffffffffffffff908116600160c01b4267ffffffffffffffff16027fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff81168217855583928592600092610b0c92869291161761153d565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508060056000828254610b4c91906114d9565b909155505081546bffffffffffffffffffffffff16600003610b7557610b73600333610e92565b505b610ba96001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610ea7565b60405181815233907f121c5042302bae5fc561fbc64368f297ca60a880878e1e3a7f7e9380377260bf9060200160405180910390a25050565b6001546001600160a01b0316336001600160a01b031614610c455760405162461bcd60e51b815260206004820152601c60248201527f436c61696d61626c653a206e6f742070656e64696e67206f776e65720000000060448201526064016103ec565b600154610c5a906001600160a01b0316610f2c565b565b610c64610e1a565b6001546001600160a01b031615610ce35760405162461bcd60e51b815260206004820152602960248201527f436c61696d61626c653a2070656e64696e67206f776e6572206e6f74207a657260448201527f6f2061646472657373000000000000000000000000000000000000000000000060648201526084016103ec565b610c5a6000610f2c565b6060610cf96003610f94565b905090565b6005546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da691906115d6565b610cf991906114d9565b610db8610e1a565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517f68f49b346b94582a8b5f9d10e3fe3365318fe8f191ff8dce7c59c6cad06b02f590600090a250565b6000546001600160a01b03163314610c5a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ec565b6000610e89836001600160a01b038416610fa8565b90505b92915050565b6000610e89836001600160a01b038416610ff7565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610f279084906110ea565b505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606000610fa1836111cf565b9392505050565b6000818152600183016020526040812054610fef57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610e8c565b506000610e8c565b600081815260018301602052604081205480156110e057600061101b6001836114d9565b855490915060009061102f906001906114d9565b905081811461109457600086600001828154811061104f5761104f611527565b906000526020600020015490508087600001848154811061107257611072611527565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806110a5576110a56115ef565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610e8c565b6000915050610e8c565b600061113f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661122b9092919063ffffffff16565b805190915015610f27578080602001905181019061115d9190611605565b610f275760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103ec565b60608160000180548060200260200160405190810160405280929190818152602001828054801561121f57602002820191906000526020600020905b81548152602001906001019080831161120b575b50505050509050919050565b6060610390848460008585600080866001600160a01b031685876040516112529190611657565b60006040518083038185875af1925050503d806000811461128f576040519150601f19603f3d011682016040523d82523d6000602084013e611294565b606091505b50915091506112a5878383876112b0565b979650505050505050565b6060831561131f578251600003611318576001600160a01b0385163b6113185760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ec565b5081610390565b61039083838151156113345781518083602001fd5b8060405162461bcd60e51b81526004016103ec9190611673565b60006020828403121561136057600080fd5b81356001600160a01b0381168114610fa157600080fd5b60006020828403121561138957600080fd5b5035919050565b60008083601f8401126113a257600080fd5b50813567ffffffffffffffff8111156113ba57600080fd5b6020830191508360208260051b85010111156113d557600080fd5b9250929050565b600080600080600080606087890312156113f557600080fd5b863567ffffffffffffffff8082111561140d57600080fd5b6114198a838b01611390565b9098509650602089013591508082111561143257600080fd5b61143e8a838b01611390565b9096509450604089013591508082111561145757600080fd5b5061146489828a01611390565b979a9699509497509295939492505050565b6020808252825182820181905260009190848201906040850190845b818110156114b75783516001600160a01b031683529284019291840191600101611492565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156114eb576114eb6114c3565b500390565b600081600019048311821515161561150a5761150a6114c3565b500290565b60008219821115611522576115226114c3565b500190565b634e487b7160e01b600052603260045260246000fd5b60006bffffffffffffffffffffffff83811690831681811015611562576115626114c3565b039392505050565b60008261158757634e487b7160e01b600052601260045260246000fd5b500490565b60006bffffffffffffffffffffffff8083168185168083038211156115b3576115b36114c3565b01949350505050565b600060001982036115cf576115cf6114c3565b5060010190565b6000602082840312156115e857600080fd5b5051919050565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561161757600080fd5b81518015158114610fa157600080fd5b60005b8381101561164257818101518382015260200161162a565b83811115611651576000848401525b50505050565b60008251611669818460208701611627565b9190910192915050565b6020815260008251806020840152611692816040850160208701611627565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212207e56a8be86ed6b4d42ced575f9ab09959db5b146615705c97902be777a39503e64736f6c634300080d0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063cd3293de11610066578063cd3293de14610267578063e30c397814610270578063f2fde38b14610281578063fc0c546a1461029457600080fd5b8063715018a61461021d5780638da5cb5b146102255780639eab52531461024a578063c6728c6c1461025f57600080fd5b80632e1a7d4d116100d35780632e1a7d4d146101f15780634641257d146102045780634e71e0c81461020c578063567157611461021457600080fd5b806307d41e791461010557806308ae4b0c1461012b5780631674bade146101c9578063182a89e6146101de575b600080fd5b61011861011336600461134e565b6102bb565b6040519081526020015b60405180910390f35b61018a61013936600461134e565b600260205260009081526040902080546001909101546bffffffffffffffffffffffff808316926c01000000000000000000000000810490911691600160c01b90910467ffffffffffffffff169084565b604080516bffffffffffffffffffffffff958616815294909316602085015267ffffffffffffffff909116918301919091526060820152608001610122565b6101dc6101d7366004611377565b610398565b005b6101dc6101ec3660046113dc565b610431565b6101dc6101ff366004611377565b61097f565b6101dc610a42565b6101dc610be2565b61011860065481565b6101dc610c5c565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610122565b610252610ced565b6040516101229190611476565b610118610cfe565b61011860055481565b6001546001600160a01b0316610232565b6101dc61028f36600461134e565b610db0565b6102327f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381166000908152600260209081526040808320815160808101835281546bffffffffffffffffffffffff80821683526c0100000000000000000000000082041694820194909452600160c01b90930467ffffffffffffffff169183018290526001015460608301819052839161033990426114d9565b61034391906114f0565b82602001516bffffffffffffffffffffffff16610360919061150f565b82519091506bffffffffffffffffffffffff16811161037f5780610390565b81516bffffffffffffffffffffffff165b949350505050565b6103a0610e1a565b806000036103f55760405162461bcd60e51b815260206004820152600d60248201527f7a65726f206475726174696f6e0000000000000000000000000000000000000060448201526064015b60405180910390fd5b60068190556040518181527f850b0d4898947ead6a23251622e8c2ea46d217fa5ff2c1f06638f92e91880bfe906020015b60405180910390a150565b610439610e1a565b60055460065486919060008390036104935760405162461bcd60e51b815260206004820152600b60248201527f656d70747920617272617900000000000000000000000000000000000000000060448201526064016103ec565b82861480156104a157508284145b6104ed5760405162461bcd60e51b815260206004820152601560248201527f76617279696e672d6c656e67746820617272617973000000000000000000000060448201526064016103ec565b60005b838110156108805760008a8a8381811061050c5761050c611527565b9050602002016020810190610521919061134e565b9050600089898481811061053757610537611527565b905060200201359050600088888581811061055457610554611527565b60200291909101359150506001600160a01b0383166105b55760405162461bcd60e51b815260206004820152600d60248201527f62616420726563697069656e740000000000000000000000000000000000000060448201526064016103ec565b6001600160a01b038316600090815260026020526040902080546bffffffffffffffffffffffff16801561065c5760006105ee866102bb565b83547fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff166c010000000000000000000000006bffffffffffffffffffffffff831602178455905061063f818361153d565b610657906bffffffffffffffffffffffff168a6114d9565b985090505b83156107cd57868310156106b25760405162461bcd60e51b815260206004820152601660248201527f73686f72742076657374696e67206475726174696f6e0000000000000000000060448201526064016103ec565b6bffffffffffffffffffffffff84111561070e5760405162461bcd60e51b815260206004820152601260248201527f696e76616c696420616c6c6f636174696f6e000000000000000000000000000060448201526064016103ec565b610718848961150f565b97506000610726848661156a565b9050806000036107785760405162461bcd60e51b815260206004820152601660248201527f72617465207472756e636174656420746f207a65726f0000000000000000000060448201526064016103ec565b610782858361158c565b60018401829055835477ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b4267ffffffffffffffff160217845591506107c6600387610e74565b50506107f0565b806bffffffffffffffffffffffff166000036107f0576107ee600386610e92565b505b81547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff821617825560408051858152602081018590526001600160a01b038716917f159e9e56dec3d6bf3e3c20510a7b005a0b9f89bd991ff9eb0c4f387b1fd3682d910160405180910390a2505050505080610879906115bc565b90506104f0565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610900573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092491906115d6565b10156109725760405162461bcd60e51b815260206004820152600b60248201527f6c6f772062616c616e636500000000000000000000000000000000000000000060448201526064016103ec565b5060055550505050505050565b610987610e1a565b80610990610cfe565b10156109de5760405162461bcd60e51b815260206004820152600b60248201527f6c6f772062616c616e636500000000000000000000000000000000000000000060448201526064016103ec565b610a126001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610ea7565b6040518181527f430648de173157e069201c943adb2d4e340e7cf5b27b1b09c9cb852f03d63b5690602001610426565b33600081815260026020526040812091610a5b906102bb565b905080600003610aad5760405162461bcd60e51b815260206004820152601260248201527f6e6f2070656e64696e672068617276657374000000000000000000000000000060448201526064016103ec565b81546bffffffffffffffffffffffff908116600160c01b4267ffffffffffffffff16027fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff81168217855583928592600092610b0c92869291161761153d565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508060056000828254610b4c91906114d9565b909155505081546bffffffffffffffffffffffff16600003610b7557610b73600333610e92565b505b610ba96001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383610ea7565b60405181815233907f121c5042302bae5fc561fbc64368f297ca60a880878e1e3a7f7e9380377260bf9060200160405180910390a25050565b6001546001600160a01b0316336001600160a01b031614610c455760405162461bcd60e51b815260206004820152601c60248201527f436c61696d61626c653a206e6f742070656e64696e67206f776e65720000000060448201526064016103ec565b600154610c5a906001600160a01b0316610f2c565b565b610c64610e1a565b6001546001600160a01b031615610ce35760405162461bcd60e51b815260206004820152602960248201527f436c61696d61626c653a2070656e64696e67206f776e6572206e6f74207a657260448201527f6f2061646472657373000000000000000000000000000000000000000000000060648201526084016103ec565b610c5a6000610f2c565b6060610cf96003610f94565b905090565b6005546040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152600091906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da691906115d6565b610cf991906114d9565b610db8610e1a565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040517f68f49b346b94582a8b5f9d10e3fe3365318fe8f191ff8dce7c59c6cad06b02f590600090a250565b6000546001600160a01b03163314610c5a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ec565b6000610e89836001600160a01b038416610fa8565b90505b92915050565b6000610e89836001600160a01b038416610ff7565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610f279084906110ea565b505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606000610fa1836111cf565b9392505050565b6000818152600183016020526040812054610fef57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610e8c565b506000610e8c565b600081815260018301602052604081205480156110e057600061101b6001836114d9565b855490915060009061102f906001906114d9565b905081811461109457600086600001828154811061104f5761104f611527565b906000526020600020015490508087600001848154811061107257611072611527565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806110a5576110a56115ef565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610e8c565b6000915050610e8c565b600061113f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661122b9092919063ffffffff16565b805190915015610f27578080602001905181019061115d9190611605565b610f275760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016103ec565b60608160000180548060200260200160405190810160405280929190818152602001828054801561121f57602002820191906000526020600020905b81548152602001906001019080831161120b575b50505050509050919050565b6060610390848460008585600080866001600160a01b031685876040516112529190611657565b60006040518083038185875af1925050503d806000811461128f576040519150601f19603f3d011682016040523d82523d6000602084013e611294565b606091505b50915091506112a5878383876112b0565b979650505050505050565b6060831561131f578251600003611318576001600160a01b0385163b6113185760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ec565b5081610390565b61039083838151156113345781518083602001fd5b8060405162461bcd60e51b81526004016103ec9190611673565b60006020828403121561136057600080fd5b81356001600160a01b0381168114610fa157600080fd5b60006020828403121561138957600080fd5b5035919050565b60008083601f8401126113a257600080fd5b50813567ffffffffffffffff8111156113ba57600080fd5b6020830191508360208260051b85010111156113d557600080fd5b9250929050565b600080600080600080606087890312156113f557600080fd5b863567ffffffffffffffff8082111561140d57600080fd5b6114198a838b01611390565b9098509650602089013591508082111561143257600080fd5b61143e8a838b01611390565b9096509450604089013591508082111561145757600080fd5b5061146489828a01611390565b979a9699509497509295939492505050565b6020808252825182820181905260009190848201906040850190845b818110156114b75783516001600160a01b031683529284019291840191600101611492565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156114eb576114eb6114c3565b500390565b600081600019048311821515161561150a5761150a6114c3565b500290565b60008219821115611522576115226114c3565b500190565b634e487b7160e01b600052603260045260246000fd5b60006bffffffffffffffffffffffff83811690831681811015611562576115626114c3565b039392505050565b60008261158757634e487b7160e01b600052601260045260246000fd5b500490565b60006bffffffffffffffffffffffff8083168185168083038211156115b3576115b36114c3565b01949350505050565b600060001982036115cf576115cf6114c3565b5060010190565b6000602082840312156115e857600080fd5b5051919050565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561161757600080fd5b81518015158114610fa157600080fd5b60005b8381101561164257818101518382015260200161162a565b83811115611651576000848401525b50505050565b60008251611669818460208701611627565b9190910192915050565b6020815260008251806020840152611692816040850160208701611627565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212207e56a8be86ed6b4d42ced575f9ab09959db5b146615705c97902be777a39503e64736f6c634300080d0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
