[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "tokenOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "id", "type": "uint64" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "Claimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_to", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "string", "name": "to", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "tokens", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "chainId", "type": "uint256" } ], "name": "Teleport", "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": "tokens", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "_totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenOwner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "remaining", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "tokens", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "approveAndCall", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenOwner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "sigData", "type": "bytes" }, { "internalType": "bytes[]", "name": "signatures", "type": "bytes[]" } ], "name": "claim", "outputs": [ { "internalType": "address", "name": "toAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "name": "claimed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "newOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "oracles", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "message", "type": "bytes32" }, { "internalType": "bytes", "name": "sig", "type": "bytes" } ], "name": "recoverSigner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newOracle", "type": "address" } ], "name": "regOracle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "sig", "type": "bytes" } ], "name": "splitSignature", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" }, { "internalType": "bytes32", "name": "", "type": "bytes32" }, { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "to", "type": "string" }, { "internalType": "uint256", "name": "tokens", "type": "uint256" }, { "internalType": "uint256", "name": "chainid", "type": "uint256" } ], "name": "teleport", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "thisChainId", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "threshold", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" }, { "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "transferAnyERC20Token", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_remOracle", "type": "address" } ], "name": "unregOracle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "newChainId", "type": "uint8" } ], "name": "updateChainId", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "newThreshold", "type": "uint8" } ], "name": "updateThreshold", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600381526020017f544c4d0000000000000000000000000000000000000000000000000000000000815250600390805190602001906200009f929190620001b1565b506040518060400160405280601481526020017f416c69656e20576f726c6473205472696c69756d00000000000000000000000081525060049080519060200190620000ed929190620001b1565b506004600560006101000a81548160ff021916908360ff160217905550600560009054906101000a900460ff1660ff16600a0a6402540be40002600681905550600654600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003600760006101000a81548160ff021916908360ff1602179055506001600760016101000a81548160ff021916908360ff16021790555062000257565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f457805160ff191683800117855562000225565b8280016001018555821562000225579182015b828111156200022457825182559160200191906001019062000207565b5b50905062000234919062000238565b5090565b5b808211156200025357600081600090555060010162000239565b5090565b61335180620002676000396000f3fe6080604052600436106101bb5760003560e01c806395d89b41116100ec578063cae9ca511161008a578063dd62ed3e11610064578063dd62ed3e146106a6578063e3d29c5d146106e3578063f2fde38b1461070e578063f3df5b6914610737576101c5565b8063cae9ca5114610601578063d4ee1d901461063e578063dc39d06d14610669576101c5565b80639ea8a71a116100c65780639ea8a71a1461050b578063a7bb580314610548578063a9059cbb14610587578063addd5099146105c4576101c5565b806395d89b411461046657806397aba7f9146104915780639e8da543146104ce576101c5565b80636426d53d116101595780637739acc7116101335780637739acc7146103be57806379ba5097146103fb578063825540c7146104125780638da5cb5b1461043b576101c5565b80636426d53d1461031b57806370a0823114610358578063769c8d9014610395576101c5565b806323b872dd1161019557806323b872dd1461025d578063313ce5671461029a5780633eaaf86b146102c557806342cde4e8146102f0576101c5565b806306fdde03146101ca578063095ea7b3146101f557806318160ddd14610232576101c5565b366101c557600080fd5b600080fd5b3480156101d657600080fd5b506101df610774565b6040516101ec9190612e10565b60405180910390f35b34801561020157600080fd5b5061021c600480360381019061021791906126e0565b610812565b6040516102299190612db0565b60405180910390f35b34801561023e57600080fd5b50610247610904565b6040516102549190612fb0565b60405180910390f35b34801561026957600080fd5b50610284600480360381019061027f9190612691565b61094f565b6040516102919190612db0565b60405180910390f35b3480156102a657600080fd5b506102af610bfa565b6040516102bc919061301d565b60405180910390f35b3480156102d157600080fd5b506102da610c0d565b6040516102e79190612fb0565b60405180910390f35b3480156102fc57600080fd5b50610305610c13565b604051610312919061301d565b60405180910390f35b34801561032757600080fd5b50610342600480360381019061033d9190612841565b610c26565b60405161034f9190612d20565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a919061262c565b61113c565b60405161038c9190612fb0565b60405180910390f35b3480156103a157600080fd5b506103bc60048036038101906103b7919061262c565b611185565b005b3480156103ca57600080fd5b506103e560048036038101906103e09190612941565b6112c2565b6040516103f29190612db0565b60405180910390f35b34801561040757600080fd5b5061041061139e565b005b34801561041e57600080fd5b506104396004803603810190610434919061262c565b61153a565b005b34801561044757600080fd5b5061045061167a565b60405161045d9190612d20565b60405180910390f35b34801561047257600080fd5b5061047b61169e565b6040516104889190612e10565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b391906127ac565b61173c565b6040516104c59190612d20565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f09190612918565b6117db565b6040516105029190612db0565b60405180910390f35b34801561051757600080fd5b50610532600480360381019061052d91906128b1565b6117fb565b60405161053f9190612db0565b60405180910390f35b34801561055457600080fd5b5061056f600480360381019061056a9190612800565b611984565b60405161057e93929190613038565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a991906126e0565b6119da565b6040516105bb9190612db0565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e6919061262c565b611b75565b6040516105f89190612db0565b60405180910390f35b34801561060d57600080fd5b506106286004803603810190610623919061271c565b611b95565b6040516106359190612db0565b60405180910390f35b34801561064a57600080fd5b50610653611cf9565b6040516106609190612d20565b60405180910390f35b34801561067557600080fd5b50610690600480360381019061068b91906126e0565b611d1f565b60405161069d9190612db0565b60405180910390f35b3480156106b257600080fd5b506106cd60048036038101906106c89190612655565b611e2f565b6040516106da9190612fb0565b60405180910390f35b3480156106ef57600080fd5b506106f8611eb6565b604051610705919061301d565b60405180910390f35b34801561071a57600080fd5b506107356004803603810190610730919061262c565b611ec9565b005b34801561074357600080fd5b5061075e60048036038101906107599190612941565b611f65565b60405161076b9190612db0565b60405180910390f35b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561080a5780601f106107df5761010080835404028352916020019161080a565b820191906000526020600020905b8154815290600101906020018083116107ed57829003601f168201915b505050505081565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108f29190612fb0565b60405180910390a36001905092915050565b6000600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460065403905090565b60006109a382600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204190919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a7582600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204190919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b4782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205b90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610be79190612fb0565b60405180910390a3600190509392505050565b600560009054906101000a900460ff1681565b60065481565b600760009054906101000a900460ff1681565b6000610c30612438565b610c3985612075565b90506045855114610c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7690612ef0565b60405180910390fd5b600a848490501115610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd90612eb0565b60405180910390fd5b6000858051906020012090506000805b868690508160ff161015610ecf576000610d538489898560ff16818110610cf957fe5b9050602002810190610d0b919061306f565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061173c565b9050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015610e215750600a6000866000015167ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610ec1576001600a6000876000015167ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508280600101935050600a8360ff1610610ec05750610ecf565b5b508080600101915050610cd6565b50600760009054906101000a900460ff1660ff168160ff161015610f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1f90612f90565b60405180910390fd5b610f88836060015167ffffffffffffffff16600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204190919063ffffffff16565b600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061102f836060015167ffffffffffffffff16600860008660c0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205b90919063ffffffff16565b600860008560c0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507ff20fc6923b8057dd0c3b606483fcaa038229bb36ebc35a0040e3eaa39cf97b1783600001518460c0015185606001516040516110b593929190612fe6565b60405180910390a18260c0015173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85606001516040516111239190612fcb565b60405180910390a38260c0015193505050509392505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111dd57600080fd5b60011515600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611270576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126790612f30565b60405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461131d57600080fd5b60008260ff1611156113945760648260ff161115611370576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136790612f10565b60405180910390fd5b81600760016101000a81548160ff021916908360ff16021790555060019050611399565b600090505b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113f857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461159257600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561161f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161690612ed0565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117345780601f1061170957610100808354040283529160200191611734565b820191906000526020600020905b81548152906001019060200180831161171757829003601f168201915b505050505081565b60008060008061174b85611984565b809350819450829550505050601b8360ff161415801561176f5750601c8360ff1614155b1561178057600093505050506117d5565b600186848484604051600081526020016040526040516117a39493929190612dcb565b6020604051602081039080840390855afa1580156117c5573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b600061184f83600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204190919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118e483600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205b90919063ffffffff16565b600860008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f622824274e0937ee319b036740cd0887131781bc2032b47eac3e88a1be17f5d585858560405161197193929190612e32565b60405180910390a2600190509392505050565b6000806000604184511461199757600080fd5b60008060006020870151925060408701519150606087015160001a9050601b8160ff1610156119c757601b810190505b8083839550955095505050509193909250565b6000611a2e82600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204190919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ac382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205b90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b639190612fb0565b60405180910390a36001905092915050565b60026020528060005260406000206000915054906101000a900460ff1681565b600082600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051611c759190612fb0565b60405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff1660e01b8152600401611cbc9493929190612d3b565b600060405180830381600087803b158015611cd657600080fd5b505af1158015611cea573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d7a57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401611dd5929190612d87565b602060405180830381600087803b158015611def57600080fd5b505af1158015611e03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e279190612783565b905092915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760019054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f2157600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fc057600080fd5b60008260ff16111561203757600a8260ff161115612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a90612e90565b60405180910390fd5b81600760006101000a81548160ff021916908360ff1602179055506001905061203c565b600090505b919050565b60008282111561205057600080fd5b818303905092915050565b600081830190508281101561206f57600080fd5b92915050565b61207d612438565b612085612438565b60008060008060008060008060088b0101519650600860048b0101519550600c60088b0101519450601460088b0101519350601c60088b0101519250602460018b0101519150602560148b01015190506120de8761235f565b886000019067ffffffffffffffff16908167ffffffffffffffff1681525050612106866123f1565b886020019063ffffffff16908163ffffffff16815250506121268561235f565b886040019067ffffffffffffffff16908167ffffffffffffffff168152505061214e8461235f565b886060019067ffffffffffffffff16908167ffffffffffffffff16815250506121768361235f565b886080019067ffffffffffffffff16908167ffffffffffffffff1681525050818860a0019060ff16908160ff1681525050808860c0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508760a0015160ff16600760019054906101000a900460ff1660ff161461223a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223190612e70565b60405180910390fd5b612251886020015163ffffffff1662278d0061205b565b4210612292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228990612f50565b60405180910390fd5b600b6000896000015167ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561230b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230290612f70565b60405180910390fd5b6001600b60008a6000015167ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508798505050505050505050919050565b6000819050600866ff00ff00ff00ff821667ffffffffffffffff16901b600867ff00ff00ff00ff00831667ffffffffffffffff16901c179050601065ffff0000ffff821667ffffffffffffffff16901b601067ffff0000ffff0000831667ffffffffffffffff16901c17905060208167ffffffffffffffff16901b60208267ffffffffffffffff16901c179050919050565b6000819050600862ff00ff821663ffffffff16901b600863ff00ff00831663ffffffff16901c17905060108163ffffffff16901b60108263ffffffff16901c179050919050565b6040518060e00160405280600067ffffffffffffffff168152602001600063ffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6000813590506124cb81613291565b92915050565b60008083601f8401126124e357600080fd5b8235905067ffffffffffffffff8111156124fc57600080fd5b60208301915083602082028301111561251457600080fd5b9250929050565b60008151905061252a816132a8565b92915050565b60008135905061253f816132bf565b92915050565b600082601f83011261255657600080fd5b8135612569612564826130f3565b6130c6565b9150808252602083016020830185838301111561258557600080fd5b61259083828461323e565b50505092915050565b600082601f8301126125aa57600080fd5b81356125bd6125b88261311f565b6130c6565b915080825260208301602083018583830111156125d957600080fd5b6125e483828461323e565b50505092915050565b6000813590506125fc816132d6565b92915050565b600081359050612611816132ed565b92915050565b60008135905061262681613304565b92915050565b60006020828403121561263e57600080fd5b600061264c848285016124bc565b91505092915050565b6000806040838503121561266857600080fd5b6000612676858286016124bc565b9250506020612687858286016124bc565b9150509250929050565b6000806000606084860312156126a657600080fd5b60006126b4868287016124bc565b93505060206126c5868287016124bc565b92505060406126d6868287016125ed565b9150509250925092565b600080604083850312156126f357600080fd5b6000612701858286016124bc565b9250506020612712858286016125ed565b9150509250929050565b60008060006060848603121561273157600080fd5b600061273f868287016124bc565b9350506020612750868287016125ed565b925050604084013567ffffffffffffffff81111561276d57600080fd5b61277986828701612545565b9150509250925092565b60006020828403121561279557600080fd5b60006127a38482850161251b565b91505092915050565b600080604083850312156127bf57600080fd5b60006127cd85828601612530565b925050602083013567ffffffffffffffff8111156127ea57600080fd5b6127f685828601612545565b9150509250929050565b60006020828403121561281257600080fd5b600082013567ffffffffffffffff81111561282c57600080fd5b61283884828501612545565b91505092915050565b60008060006040848603121561285657600080fd5b600084013567ffffffffffffffff81111561287057600080fd5b61287c86828701612545565b935050602084013567ffffffffffffffff81111561289957600080fd5b6128a5868287016124d1565b92509250509250925092565b6000806000606084860312156128c657600080fd5b600084013567ffffffffffffffff8111156128e057600080fd5b6128ec86828701612599565b93505060206128fd868287016125ed565b925050604061290e868287016125ed565b9150509250925092565b60006020828403121561292a57600080fd5b600061293884828501612602565b91505092915050565b60006020828403121561295357600080fd5b600061296184828501612617565b91505092915050565b612973816131f6565b82525050565b61298281613183565b82525050565b61299181613195565b82525050565b6129a0816131a1565b82525050565b60006129b18261314b565b6129bb8185613161565b93506129cb81856020860161324d565b6129d481613280565b840191505092915050565b60006129ea82613156565b6129f48185613172565b9350612a0481856020860161324d565b612a0d81613280565b840191505092915050565b6000612a25601083613172565b91507f496e76616c696420436861696e204944000000000000000000000000000000006000830152602082019050919050565b6000612a65601b83613172565b91507f5468726573686f6c6420686173206d6178696d756d206f6620313000000000006000830152602082019050919050565b6000612aa5602883613172565b91507f4d6178696d756d206f66203130207369676e6174757265732063616e2062652060008301527f70726f76696465640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b0b601c83613172565b91507f4f7261636c6520697320616c72656164792072656769737465726564000000006000830152602082019050919050565b6000612b4b602083613172565b91507f5369676e61747572652064617461206973207468652077726f6e672073697a656000830152602082019050919050565b6000612b8b601283613172565b91507f436861696e494420697320746f6f2062696700000000000000000000000000006000830152602082019050919050565b6000612bcb601883613172565b91507f4f7261636c65206973206e6f74207265676973746572656400000000000000006000830152602082019050919050565b6000612c0b601483613172565b91507f54656c65706f72742068617320657870697265640000000000000000000000006000830152602082019050919050565b6000612c4b600f83613172565b91507f416c726561647920436c61696d656400000000000000000000000000000000006000830152602082019050919050565b6000612c8b602483613172565b91507f4e6f7420656e6f7567682076616c6964207369676e6174757265732070726f7660008301527f69646564000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b612ced816131cb565b82525050565b612cfc8161322c565b82525050565b612d0b816131d5565b82525050565b612d1a816131e9565b82525050565b6000602082019050612d356000830184612979565b92915050565b6000608082019050612d50600083018761296a565b612d5d6020830186612ce4565b612d6a604083018561296a565b8181036060830152612d7c81846129a6565b905095945050505050565b6000604082019050612d9c6000830185612979565b612da96020830184612ce4565b9392505050565b6000602082019050612dc56000830184612988565b92915050565b6000608082019050612de06000830187612997565b612ded6020830186612d11565b612dfa6040830185612997565b612e076060830184612997565b95945050505050565b60006020820190508181036000830152612e2a81846129df565b905092915050565b60006060820190508181036000830152612e4c81866129df565b9050612e5b6020830185612ce4565b612e686040830184612ce4565b949350505050565b60006020820190508181036000830152612e8981612a18565b9050919050565b60006020820190508181036000830152612ea981612a58565b9050919050565b60006020820190508181036000830152612ec981612a98565b9050919050565b60006020820190508181036000830152612ee981612afe565b9050919050565b60006020820190508181036000830152612f0981612b3e565b9050919050565b60006020820190508181036000830152612f2981612b7e565b9050919050565b60006020820190508181036000830152612f4981612bbe565b9050919050565b60006020820190508181036000830152612f6981612bfe565b9050919050565b60006020820190508181036000830152612f8981612c3e565b9050919050565b60006020820190508181036000830152612fa981612c7e565b9050919050565b6000602082019050612fc56000830184612ce4565b92915050565b6000602082019050612fe06000830184612cf3565b92915050565b6000606082019050612ffb6000830186612d02565b6130086020830185612979565b6130156040830184612cf3565b949350505050565b60006020820190506130326000830184612d11565b92915050565b600060608201905061304d6000830186612d11565b61305a6020830185612997565b6130676040830184612997565b949350505050565b6000808335600160200384360303811261308857600080fd5b80840192508235915067ffffffffffffffff8211156130a657600080fd5b6020830192506001820236038313156130be57600080fd5b509250929050565b6000604051905081810181811067ffffffffffffffff821117156130e957600080fd5b8060405250919050565b600067ffffffffffffffff82111561310a57600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff82111561313657600080fd5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061318e826131ab565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b600061320182613208565b9050919050565b60006132138261321a565b9050919050565b6000613225826131ab565b9050919050565b6000613237826131d5565b9050919050565b82818337600083830152505050565b60005b8381101561326b578082015181840152602081019050613250565b8381111561327a576000848401525b50505050565b6000601f19601f8301169050919050565b61329a81613183565b81146132a557600080fd5b50565b6132b181613195565b81146132bc57600080fd5b50565b6132c8816131a1565b81146132d357600080fd5b50565b6132df816131cb565b81146132ea57600080fd5b50565b6132f6816131d5565b811461330157600080fd5b50565b61330d816131e9565b811461331857600080fd5b5056fea264697066735822122096ea4bb0a78d8d74e167250f466bd38d23273f80f65efe9a80cd7a330d9a513464736f6c634300060c0033