{
  "_format": "hh-sol-artifact-1",
  "contractName": "MerkledropToStakingCompliant",
  "sourceName": "contracts/pangolin-token/MerkledropToStakingCompliant.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "airdropToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "stakingPositions",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "initialOwner",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint96",
          "name": "amount",
          "type": "uint96"
        }
      ],
      "name": "Claimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "newMerkleRoot",
          "type": "bytes32"
        }
      ],
      "name": "MerkleRootSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "newComplianceHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "newComplianceMessage",
          "type": "string"
        }
      ],
      "name": "NewComplianceMessage",
      "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": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Paused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Unpaused",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "PNG",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "SAR",
      "outputs": [
        {
          "internalType": "contract IPangolinStakingPositions",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint96",
          "name": "amount",
          "type": "uint96"
        },
        {
          "internalType": "bytes32[]",
          "name": "merkleProof",
          "type": "bytes32[]"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "claim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint96",
          "name": "amount",
          "type": "uint96"
        },
        {
          "internalType": "bytes32[]",
          "name": "merkleProof",
          "type": "bytes32[]"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "claimTo",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "claimedAmounts",
      "outputs": [
        {
          "internalType": "uint96",
          "name": "",
          "type": "uint96"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "complianceHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "complianceMessage",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "merkleRoot",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "recover",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "newComplianceMessage",
          "type": "string"
        }
      ],
      "name": "setComplianceMessage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "newMerkleRoot",
          "type": "bytes32"
        }
      ],
      "name": "setMerkleRoot",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x6101c060405260d160c08181529062001f8160e0396003906200002390826200065b565b50620000cc600380546200003790620005cc565b80601f01602080910402602001604051908101604052809291908181526020018280546200006590620005cc565b8015620000b65780601f106200008a57610100808354040283529160200191620000b6565b820191906000526020600020905b8154815290600101906020018083116200009857829003601f168201915b5050505050620002d360201b62000a381760201c565b600455348015620000dc57600080fd5b506040516200205238038062002052833981016040819052620000ff9162000744565b6200010a336200031d565b6000805460ff60a01b191681556001600160a01b0384163b9003620001765760405162461bcd60e51b815260206004820152601560248201527f696e76616c696420746f6b656e2061646472657373000000000000000000000060448201526064015b60405180910390fd5b816001600160a01b03163b600003620001d25760405162461bcd60e51b815260206004820152601760248201527f696e76616c6964207374616b696e67206164647265737300000000000000000060448201526064016200016d565b6001600160a01b0381166200022a5760405162461bcd60e51b815260206004820152601560248201527f696e76616c696420696e697469616c206f776e6572000000000000000000000060448201526064016200016d565b62000235816200031d565b60405163095ea7b360e01b81526001600160a01b038381166004830152600019602483015284169063095ea7b3906044016020604051808303816000875af115801562000286573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ac91906200078e565b506001600160a01b03808416608052821660a052620002ca6200036d565b5050506200084b565b6000620002ec8251620003d060201b62000a731760201c565b8260405160200162000300929190620007ec565b604051602081830303815290604052805190602001209050919050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200037762000474565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258620003b33390565b6040516001600160a01b03909116815260200160405180910390a1565b60606000620003ea83620004cc60201b62000b131760201c565b60010190506000816001600160401b038111156200040c576200040c620005b6565b6040519080825280601f01601f19166020018201604052801562000437576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846200044157509392505050565b62000488600054600160a01b900460ff1690565b15620004ca5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016200016d565b565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831062000516577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef8100000000831062000543576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106200056257662386f26fc10000830492506010015b6305f5e10083106200057b576305f5e100830492506008015b61271083106200059057612710830492506004015b60648310620005a3576064830492506002015b600a8310620005b0576001015b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005e157607f821691505b6020821081036200060257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200065657600081815260208120601f850160051c81016020861015620006315750805b601f850160051c820191505b8181101562000652578281556001016200063d565b5050505b505050565b81516001600160401b03811115620006775762000677620005b6565b6200068f81620006888454620005cc565b8462000608565b602080601f831160018114620006c75760008415620006ae5750858301515b600019600386901b1c1916600185901b17855562000652565b600085815260208120601f198616915b82811015620006f857888601518255948401946001909101908401620006d7565b5085821015620007175787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80516001600160a01b03811681146200073f57600080fd5b919050565b6000806000606084860312156200075a57600080fd5b620007658462000727565b9250620007756020850162000727565b9150620007856040850162000727565b90509250925092565b600060208284031215620007a157600080fd5b81518015158114620007b257600080fd5b9392505050565b60005b83811015620007d6578181015183820152602001620007bc565b83811115620007e6576000848401525b50505050565b7f19457468657265756d205369676e6564204d6573736167653a0a0000000000008152600083516200082681601a850160208801620007b9565b8351908301906200083f81601a840160208801620007b9565b01601a01949350505050565b60805160a0516117026200087f600039600081816101630152818161084401526108f90152600061025b01526117026000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c8063715018a6116100b25780639bab65b811610081578063c13f573e11610066578063c13f573e14610290578063c1b0eb94146102a3578063f2fde38b146102b657600080fd5b80639bab65b814610256578063be8cbeed1461027d57600080fd5b8063715018a6146102225780637cb647591461022a5780638456cb591461023d5780638da5cb5b1461024557600080fd5b80633f4ba83a116100ee5780633f4ba83a1461019d5780635705ae43146101a75780635c975abb146101ba57806371417b32146101d757600080fd5b80630b22f24a146101205780632d2069ec1461013e5780632eb4a7ab1461015557806333c88ff61461015e575b600080fd5b6101286102c9565b6040516101359190611188565b60405180910390f35b61014760045481565b604051908152602001610135565b61014760025481565b6101857f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610135565b6101a5610357565b005b6101a56101b53660046111d0565b6103c0565b600054600160a01b900460ff166040519015158152602001610135565b6102056101e53660046111fc565b6001602052600090815260409020546bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff9091168152602001610135565b6101a56104aa565b6101a5610238366004611219565b6104bc565b6101a56104ff565b6000546001600160a01b0316610185565b6101857f000000000000000000000000000000000000000000000000000000000000000081565b6101a561028b366004611274565b61050f565b6101a561029e36600461131c565b6105ac565b6101a56102b136600461139d565b6105c1565b6101a56102c43660046111fc565b6109a8565b600380546102d690611430565b80601f016020809104026020016040519081016040528092919081815260200182805461030290611430565b801561034f5780601f106103245761010080835404028352916020019161034f565b820191906000526020600020905b81548152906001019060200180831161033257829003601f168201915b505050505081565b61035f610bf6565b6002546000036103b65760405162461bcd60e51b815260206004820152601360248201527f6d65726b6c6520726f6f74206e6f74207365740000000000000000000000000060448201526064015b60405180910390fd5b6103be610c50565b565b6103c8610cc0565b6103d0610bf6565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045a919061146a565b6104a65760405162461bcd60e51b815260206004820152600f60248201527f7472616e73666572206661696c6564000000000000000000000000000000000060448201526064016103ad565b5050565b6104b2610bf6565b6103be6000610d19565b6104c4610cc0565b6104cc610bf6565b600281905560405181907f42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b90600090a250565b610507610bf6565b6103be610d81565b610517610bf6565b600061055883838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a3892505050565b60048190559050600361056c8385836114f1565b50807fe8d6349745d718fbb56b30e41d99dbe12fc69f0a8d7401dac98476504c027a43848460405161059f9291906115b1565b60405180910390a2505050565b6105ba3386868686866105c1565b5050505050565b6105c9610ddf565b336001600160a01b031661061683838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060045492915050610e39565b6001600160a01b03161461066c5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420636f6d706c69616e6365207369676e61747572650000000060448201526064016103ad565b336000908152600160205260409020546bffffffffffffffffffffffff90811690861681106106dd5760405162461bcd60e51b815260206004820152601060248201527f6e6f7468696e6720746f20636c61696d0000000000000000000000000000000060448201526064016103ad565b604080516bffffffffffffffffffffffff193360601b1660208201527fffffffffffffffffffffffff000000000000000000000000000000000000000060a089901b16603482015260009101604051602081830303815290604052610741906115e0565b9050610784868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506002549150849050610e5d565b6107d05760405162461bcd60e51b815260206004820152600d60248201527f696e76616c69642070726f6f660000000000000000000000000000000000000060448201526064016103ad565b3360009081526001602052604080822080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff8b81169190911790915590517fa0712d680000000000000000000000000000000000000000000000000000000081529884900390811660048a0152976001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a0712d68906024016020604051808303816000875af115801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b19190611604565b6040517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038b81166024830152604482018390529192507f0000000000000000000000000000000000000000000000000000000000000000909116906342842e0e90606401600060405180830381600087803b15801561093f57600080fd5b505af1158015610953573d6000803e3d6000fd5b50506040516bffffffffffffffffffffffff8b1692506001600160a01b038c16915033907ff9ddf109eb32ae61850b998bb6a5bfbcb1b0d513ab98d1f98d5ff43d977b9ab790600090a4505050505050505050565b6109b0610bf6565b6001600160a01b038116610a2c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103ad565b610a3581610d19565b50565b6000610a448251610a73565b82604051602001610a5692919061161d565b604051602081830303815290604052805190602001209050919050565b60606000610a8083610b13565b600101905060008167ffffffffffffffff811115610aa057610aa061148c565b6040519080825280601f01601f191660200182016040528015610aca576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610ad457509392505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610b5c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310610b88576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610ba657662386f26fc10000830492506010015b6305f5e1008310610bbe576305f5e100830492506008015b6127108310610bd257612710830492506004015b60648310610be4576064830492506002015b600a8310610bf0576001015b92915050565b6000546001600160a01b031633146103be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ad565b610c58610cc0565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054600160a01b900460ff166103be5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016103ad565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610d89610ddf565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ca33390565b600054600160a01b900460ff16156103be5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016103ad565b6000806000610e488585610e73565b91509150610e5581610eb8565b509392505050565b600082610e6a858461101d565b14949350505050565b6000808251604103610ea95760208301516040840151606085015160001a610e9d87828585611062565b94509450505050610eb1565b506000905060025b9250929050565b6000816004811115610ecc57610ecc611678565b03610ed45750565b6001816004811115610ee857610ee8611678565b03610f355760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016103ad565b6002816004811115610f4957610f49611678565b03610f965760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016103ad565b6003816004811115610faa57610faa611678565b03610a355760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016103ad565b600081815b8451811015610e555761104e828683815181106110415761104161168e565b6020026020010151611126565b91508061105a816116a4565b915050611022565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611099575060009050600361111d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156110ed573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166111165760006001925092505061111d565b9150600090505b94509492505050565b6000818310611142576000828152602084905260409020611151565b60008381526020839052604090205b9392505050565b60005b8381101561117357818101518382015260200161115b565b83811115611182576000848401525b50505050565b60208152600082518060208401526111a7816040850160208701611158565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610a3557600080fd5b600080604083850312156111e357600080fd5b82356111ee816111bb565b946020939093013593505050565b60006020828403121561120e57600080fd5b8135611151816111bb565b60006020828403121561122b57600080fd5b5035919050565b60008083601f84011261124457600080fd5b50813567ffffffffffffffff81111561125c57600080fd5b602083019150836020828501011115610eb157600080fd5b6000806020838503121561128757600080fd5b823567ffffffffffffffff81111561129e57600080fd5b6112aa85828601611232565b90969095509350505050565b80356bffffffffffffffffffffffff811681146112d257600080fd5b919050565b60008083601f8401126112e957600080fd5b50813567ffffffffffffffff81111561130157600080fd5b6020830191508360208260051b8501011115610eb157600080fd5b60008060008060006060868803121561133457600080fd5b61133d866112b6565b9450602086013567ffffffffffffffff8082111561135a57600080fd5b61136689838a016112d7565b9096509450604088013591508082111561137f57600080fd5b5061138c88828901611232565b969995985093965092949392505050565b600080600080600080608087890312156113b657600080fd5b86356113c1816111bb565b95506113cf602088016112b6565b9450604087013567ffffffffffffffff808211156113ec57600080fd5b6113f88a838b016112d7565b9096509450606089013591508082111561141157600080fd5b5061141e89828a01611232565b979a9699509497509295939492505050565b600181811c9082168061144457607f821691505b60208210810361146457634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561147c57600080fd5b8151801515811461115157600080fd5b634e487b7160e01b600052604160045260246000fd5b601f8211156114ec57600081815260208120601f850160051c810160208610156114c95750805b601f850160051c820191505b818110156114e8578281556001016114d5565b5050505b505050565b67ffffffffffffffff8311156115095761150961148c565b61151d836115178354611430565b836114a2565b6000601f84116001811461155157600085156115395750838201355b600019600387901b1c1916600186901b1783556105ba565b600083815260209020601f19861690835b828110156115825786850135825560209485019460019092019101611562565b508682101561159f5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b805160208083015191908110156114645760001960209190910360031b1b16919050565b60006020828403121561161657600080fd5b5051919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161165581601a850160208801611158565b83519083019061166c81601a840160208801611158565b01601a01949350505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060001982036116c557634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220f44b86a0793f70a48d7976bb8eca58cbffa6fcbd7c0ca3e15b3f709712a8a07d64736f6c634300080f00334279207369676e696e672074686973207472616e73616374696f6e2c2049206865726562792061636b6e6f776c656467652074686174204920616d206e6f742061205553207265736964656e74206f7220636974697a656e2e2028436974697a656e73206f72207265736964656e7473206f662074686520556e6974656420537461746573206f6620416d657269636120617265206e6f7420616c6c6f77656420746f207468652050534220746f6b656e2061697264726f702064756520746f206170706c696361626c65206c61772e29",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061011b5760003560e01c8063715018a6116100b25780639bab65b811610081578063c13f573e11610066578063c13f573e14610290578063c1b0eb94146102a3578063f2fde38b146102b657600080fd5b80639bab65b814610256578063be8cbeed1461027d57600080fd5b8063715018a6146102225780637cb647591461022a5780638456cb591461023d5780638da5cb5b1461024557600080fd5b80633f4ba83a116100ee5780633f4ba83a1461019d5780635705ae43146101a75780635c975abb146101ba57806371417b32146101d757600080fd5b80630b22f24a146101205780632d2069ec1461013e5780632eb4a7ab1461015557806333c88ff61461015e575b600080fd5b6101286102c9565b6040516101359190611188565b60405180910390f35b61014760045481565b604051908152602001610135565b61014760025481565b6101857f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610135565b6101a5610357565b005b6101a56101b53660046111d0565b6103c0565b600054600160a01b900460ff166040519015158152602001610135565b6102056101e53660046111fc565b6001602052600090815260409020546bffffffffffffffffffffffff1681565b6040516bffffffffffffffffffffffff9091168152602001610135565b6101a56104aa565b6101a5610238366004611219565b6104bc565b6101a56104ff565b6000546001600160a01b0316610185565b6101857f000000000000000000000000000000000000000000000000000000000000000081565b6101a561028b366004611274565b61050f565b6101a561029e36600461131c565b6105ac565b6101a56102b136600461139d565b6105c1565b6101a56102c43660046111fc565b6109a8565b600380546102d690611430565b80601f016020809104026020016040519081016040528092919081815260200182805461030290611430565b801561034f5780601f106103245761010080835404028352916020019161034f565b820191906000526020600020905b81548152906001019060200180831161033257829003601f168201915b505050505081565b61035f610bf6565b6002546000036103b65760405162461bcd60e51b815260206004820152601360248201527f6d65726b6c6520726f6f74206e6f74207365740000000000000000000000000060448201526064015b60405180910390fd5b6103be610c50565b565b6103c8610cc0565b6103d0610bf6565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610436573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045a919061146a565b6104a65760405162461bcd60e51b815260206004820152600f60248201527f7472616e73666572206661696c6564000000000000000000000000000000000060448201526064016103ad565b5050565b6104b2610bf6565b6103be6000610d19565b6104c4610cc0565b6104cc610bf6565b600281905560405181907f42cbc405e4dbf1b691e85b9a34b08ecfcf7a9ad9078bf4d645ccfa1fac11c10b90600090a250565b610507610bf6565b6103be610d81565b610517610bf6565b600061055883838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a3892505050565b60048190559050600361056c8385836114f1565b50807fe8d6349745d718fbb56b30e41d99dbe12fc69f0a8d7401dac98476504c027a43848460405161059f9291906115b1565b60405180910390a2505050565b6105ba3386868686866105c1565b5050505050565b6105c9610ddf565b336001600160a01b031661061683838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060045492915050610e39565b6001600160a01b03161461066c5760405162461bcd60e51b815260206004820152601c60248201527f696e76616c696420636f6d706c69616e6365207369676e61747572650000000060448201526064016103ad565b336000908152600160205260409020546bffffffffffffffffffffffff90811690861681106106dd5760405162461bcd60e51b815260206004820152601060248201527f6e6f7468696e6720746f20636c61696d0000000000000000000000000000000060448201526064016103ad565b604080516bffffffffffffffffffffffff193360601b1660208201527fffffffffffffffffffffffff000000000000000000000000000000000000000060a089901b16603482015260009101604051602081830303815290604052610741906115e0565b9050610784868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506002549150849050610e5d565b6107d05760405162461bcd60e51b815260206004820152600d60248201527f696e76616c69642070726f6f660000000000000000000000000000000000000060448201526064016103ad565b3360009081526001602052604080822080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff8b81169190911790915590517fa0712d680000000000000000000000000000000000000000000000000000000081529884900390811660048a0152976001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a0712d68906024016020604051808303816000875af115801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b19190611604565b6040517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038b81166024830152604482018390529192507f0000000000000000000000000000000000000000000000000000000000000000909116906342842e0e90606401600060405180830381600087803b15801561093f57600080fd5b505af1158015610953573d6000803e3d6000fd5b50506040516bffffffffffffffffffffffff8b1692506001600160a01b038c16915033907ff9ddf109eb32ae61850b998bb6a5bfbcb1b0d513ab98d1f98d5ff43d977b9ab790600090a4505050505050505050565b6109b0610bf6565b6001600160a01b038116610a2c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103ad565b610a3581610d19565b50565b6000610a448251610a73565b82604051602001610a5692919061161d565b604051602081830303815290604052805190602001209050919050565b60606000610a8083610b13565b600101905060008167ffffffffffffffff811115610aa057610aa061148c565b6040519080825280601f01601f191660200182016040528015610aca576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610ad457509392505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610b5c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310610b88576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610ba657662386f26fc10000830492506010015b6305f5e1008310610bbe576305f5e100830492506008015b6127108310610bd257612710830492506004015b60648310610be4576064830492506002015b600a8310610bf0576001015b92915050565b6000546001600160a01b031633146103be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ad565b610c58610cc0565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054600160a01b900460ff166103be5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016103ad565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610d89610ddf565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ca33390565b600054600160a01b900460ff16156103be5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016103ad565b6000806000610e488585610e73565b91509150610e5581610eb8565b509392505050565b600082610e6a858461101d565b14949350505050565b6000808251604103610ea95760208301516040840151606085015160001a610e9d87828585611062565b94509450505050610eb1565b506000905060025b9250929050565b6000816004811115610ecc57610ecc611678565b03610ed45750565b6001816004811115610ee857610ee8611678565b03610f355760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016103ad565b6002816004811115610f4957610f49611678565b03610f965760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016103ad565b6003816004811115610faa57610faa611678565b03610a355760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016103ad565b600081815b8451811015610e555761104e828683815181106110415761104161168e565b6020026020010151611126565b91508061105a816116a4565b915050611022565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611099575060009050600361111d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156110ed573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166111165760006001925092505061111d565b9150600090505b94509492505050565b6000818310611142576000828152602084905260409020611151565b60008381526020839052604090205b9392505050565b60005b8381101561117357818101518382015260200161115b565b83811115611182576000848401525b50505050565b60208152600082518060208401526111a7816040850160208701611158565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610a3557600080fd5b600080604083850312156111e357600080fd5b82356111ee816111bb565b946020939093013593505050565b60006020828403121561120e57600080fd5b8135611151816111bb565b60006020828403121561122b57600080fd5b5035919050565b60008083601f84011261124457600080fd5b50813567ffffffffffffffff81111561125c57600080fd5b602083019150836020828501011115610eb157600080fd5b6000806020838503121561128757600080fd5b823567ffffffffffffffff81111561129e57600080fd5b6112aa85828601611232565b90969095509350505050565b80356bffffffffffffffffffffffff811681146112d257600080fd5b919050565b60008083601f8401126112e957600080fd5b50813567ffffffffffffffff81111561130157600080fd5b6020830191508360208260051b8501011115610eb157600080fd5b60008060008060006060868803121561133457600080fd5b61133d866112b6565b9450602086013567ffffffffffffffff8082111561135a57600080fd5b61136689838a016112d7565b9096509450604088013591508082111561137f57600080fd5b5061138c88828901611232565b969995985093965092949392505050565b600080600080600080608087890312156113b657600080fd5b86356113c1816111bb565b95506113cf602088016112b6565b9450604087013567ffffffffffffffff808211156113ec57600080fd5b6113f88a838b016112d7565b9096509450606089013591508082111561141157600080fd5b5061141e89828a01611232565b979a9699509497509295939492505050565b600181811c9082168061144457607f821691505b60208210810361146457634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561147c57600080fd5b8151801515811461115157600080fd5b634e487b7160e01b600052604160045260246000fd5b601f8211156114ec57600081815260208120601f850160051c810160208610156114c95750805b601f850160051c820191505b818110156114e8578281556001016114d5565b5050505b505050565b67ffffffffffffffff8311156115095761150961148c565b61151d836115178354611430565b836114a2565b6000601f84116001811461155157600085156115395750838201355b600019600387901b1c1916600186901b1783556105ba565b600083815260209020601f19861690835b828110156115825786850135825560209485019460019092019101611562565b508682101561159f5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b805160208083015191908110156114645760001960209190910360031b1b16919050565b60006020828403121561161657600080fd5b5051919050565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161165581601a850160208801611158565b83519083019061166c81601a840160208801611158565b01601a01949350505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060001982036116c557634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220f44b86a0793f70a48d7976bb8eca58cbffa6fcbd7c0ca3e15b3f709712a8a07d64736f6c634300080f0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
