UNPKG

@defi-wonderland/keep3r-v2

Version:

The Keep3r Network is a decentralized network for projects that need external devops, and for external teams to find keeper jobs

173 lines 58.6 kB
{ "_format": "hh-sol-artifact-1", "contractName": "UniV3PairManagerFactory", "sourceName": "solidity/contracts/UniV3PairManagerFactory.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "_governance", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "NoGovernanceZeroAddress", "type": "error" }, { "inputs": [], "name": "OnlyGovernance", "type": "error" }, { "inputs": [], "name": "OnlyOwner", "type": "error" }, { "inputs": [], "name": "OnlyPendingGovernance", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_pendingGovernance", "type": "address" } ], "name": "GovernanceProposal", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_governance", "type": "address" } ], "name": "GovernanceSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_pool", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_pairManager", "type": "address" } ], "name": "PairCreated", "type": "event" }, { "inputs": [], "name": "acceptGovernance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pool", "type": "address" } ], "name": "createPairManager", "outputs": [ { "internalType": "address", "name": "_pairManager", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "governance", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "pairManagers", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingGovernance", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_governance", "type": "address" } ], "name": "setGovernance", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b5060405161361f38038061361f83398101604081905261002f9161007c565b806001600160a01b0381166100565760405162b293ed60e81b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055506100ac565b60006020828403121561008e57600080fd5b81516001600160a01b03811681146100a557600080fd5b9392505050565b613564806100bb6000396000f3fe60806040523480156200001157600080fd5b50600436106200006a5760003560e01c8063238efcbc146200006f5780635aa6e675146200007b578063869fb51414620000a75780639cd7bef014620000be578063ab033ea914620000ea578063f39c38a01462000101575b600080fd5b6200007962000115565b005b6000546200008f906001600160a01b031681565b6040516200009e91906200035e565b60405180910390f35b6200008f620000b83660046200032c565b620001a4565b6200008f620000cf3660046200032c565b6002602052600090815260409020546001600160a01b031681565b62000079620000fb3660046200032c565b6200029a565b6001546200008f906001600160a01b031681565b6001546001600160a01b031633146200014157604051637ef5703160e11b815260040160405180910390fd5b60018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040517fc73be659241aade67e9a059bcf21494955018b213dbd1179054ccf928b13f3b6916200019a916200035e565b60405180910390a1565b6001600160a01b0381811660009081526002602052604081205490911615620001df5760405162dc149f60e41b815260040160405180910390fd5b60005460405183916001600160a01b031690620001fc906200031e565b6200020992919062000372565b604051809103906000f08015801562000226573d6000803e3d6000fd5b506001600160a01b038381166000908152600260205260409081902080546001600160a01b03191692841692909217909155519091507ff4e6903dddf8034e1689a73259c54f96ff67410886872805530f383ededfec23906200028d908490849062000372565b60405180910390a1919050565b6000546001600160a01b03163314620002c6576040516354348f0360e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383161790556040517fe987aaedf9d279143bdf1eee16cf1d0feb47742867d81083df8d6cd0a5ac857f90620003139083906200035e565b60405180910390a150565b6131a2806200038d83390190565b6000602082840312156200033f57600080fd5b81356001600160a01b03811681146200035757600080fd5b9392505050565b6001600160a01b0391909116815260200190565b6001600160a01b039283168152911660208201526040019056fe6101c06040523480156200001257600080fd5b50604051620031a2380380620031a2833981016040819052620000359162000b61565b806001600160a01b0381166200005d5760405162b293ed60e81b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b039283161781556040805163ddca3f4360e01b81529051919285169163ddca3f4391600480820192602092909190829003018186803b158015620000b557600080fd5b505afa158015620000ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f0919062000c76565b90506000836001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156200012e57600080fd5b505afa15801562000143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000169919062000b3c565b90506000846001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015620001a757600080fd5b505afa158015620001bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e2919062000b3c565b90506000856001600160a01b031663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022057600080fd5b505afa15801562000235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025b919062000b99565b905060006200026e82620d89e862000e56565b6200027d90620d89e862000d98565b905060006200028c8262000e92565b33606090811b60805289811b6001600160601b031990811660e05260e889811b6001600160e81b03191661010052600287810b810b821b6101a05286810b810b821b6101805284810b900b901b6101605287821b811660a0529086901b1660c052604080516395d89b4160e01b815290519192506001600160a01b038716916395d89b4191600480820192600092909190829003018186803b1580156200033257600080fd5b505afa15801562000347573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000371919081019062000bbe565b846001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015620003ab57600080fd5b505afa158015620003c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620003ea919081019062000bbe565b604051602001620003fd92919062000ced565b604051602081830303815290604052600290805190602001906200042392919062000a79565b50846001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156200045e57600080fd5b505afa15801562000473573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200049d919081019062000bbe565b846001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015620004d757600080fd5b505afa158015620004ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000516919081019062000bbe565b6040516020016200052992919062000c9d565b604051602081830303815290604052600390805190602001906200054f92919062000a79565b5062000566816200061760201b62000e861760201c565b6001600160a01b0316610120816001600160a01b031660601b8152505062000599826200061760201b62000e861760201c565b606090811b6001600160601b031916610140526040805191820181526001600160a01b03968716808352959096166020820181905262ffffff9790971695018590525050600780546001600160a01b03191690921790915550600880546001600160b81b031916909217600160a01b9091021790555062000f1a9050565b60008060008360020b1262000630578260020b6200063f565b8260020b6200063f9062000eb8565b905062000650620d89e71962000e92565b60020b8111156200068b5760405162461bcd60e51b81526020600482015260016024820152601560fa1b604482015260640160405180910390fd5b600060018216620006a157600160801b620006b3565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b031690506002821615620006eb576080620006e6826ffff97272373d413259a46990580e213a62000d76565b901c90505b60048216156200071857608062000713826ffff2e50f5f656932ef12357cf3c7fdcc62000d76565b901c90505b60088216156200074557608062000740826fffe5caca7e10e4e61c3624eaa0941cd062000d76565b901c90505b6010821615620007725760806200076d826fffcb9843d60f6159c9db58835c92664462000d76565b901c90505b60208216156200079f5760806200079a826fff973b41fa98c081472e6896dfb254c062000d76565b901c90505b6040821615620007cc576080620007c7826fff2ea16466c96a3843ec78b326b5286162000d76565b901c90505b6080821615620007f9576080620007f4826ffe5dee046a99a2a811c461f1969c305362000d76565b901c90505b6101008216156200082757608062000822826ffcbe86c7900a88aedcffc83b479aa3a462000d76565b901c90505b6102008216156200085557608062000850826ff987a7253ac413176f2b074cf7815e5462000d76565b901c90505b610400821615620008835760806200087e826ff3392b0822b70005940c7a398e4b70f362000d76565b901c90505b610800821615620008b1576080620008ac826fe7159475a2c29b7443b29c7fa6e889d962000d76565b901c90505b611000821615620008df576080620008da826fd097f3bdfd2022b8845ad8f792aa582562000d76565b901c90505b6120008216156200090d57608062000908826fa9f746462d870fdf8a65dc1f90e061e562000d76565b901c90505b6140008216156200093b57608062000936826f70d869a156d2a1b890bb3df62baf32f762000d76565b901c90505b6180008216156200096957608062000964826f31be135f97d08fd981231505542fcfa662000d76565b901c90505b620100008216156200099857608062000993826f09aa508b5b7a84e1c677de54f3e99bc962000d76565b901c90505b62020000821615620009c6576080620009c1826e5d6af8dedb81196699c329225ee60462000d76565b901c90505b62040000821615620009f3576080620009ee826d2216e584f5fa1ea926041bedfe9862000d76565b901c90505b6208000082161562000a1e57608062000a19826b048a170391f7dc42444e8fa262000d76565b901c90505b60008460020b131562000a3c5762000a398160001962000d5f565b90505b62000a4d6401000000008262000e7b565b1562000a5b57600162000a5e565b60005b62000a719060ff16602083901c62000d44565b949350505050565b82805462000a879062000e19565b90600052602060002090601f01602090048101928262000aab576000855562000af6565b82601f1062000ac657805160ff191683800117855562000af6565b8280016001018555821562000af6579182015b8281111562000af657825182559160200191906001019062000ad9565b5062000b0492915062000b08565b5090565b5b8082111562000b04576000815560010162000b09565b80516001600160a01b038116811462000b3757600080fd5b919050565b60006020828403121562000b4f57600080fd5b62000b5a8262000b1f565b9392505050565b6000806040838503121562000b7557600080fd5b62000b808362000b1f565b915062000b906020840162000b1f565b90509250929050565b60006020828403121562000bac57600080fd5b81518060020b811462000b5a57600080fd5b60006020828403121562000bd157600080fd5b81516001600160401b038082111562000be957600080fd5b818401915084601f83011262000bfe57600080fd5b81518181111562000c135762000c1362000f04565b604051601f8201601f19908116603f0116810190838211818310171562000c3e5762000c3e62000f04565b8160405282815287602084870101111562000c5857600080fd5b62000c6b83602083016020880162000de6565b979650505050505050565b60006020828403121562000c8957600080fd5b815162ffffff8116811462000b5a57600080fd5b636b4c502d60e01b81526000835162000cbe81600485016020880162000de6565b602f60f81b600491840191820152835162000ce181600584016020880162000de6565b01600501949350505050565b6a025b2b2b819b926281016960ad1b81526000835162000d1581600b85016020880162000de6565b602f60f81b600b91840191820152835162000d3881600c84016020880162000de6565b01600c01949350505050565b6000821982111562000d5a5762000d5a62000ed8565b500190565b60008262000d715762000d7162000eee565b500490565b600081600019048311821515161562000d935762000d9362000ed8565b500290565b60008160020b8360020b6000811281627fffff190183128115161562000dc25762000dc262000ed8565b81627fffff01831381161562000ddc5762000ddc62000ed8565b5090039392505050565b60005b8381101562000e0357818101518382015260200162000de9565b8381111562000e13576000848401525b50505050565b600181811c9082168062000e2e57607f821691505b6020821081141562000e5057634e487b7160e01b600052602260045260246000fd5b50919050565b60008260020b8062000e6c5762000e6c62000eee565b808360020b0791505092915050565b60008262000e8d5762000e8d62000eee565b500690565b60008160020b627fffff1981141562000eaf5762000eaf62000ed8565b60000392915050565b6000600160ff1b82141562000ed15762000ed162000ed8565b5060000390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160601c6101405160601c6101605160e81c6101805160e81c6101a05160e81c6121466200105c60003960006104200152600081816102bd015281816105e60152818161097b01528181610ad201528181610cc901528181610df301526115080152600081816102f7015281816105c50152818161095001528181610ab001528181610ca801528181610dd101526114e60152600081816103d101526113fe01526000818161027c01526113dd015260006104ac01526000818161022101528181610595015281816109bf01528181610a8101528181610b8801528181610bdb01528181610c1901528181610c7801528181610d9e0152818161134001526114b501526000610447015260006101ed015260006103aa01526121466000f3fe608060405234801561001057600080fd5b50600436106101645760003560e01c806395d89b41116100c957806395d89b411461034c578063a3e6dc2814610354578063a9059cbb1461037f578063ab033ea914610392578063c45a0155146103a5578063c6275261146103cc578063cf51148d146103f3578063d0c93a7c1461041b578063d21220a714610442578063d348799714610469578063dd62ed3e1461047c578063ddca3f43146104a7578063e5225381146104e2578063f39c38a0146104ea57600080fd5b806306fdde031461016957806309218e9114610187578063095ea7b3146101c55780630dfe1681146101e857806316f0115b1461021c57806318160ddd14610243578063238efcbc1461025a57806323b872dd146102645780632ea28f5b14610277578063313ce5671461029e57806355b812a8146102b857806359c4f905146102f25780635aa6e6751461031957806370a082311461032c575b600080fd5b6101716104fd565b60405161017e9190611f09565b60405180910390f35b61018f61058b565b604080516001600160801b039687168152602081019590955284019290925283166060830152909116608082015260a00161017e565b6101d86101d3366004611a98565b6106ac565b604051901515815260200161017e565b61020f7f000000000000000000000000000000000000000000000000000000000000000081565b60405161017e9190611e68565b61020f7f000000000000000000000000000000000000000000000000000000000000000081565b61024c60045481565b60405190815260200161017e565b610262610718565b005b6101d8610272366004611a57565b6107a4565b61020f7f000000000000000000000000000000000000000000000000000000000000000081565b6102a6601281565b60405160ff909116815260200161017e565b6102df7f000000000000000000000000000000000000000000000000000000000000000081565b60405160029190910b815260200161017e565b6102df7f000000000000000000000000000000000000000000000000000000000000000081565b60005461020f906001600160a01b031681565b61024c61033a366004611a01565b60066020526000908152604090205481565b61017161086d565b610367610362366004611db1565b61087a565b6040516001600160801b03909116815260200161017e565b6101d861038d366004611a98565b6108aa565b6102626103a0366004611a01565b6108c0565b61020f7f000000000000000000000000000000000000000000000000000000000000000081565b61020f7f000000000000000000000000000000000000000000000000000000000000000081565b610406610401366004611bc8565b610941565b6040805192835260208301919091520161017e565b6102df7f000000000000000000000000000000000000000000000000000000000000000081565b61020f7f000000000000000000000000000000000000000000000000000000000000000081565b610262610477366004611d32565b610b6d565b61024c61048a366004611a1e565b600560209081526000928352604080842090915290825290205481565b6104ce7f000000000000000000000000000000000000000000000000000000000000000081565b60405162ffffff909116815260200161017e565b610406610c45565b60015461020f906001600160a01b031681565b6002805461050a90612008565b80601f016020809104026020016040519081016040528092919081815260200182805461053690612008565b80156105835780601f1061055857610100808354040283529160200191610583565b820191906000526020600020905b81548152906001019060200180831161056657829003601f168201915b505050505081565b60008060008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663514ea4bf307f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405160200161061793929190611e1c565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161064b91815260200190565b60a06040518083038186803b15801561066357600080fd5b505afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b9190611c12565b939992985090965094509092509050565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107079086815260200190565b60405180910390a350600192915050565b6001546001600160a01b0316331461074357604051637ef5703160e11b815260040160405180910390fd5b60018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040517fc73be659241aade67e9a059bcf21494955018b213dbd1179054ccf928b13f3b69161079a91611e68565b60405180910390a1565b6001600160a01b0383166000818152600560209081526040808320338085529252822054919290919082148015906107de57506000198114155b156108545760006107ef8583611fc5565b6001600160a01b038881166000818152600560209081526040808320948916808452948252918290208590559051848152939450919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b61085f86868661129c565b6001925050505b9392505050565b6003805461050a90612008565b600061088886868686611338565b509091506108a19050826001600160801b0383166115bf565b95945050505050565b60006108b733848461129c565b50600192915050565b6000546001600160a01b031633146108eb576040516354348f0360e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383161790556040517fe987aaedf9d279143bdf1eee16cf1d0feb47742867d81083df8d6cd0a5ac857f90610936908390611e68565b60405180910390a150565b60405163a34123a760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600290810b60048301527f0000000000000000000000000000000000000000000000000000000000000000900b60248201526001600160801b038516604482015260009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a34123a7906064016040805180830381600087803b158015610a0257600080fd5b505af1158015610a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3a9190611d0e565b909250905084821080610a4c57508381105b15610a6a576040516397c7f53760e01b815260040160405180910390fd5b6040516309e3d67b60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634f1eb3d890610afe9086907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009088908890600401611ecc565b6040805180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4f9190611b99565b5050610b6433876001600160801b0316611637565b94509492505050565b6000610b7b82840184611adf565b9050336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bc657604051634b60273560e01b815260040160405180910390fd5b8415610c00578051516020820151610c0091907f0000000000000000000000000000000000000000000000000000000000000000886116a7565b8315610c3e57610c3e81600001516020015182602001517f0000000000000000000000000000000000000000000000000000000000000000876116a7565b5050505050565b6000805481906001600160a01b03163314610c73576040516354348f0360e01b815260040160405180910390fd5b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663514ea4bf307f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000604051602001610cfa93929190611e1c565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401610d2e91815260200190565b60a06040518083038186803b158015610d4657600080fd5b505afa158015610d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7e9190611c12565b6000546040516309e3d67b60e31b81529297509095506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169550634f1eb3d89450610e1f935016907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009088908890600401611ecc565b6040805180830381600087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e709190611b99565b6001600160801b03918216969116945092505050565b60008060008360020b12610e9d578260020b610eaa565b8260020b610eaa9061207a565b9050610eb9620d89e719612057565b60020b811115610ef35760405162461bcd60e51b81526020600482015260016024820152601560fa1b604482015260640160405180910390fd5b600060018216610f0757600160801b610f19565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b031690506002821615610f4e576080610f49826ffff97272373d413259a46990580e213a611f7e565b901c90505b6004821615610f78576080610f73826ffff2e50f5f656932ef12357cf3c7fdcc611f7e565b901c90505b6008821615610fa2576080610f9d826fffe5caca7e10e4e61c3624eaa0941cd0611f7e565b901c90505b6010821615610fcc576080610fc7826fffcb9843d60f6159c9db58835c926644611f7e565b901c90505b6020821615610ff6576080610ff1826fff973b41fa98c081472e6896dfb254c0611f7e565b901c90505b604082161561102057608061101b826fff2ea16466c96a3843ec78b326b52861611f7e565b901c90505b608082161561104a576080611045826ffe5dee046a99a2a811c461f1969c3053611f7e565b901c90505b610100821615611075576080611070826ffcbe86c7900a88aedcffc83b479aa3a4611f7e565b901c90505b6102008216156110a057608061109b826ff987a7253ac413176f2b074cf7815e54611f7e565b901c90505b6104008216156110cb5760806110c6826ff3392b0822b70005940c7a398e4b70f3611f7e565b901c90505b6108008216156110f65760806110f1826fe7159475a2c29b7443b29c7fa6e889d9611f7e565b901c90505b61100082161561112157608061111c826fd097f3bdfd2022b8845ad8f792aa5825611f7e565b901c90505b61200082161561114c576080611147826fa9f746462d870fdf8a65dc1f90e061e5611f7e565b901c90505b614000821615611177576080611172826f70d869a156d2a1b890bb3df62baf32f7611f7e565b901c90505b6180008216156111a257608061119d826f31be135f97d08fd981231505542fcfa6611f7e565b901c90505b620100008216156111ce5760806111c9826f09aa508b5b7a84e1c677de54f3e99bc9611f7e565b901c90505b620200008216156111f95760806111f4826e5d6af8dedb81196699c329225ee604611f7e565b901c90505b6204000082161561122357608061121e826d2216e584f5fa1ea926041bedfe98611f7e565b901c90505b6208000082161561124b576080611246826b048a170391f7dc42444e8fa2611f7e565b901c90505b60008460020b13156112665761126381600019611f6a565b90505b611274600160201b82612043565b15611280576001611283565b60005b6112949060ff16602083901c611f52565b949350505050565b6001600160a01b038316600090815260066020526040812080548392906112c4908490611fc5565b90915550506001600160a01b038216600090815260066020526040812080548392906112f1908490611f52565b92505081905550816001600160a01b0316836001600160a01b03166000805160206120f18339815191528360405161132b91815260200190565b60405180910390a3505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561139757600080fd5b505afa1580156113ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113cf9190611c74565b5050505050509050611424817f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008b8b6116b9565b6040805160a080820183526007546001600160a01b039081168385018181526008548084166060808801918252600160a01b90920462ffffff9081166080808a01918252948952336020998a019081528a51998a019690965291518616888a01529051169086015290518216848201528451808503909101815291830193849052633c8a7d8d60e01b9093529296507f000000000000000000000000000000000000000000000000000000000000000090911691633c8a7d8d916115339130917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000918b919060a401611e7c565b6040805180830381600087803b15801561154c57600080fd5b505af1158015611560573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115849190611d0e565b90935091508583108061159657508482105b156115b4576040516397c7f53760e01b815260040160405180910390fd5b509450945094915050565b80600460008282546115d19190611f52565b90915550506001600160a01b038216600090815260066020526040812080548392906115fe908490611f52565b90915550506040518181526001600160a01b038316906000906000805160206120f1833981519152906020015b60405180910390a35050565b80600460008282546116499190611fc5565b90915550506001600160a01b03821660009081526006602052604081208054839290611676908490611fc5565b90915550506040518181526000906001600160a01b038416906000805160206120f18339815191529060200161162b565b6116b38484848461177b565b50505050565b6000836001600160a01b0316856001600160a01b031611156116d9579293925b846001600160a01b0316866001600160a01b031611611704576116fd858585611875565b90506108a1565b836001600160a01b0316866001600160a01b0316101561176657600061172b878686611875565b9050600061173a8789866118df565b9050806001600160801b0316826001600160801b03161061175b578061175d565b815b925050506108a1565b6117718585846118df565b9695505050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916117df9190611e4c565b6000604051808303816000865af19150503d806000811461181c576040519150601f19603f3d011682016040523d82523d6000602084013e611821565b606091505b509150915081158061184f575080511580159061184f57508080602001905181019061184d9190611ac4565b155b1561186d576040516316369daf60e31b815260040160405180910390fd5b505050505050565b6000826001600160a01b0316846001600160a01b03161115611895579192915b60006118b8856001600160a01b0316856001600160a01b0316600160601b611915565b90506108a16118da84836118cc8989611f9d565b6001600160a01b0316611915565b6119c4565b6000826001600160a01b0316846001600160a01b031611156118ff579192915b6112946118da83600160601b6118cc8888611f9d565b60008080600019858709858702925082811083820303915050806000141561194f576000841161194457600080fd5b508290049050610866565b80841161195b57600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b806001600160801b03811681146119da57600080fd5b919050565b805180151581146119da57600080fd5b805161ffff811681146119da57600080fd5b600060208284031215611a1357600080fd5b8135610866816120c3565b60008060408385031215611a3157600080fd5b8235611a3c816120c3565b91506020830135611a4c816120c3565b809150509250929050565b600080600060608486031215611a6c57600080fd5b8335611a77816120c3565b92506020840135611a87816120c3565b929592945050506040919091013590565b60008060408385031215611aab57600080fd5b8235611ab6816120c3565b946020939093013593505050565b600060208284031215611ad657600080fd5b610866826119df565b60008183036080811215611af257600080fd5b604051604081018181106001600160401b0382111715611b2257634e487b7160e01b600052604160045260246000fd5b6040526060821215611b3357600080fd5b611b3b611f1c565b91508335611b48816120c3565b82526020840135611b58816120c3565b6020830152604084013562ffffff81168114611b7357600080fd5b6040830152908152606083013590611b8a826120c3565b60208101919091529392505050565b60008060408385031215611bac57600080fd5b8251611bb7816120db565b6020840151909250611a4c816120db565b60008060008060808587031215611bde57600080fd5b8435611be9816120db565b935060208501359250604085013591506060850135611c07816120c3565b939692955090935050565b600080600080600060a08688031215611c2a57600080fd5b8551611c35816120db565b8095505060208601519350604086015192506060860151611c55816120db565b6080870151909250611c66816120db565b809150509295509295909350565b600080600080600080600060e0888a031215611c8f57600080fd5b8751611c9a816120c3565b8097505060208801518060020b8114611cb257600080fd5b9550611cc0604089016119ef565b9450611cce606089016119ef565b9350611cdc608089016119ef565b925060a088015160ff81168114611cf257600080fd5b9150611d0060c089016119df565b905092959891949750929550565b60008060408385031215611d2157600080fd5b505080516020909101519092909150565b60008060008060608587031215611d4857600080fd5b843593506020850135925060408501356001600160401b0380821115611d6d57600080fd5b818701915087601f830112611d8157600080fd5b813581811115611d9057600080fd5b886020828501011115611da257600080fd5b95989497505060200194505050565b600080600080600060a08688031215611dc957600080fd5b853594506020860135935060408601359250606086013591506080860135611c66816120c3565b60008151808452611e08816020860160208601611fdc565b601f01601f19169290920160200192915050565b60609390931b6001600160601b0319168352600291820b60e890811b6014850152910b901b6017820152601a0190565b60008251611e5e818460208701611fdc565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0386168152600285810b602083015284900b60408201526001600160801b038316606082015260a060808201819052600090611ec190830184611df0565b979650505050505050565b6001600160a01b03959095168552600293840b60208601529190920b60408401526001600160801b03918216606084015216608082015260a00190565b6020815260006108666020830184611df0565b604051606081016001600160401b0381118282101715611f4c57634e487b7160e01b600052604160045260246000fd5b60405290565b60008219821115611f6557611f65612097565b500190565b600082611f7957611f796120ad565b500490565b6000816000190483118215151615611f9857611f98612097565b500290565b60006001600160a01b0383811690831681811015611fbd57611fbd612097565b039392505050565b600082821015611fd757611fd7612097565b500390565b60005b83811015611ff7578181015183820152602001611fdf565b838111156116b35750506000910152565b600181811c9082168061201c57607f821691505b6020821081141561203d57634e487b7160e01b600052602260045260246000fd5b50919050565b600082612052576120526120ad565b500690565b60008160020b627fffff1981141561207157612071612097565b60000392915050565b6000600160ff1b82141561209057612090612097565b5060000390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6001600160a01b03811681146120d857600080fd5b50565b6001600160801b03811681146120d857600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220176e0789f293d3cdd0b53b0d393ae37177f51883457a8f3566fa6f880833500464736f6c63430008070033a2646970667358221220bcc8748a58050357f695d15ee19ce2cb684749f8d6b50f3abf3f935a166ed62a64736f6c63430008070033", "deployedBytecode": "0x60806040523480156200001157600080fd5b50600436106200006a5760003560e01c8063238efcbc146200006f5780635aa6e675146200007b578063869fb51414620000a75780639cd7bef014620000be578063ab033ea914620000ea578063f39c38a01462000101575b600080fd5b6200007962000115565b005b6000546200008f906001600160a01b031681565b6040516200009e91906200035e565b60405180910390f35b6200008f620000b83660046200032c565b620001a4565b6200008f620000cf3660046200032c565b6002602052600090815260409020546001600160a01b031681565b62000079620000fb3660046200032c565b6200029a565b6001546200008f906001600160a01b031681565b6001546001600160a01b031633146200014157604051637ef5703160e11b815260040160405180910390fd5b60018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040517fc73be659241aade67e9a059bcf21494955018b213dbd1179054ccf928b13f3b6916200019a916200035e565b60405180910390a1565b6001600160a01b0381811660009081526002602052604081205490911615620001df5760405162dc149f60e41b815260040160405180910390fd5b60005460405183916001600160a01b031690620001fc906200031e565b6200020992919062000372565b604051809103906000f08015801562000226573d6000803e3d6000fd5b506001600160a01b038381166000908152600260205260409081902080546001600160a01b03191692841692909217909155519091507ff4e6903dddf8034e1689a73259c54f96ff67410886872805530f383ededfec23906200028d908490849062000372565b60405180910390a1919050565b6000546001600160a01b03163314620002c6576040516354348f0360e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383161790556040517fe987aaedf9d279143bdf1eee16cf1d0feb47742867d81083df8d6cd0a5ac857f90620003139083906200035e565b60405180910390a150565b6131a2806200038d83390190565b6000602082840312156200033f57600080fd5b81356001600160a01b03811681146200035757600080fd5b9392505050565b6001600160a01b0391909116815260200190565b6001600160a01b039283168152911660208201526040019056fe6101c06040523480156200001257600080fd5b50604051620031a2380380620031a2833981016040819052620000359162000b61565b806001600160a01b0381166200005d5760405162b293ed60e81b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b039283161781556040805163ddca3f4360e01b81529051919285169163ddca3f4391600480820192602092909190829003018186803b158015620000b557600080fd5b505afa158015620000ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f0919062000c76565b90506000836001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156200012e57600080fd5b505afa15801562000143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000169919062000b3c565b90506000846001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015620001a757600080fd5b505afa158015620001bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e2919062000b3c565b90506000856001600160a01b031663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022057600080fd5b505afa15801562000235573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025b919062000b99565b905060006200026e82620d89e862000e56565b6200027d90620d89e862000d98565b905060006200028c8262000e92565b33606090811b60805289811b6001600160601b031990811660e05260e889811b6001600160e81b03191661010052600287810b810b821b6101a05286810b810b821b6101805284810b900b901b6101605287821b811660a0529086901b1660c052604080516395d89b4160e01b815290519192506001600160a01b038716916395d89b4191600480820192600092909190829003018186803b1580156200033257600080fd5b505afa15801562000347573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000371919081019062000bbe565b846001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015620003ab57600080fd5b505afa158015620003c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620003ea919081019062000bbe565b604051602001620003fd92919062000ced565b604051602081830303815290604052600290805190602001906200042392919062000a79565b50846001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156200045e57600080fd5b505afa15801562000473573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200049d919081019062000bbe565b846001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015620004d757600080fd5b505afa158015620004ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000516919081019062000bbe565b6040516020016200052992919062000c9d565b604051602081830303815290604052600390805190602001906200054f92919062000a79565b5062000566816200061760201b62000e861760201c565b6001600160a01b0316610120816001600160a01b031660601b8152505062000599826200061760201b62000e861760201c565b606090811b6001600160601b031916610140526040805191820181526001600160a01b03968716808352959096166020820181905262ffffff9790971695018590525050600780546001600160a01b03191690921790915550600880546001600160b81b031916909217600160a01b9091021790555062000f1a9050565b60008060008360020b1262000630578260020b6200063f565b8260020b6200063f9062000eb8565b905062000650620d89e71962000e92565b60020b8111156200068b5760405162461bcd60e51b81526020600482015260016024820152601560fa1b604482015260640160405180910390fd5b600060018216620006a157600160801b620006b3565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b031690506002821615620006eb576080620006e6826ffff97272373d413259a46990580e213a62000d76565b901c90505b60048216156200071857608062000713826ffff2e50f5f656932ef12357cf3c7fdcc62000d76565b901c90505b60088216156200074557608062000740826fffe5caca7e10e4e61c3624eaa0941cd062000d76565b901c90505b6010821615620007725760806200076d826fffcb9843d60f6159c9db58835c92664462000d76565b901c90505b60208216156200079f5760806200079a826fff973b41fa98c081472e6896dfb254c062000d76565b901c90505b6040821615620007cc576080620007c7826fff2ea16466c96a3843ec78b326b5286162000d76565b901c90505b6080821615620007f9576080620007f4826ffe5dee046a99a2a811c461f1969c305362000d76565b901c90505b6101008216156200082757608062000822826ffcbe86c7900a88aedcffc83b479aa3a462000d76565b901c90505b6102008216156200085557608062000850826ff987a7253ac413176f2b074cf7815e5462000d76565b901c90505b610400821615620008835760806200087e826ff3392b0822b70005940c7a398e4b70f362000d76565b901c90505b610800821615620008b1576080620008ac826fe7159475a2c29b7443b29c7fa6e889d962000d76565b901c90505b611000821615620008df576080620008da826fd097f3bdfd2022b8845ad8f792aa582562000d76565b901c90505b6120008216156200090d57608062000908826fa9f746462d870fdf8a65dc1f90e061e562000d76565b901c90505b6140008216156200093b57608062000936826f70d869a156d2a1b890bb3df62baf32f762000d76565b901c90505b6180008216156200096957608062000964826f31be135f97d08fd981231505542fcfa662000d76565b901c90505b620100008216156200099857608062000993826f09aa508b5b7a84e1c677de54f3e99bc962000d76565b901c90505b62020000821615620009c6576080620009c1826e5d6af8dedb81196699c329225ee60462000d76565b901c90505b62040000821615620009f3576080620009ee826d2216e584f5fa1ea926041bedfe9862000d76565b901c90505b6208000082161562000a1e57608062000a19826b048a170391f7dc42444e8fa262000d76565b901c90505b60008460020b131562000a3c5762000a398160001962000d5f565b90505b62000a4d6401000000008262000e7b565b1562000a5b57600162000a5e565b60005b62000a719060ff16602083901c62000d44565b949350505050565b82805462000a879062000e19565b90600052602060002090601f01602090048101928262000aab576000855562000af6565b82601f1062000ac657805160ff191683800117855562000af6565b8280016001018555821562000af6579182015b8281111562000af657825182559160200191906001019062000ad9565b5062000b0492915062000b08565b5090565b5b8082111562000b04576000815560010162000b09565b80516001600160a01b038116811462000b3757600080fd5b919050565b60006020828403121562000b4f57600080fd5b62000b5a8262000b1f565b9392505050565b6000806040838503121562000b7557600080fd5b62000b808362000b1f565b915062000b906020840162000b1f565b90509250929050565b60006020828403121562000bac57600080fd5b81518060020b811462000b5a57600080fd5b60006020828403121562000bd157600080fd5b81516001600160401b038082111562000be957600080fd5b818401915084601f83011262000bfe57600080fd5b81518181111562000c135762000c1362000f04565b604051601f8201601f19908116603f0116810190838211818310171562000c3e5762000c3e62000f04565b8160405282815287602084870101111562000c5857600080fd5b62000c6b83602083016020880162000de6565b979650505050505050565b60006020828403121562000c8957600080fd5b815162ffffff8116811462000b5a57600080fd5b636b4c502d60e01b81526000835162000cbe81600485016020880162000de6565b602f60f81b600491840191820152835162000ce181600584016020880162000de6565b01600501949350505050565b6a025b2b2b819b926281016960ad1b81526000835162000d1581600b85016020880162000de6565b602f60f81b600b91840191820152835162000d3881600c84016020880162000de6565b01600c01949350505050565b6000821982111562000d5a5762000d5a62000ed8565b500190565b60008262000d715762000d7162000eee565b500490565b600081600019048311821515161562000d935762000d9362000ed8565b500290565b60008160020b8360020b6000811281627fffff190183128115161562000dc25762000dc262000ed8565b81627fffff01831381161562000ddc5762000ddc62000ed8565b5090039392505050565b60005b8381101562000e0357818101518382015260200162000de9565b8381111562000e13576000848401525b50505050565b600181811c9082168062000e2e57607f821691505b6020821081141562000e5057634e487b7160e01b600052602260045260246000fd5b50919050565b60008260020b8062000e6c5762000e6c62000eee565b808360020b0791505092915050565b60008262000e8d5762000e8d62000eee565b500690565b60008160020b627fffff1981141562000eaf5762000eaf62000ed8565b60000392915050565b6000600160ff1b82141562000ed15762000ed162000ed8565b5060000390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160601c6101405160601c6101605160e81c6101805160e81c6101a05160e81c6121466200105c60003960006104200152600081816102bd015281816105e60152818161097b01528181610ad201528181610cc901528181610df301526115080152600081816102f7015281816105c50152818161095001528181610ab001528181610ca801528181610dd101526114e60152600081816103d101526113fe01526000818161027c01526113dd015260006104ac01526000818161022101528181610595015281816109bf01528181610a8101528181610b8801528181610bdb01528181610c1901528181610c7801528181610d9e0152818161134001526114b501526000610447015260006101ed015260006103aa01526121466000f3fe608060405234801561001057600080fd5b50600436106101645760003560e01c806395d89b41116100c957806395d89b411461034c578063a3e6dc2814610354578063a9059cbb1461037f578063ab033ea914610392578063c45a0155146103a5578063c6275261146103cc578063cf51148d146103f3578063d0c93a7c1461041b578063d21220a714610442578063d348799714610469578063dd62ed3e1461047c578063ddca3f43146104a7578063e5225381146104e2578063f39c38a0146104ea57600080fd5b806306fdde031461016957806309218e9114610187578063095ea7b3146101c55780630dfe1681146101e857806316f0115b1461021c57806318160ddd14610243578063238efcbc1461025a57806323b872dd146102645780632ea28f5b14610277578063313ce5671461029e57806355b812a8146102b857806359c4f905146102f25780635aa6e6751461031957806370a082311461032c575b600080fd5b6101716104fd565b60405161017e9190611f09565b60405180910390f35b61018f61058b565b604080516001600160801b039687168152602081019590955284019290925283166060830152909116608082015260a00161017e565b6101d86101d3366004611a98565b6106ac565b604051901515815260200161017e565b61020f7f000000000000000000000000000000000000000000000000000000000000000081565b60405161017e9190611e68565b61020f7f000000000000000000000000000000000000000000000000000000000000000081565b61024c60045481565b60405190815260200161017e565b610262610718565b005b6101d8610272366004611a57565b6107a4565b61020f7f000000000000000000000000000000000000000000000000000000000000000081565b6102a6601281565b60405160ff909116815260200161017e565b6102df7f000000000000000000000000000000000000000000000000000000000000000081565b60405160029190910b815260200161017e565b6102df7f000000000000000000000000000000000000000000000000000000000000000081565b60005461020f906001600160a01b031681565b61024c61033a366004611a01565b60066020526000908152604090205481565b61017161086d565b610367610362366004611db1565b61087a565b6040516001600160801b03909116815260200161017e565b6101d861038d366004611a98565b6108aa565b6102626103a0366004611a01565b6108c0565b61020f7f000000000000000000000000000000000000000000000000000000000000000081565b61020f7f000000000000000000000000000000000000000000000000000000000000000081565b610406610401366004611bc8565b610941565b6040805192835260208301919091520161017e565b6102df7f000000000000000000000000000000000000000000000000000000000000000081565b61020f7f000000000000000000000000000000000000000000000000000000000000000081565b610262610477366004611d32565b610b6d565b61024c61048a366004611a1e565b600560209081526000928352604080842090915290825290205481565b6104ce7f000000000000000000000000000000000000000000000000000000000000000081565b60405162ffffff909116815260200161017e565b610406610c45565b60015461020f906001600160a01b031681565b6002805461050a90612008565b80601f016020809104026020016040519081016040528092919081815260200182805461053690612008565b80156105835780601f1061055857610100808354040283529160200191610583565b820191906000526020600020905b81548152906001019060200180831161056657829003601f168201915b505050505081565b60008060008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663514ea4bf307f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060405160200161061793929190611e1c565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161064b91815260200190565b60a06040518083038186803b15801561066357600080fd5b505afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b9190611c12565b939992985090965094509092509050565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107079086815260200190565b60405180910390a350600192915050565b6001546001600160a01b0316331461074357604051637ef5703160e11b815260040160405180910390fd5b60018054600080546001600160a01b0383166001600160a01b031991821681179092559091169091556040517fc73be659241aade67e9a059bcf21494955018b213dbd1179054ccf928b13f3b69161079a91611e68565b60405180910390a1565b6001600160a01b0383166000818152600560209081526040808320338085529252822054919290919082148015906107de57506000198114155b156108545760006107ef8583611fc5565b6001600160a01b038881166000818152600560209081526040808320948916808452948252918290208590559051848152939450919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b61085f86868661129c565b6001925050505b9392505050565b6003805461050a90612008565b600061088886868686611338565b509091506108a19050826001600160801b0383166115bf565b95945050505050565b60006108b733848461129c565b50600192915050565b6000546001600160a01b031633146108eb576040516354348f0360e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0383161790556040517fe987aaedf9d279143bdf1eee16cf1d0feb47742867d81083df8d6cd0a5ac857f90610936908390611e68565b60405180910390a150565b60405163a34123a760e01b81527f0000000000000000000000000000000000000000000000000000000000000000600290810b60048301527f0000000000000000000000000000000000000000000000000000000000000000900b60248201526001600160801b038516604482015260009081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a34123a7906064016040805180830381600087803b158015610a0257600080fd5b505af1158015610a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3a9190611d0e565b909250905084821080610a4c57508381105b15610a6a576040516397c7f53760e01b815260040160405180910390fd5b6040516309e3d67b60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634f1eb3d890610afe9086907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009088908890600401611ecc565b6040805180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4f9190611b99565b5050610b6433876001600160801b0316611637565b94509492505050565b6000610b7b82840184611adf565b9050336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bc657604051634b60273560e01b815260040160405180910390fd5b8415610c00578051516020820151610c0091907f0000000000000000000000000000000000000000000000000000000000000000886116a7565b8315610c3e57610c3e81600001516020015182602001517f0000000000000000000000000000000000000000000000000000000000000000876116a7565b5050505050565b6000805481906001600160a01b03163314610c73576040516354348f0360e01b815260040160405180910390fd5b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663514ea4bf307f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000604051602001610cfa93929190611e1c565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401610d2e91815260200190565b60a06040518083038186803b158015610d4657600080fd5b505afa158015610d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7e9190611c12565b6000546040516309e3d67b60e31b81529297509095506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169550634f1eb3d89450610e1f935016907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009088908890600401611ecc565b6040805180830381600087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e709190611b99565b6001600160801b03918216969116945092505050565b60008060008360020b12610e9d578260020b610eaa565b8260020b610eaa9061207a565b9050610eb9620d89e719612057565b60020b811115610ef35760405162461bcd60e51b81526020600482015260016024820152601560fa1b604482015260640160405180910390fd5b600060018216610f0757600160801b610f19565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b031690506002821615610f4e576080610f49826ffff97272373d413259a46990580e213a611f7e565b901c90505b6004821615610f78576080610f73826ffff2e50f5f656932ef12357cf3c7fdcc611f7e565b901c90505b6008821615610fa2576080610f9d826fffe5caca7e10e4e61c3624eaa0941cd0611f7e565b901c90505b6010821615610fcc576080610fc7826fffcb9843d60f6159c9db58835c926644611f7e565b901c90505b6020821615610ff6576080610ff1826fff973b41fa98c081472e6896dfb254c0611f7e565b901c90505b604082161561102057608061101b826fff2ea16466c96a3843ec78b326b52861611f7e565b901c90505b608082161561104a576080611045826ffe5dee046a99a2a811c461f1969c3053611f7e565b901c90505b610100821615611075576080611070826ffcbe86c7900a88aedcffc83b479aa3a4611f7e565b901c90505b6102008216156110a057608061109b826ff987a7253ac413176f2b074cf7815e54611f7e565b901c90505b6104008216156110cb5760806110c6826ff3392b0822