[ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "indexed": false, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "depositAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "dbId", "type": "uint256" } ], "name": "LockGasPaid", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "indexed": false, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "depositAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "dbId", "type": "uint256" } ], "name": "LockGasPaidERC1155", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "NFTLockStatus", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "NFTLockStatusERC1155", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SaleMint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "indexed": false, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "depositAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "dbId", "type": "uint256" } ], "name": "UnLockGasPaid", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "indexed": false, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "depositAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "dbId", "type": "uint256" } ], "name": "UnLockGasPaidERC1155", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "indexed": false, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "nftLockStatusERC1155", "type": "event" }, { "inputs": [], "name": "BURNER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "LOCKING_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" }, { "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "bulkUpdateAllowAddresses", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "burnBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getAuthor", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getCreator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getNftLockStatus", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getRoyaltyFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "getTokensByOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "internalType": "uint256", "name": "dbId", "type": "uint256" } ], "name": "lockGas", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "uint256", "name": "dbId", "type": "uint256" } ], "name": "lockGas", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "lockNFTBulk", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "lockNFTBulk", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "mintBatch", "outputs": [], "stateMutability": "nonpayable", "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": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "saleMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "author", "type": "address" }, { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "setAuthor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_collector", "type": "address" } ], "name": "setGasCollector", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setTransferApprovedForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newuri", "type": "string" } ], "name": "setURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setlockStatusNFT", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "uint256", "name": "dbId", "type": "uint256" } ], "name": "unLockGas", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "internalType": "uint256", "name": "dbId", "type": "uint256" } ], "name": "unLockGas", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b50604080518082019091526007815266139195111d595b60ca1b60208201526200003b8162000084565b506000805460ff19168155620000529033620000d7565b6200007e7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620000d7565b6200030a565b7ffeffaec5312afdafc3b8fb7c85361e6d0462807200cbd1283769da4134fa8d0b7ffeffaec5312afdafc3b8fb7c85361e6d0462807200cbd1283769da4134fa8d10620000d283826200023e565b505050565b60008281527fb1f71c0ba2ec939f106d7d4b15b1d8fd0d205b821e122ec2649edf3533a8ea86602081815260408084206001600160a01b03861685529091529091205460ff16620000d2576000838152602082815260408083206001600160a01b03861684529091529020805460ff19166001179055620001553390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001c557607f821691505b602082108103620001e657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620000d257600081815260208120601f850160051c81016020861015620002155750805b601f850160051c820191505b81811015620002365782815560010162000221565b505050505050565b81516001600160401b038111156200025a576200025a6200019a565b62000272816200026b8454620001b0565b84620001ec565b602080601f831160018114620002aa5760008415620002915750858301515b600019600386901b1c1916600185901b17855562000236565b600085815260208120601f198616915b82811015620002db57888601518255948401946001909101908401620002ba565b5085821015620002fa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6145fd806200031a6000396000f3fe6080604052600436106102665760003560e01c8063702f245e11610144578063d48e638a116100b6578063e985e9c51161007a578063e985e9c5146106ff578063efde4cc61461071f578063f0c7dda01461073f578063f242432a1461075f578063f5298aca1461077f578063fdada7921461079f57600080fd5b8063d48e638a146105ee578063d53913931461067b578063d547741f1461069d578063d773f749146106bd578063df85afc8146106dd57600080fd5b8063933a6f0d11610108578063933a6f0d146105ce5780639e2b8488146105ee5780639e4c014114610626578063a217fddf14610646578063a22cb4651461065b578063cbc28116146103a457600080fd5b8063702f245e14610544578063731133e9146105645780638129fc1c146105845780638456cb591461059957806391d14854146105ae57600080fd5b8063357b8c9e116101dd57806344f096fc116101a157806344f096fc1461048c5780634e1273f4146104ac5780634e59a211146104cc5780635c975abb146104ec5780636b20c454146105045780636f27cf641461052457600080fd5b8063357b8c9e146103f757806336568abe146104175780633f4ba83a146104375780633fa264641461044c57806340398d671461045f57600080fd5b80631f7fdffa1161022f5780631f7fdffa14610330578063248a9ca314610350578063282c51f3146103705780632e8adc21146103a45780632eb2c2d6146103b75780632f2ff15d146103d757600080fd5b8062fdd58e1461026b57806301ffc9a71461029e57806302fe5305146102ce57806306cf8d10146102f05780630e89341c14610303575b600080fd5b34801561027757600080fd5b5061028b610286366004613465565b6107bf565b6040519081526020015b60405180910390f35b3480156102aa57600080fd5b506102be6102b93660046134a5565b610867565b6040519015158152602001610295565b3480156102da57600080fd5b506102ee6102e9366004613561565b610872565b005b6102ee6102fe366004613645565b61088a565b34801561030f57600080fd5b5061032361031e3660046136b1565b610b0d565b604051610295919061371a565b34801561033c57600080fd5b506102ee61034b36600461374d565b610bb1565b34801561035c57600080fd5b5061028b61036b3660046136b1565b610bdc565b34801561037c57600080fd5b5061028b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b6102ee6103b23660046137e5565b610bfe565b3480156103c357600080fd5b506102ee6103d2366004613829565b610c37565b3480156103e357600080fd5b506102ee6103f23660046138d2565b610d89565b34801561040357600080fd5b506102ee610412366004613949565b610daa565b34801561042357600080fd5b506102ee6104323660046138d2565b610e31565b34801561044357600080fd5b506102ee610eab565b6102ee61045a366004613645565b610ec1565b34801561046b57600080fd5b5061047f61047a36600461399b565b611146565b60405161029591906139f1565b34801561049857600080fd5b506102ee6104a7366004613a14565b611151565b3480156104b857600080fd5b5061047f6104c7366004613a78565b6111e9565b3480156104d857600080fd5b506102ee6104e7366004613b42565b611305565b3480156104f857600080fd5b5060005460ff166102be565b34801561051057600080fd5b506102ee61051f366004613b6c565b61134b565b34801561053057600080fd5b506102ee61053f36600461399b565b611386565b34801561055057600080fd5b506102ee61055f366004613bdf565b6113c4565b34801561057057600080fd5b506102ee61057f366004613bdf565b611439565b34801561059057600080fd5b506102ee6114a3565b3480156105a557600080fd5b506102ee611576565b3480156105ba57600080fd5b506102be6105c93660046138d2565b611589565b3480156105da57600080fd5b506102ee6105e9366004613c33565b6115c1565b3480156105fa57600080fd5b5061060e6106093660046136b1565b6115eb565b6040516001600160a01b039091168152602001610295565b34801561063257600080fd5b5061028b6106413660046136b1565b611614565b34801561065257600080fd5b5061028b600081565b34801561066757600080fd5b506102ee610676366004613b42565b611634565b34801561068757600080fd5b5061028b6000805160206145a883398151915281565b3480156106a957600080fd5b506102ee6106b83660046138d2565b6116ac565b3480156106c957600080fd5b506102ee6106d8366004613c55565b6116c8565b3480156106e957600080fd5b5061028b60008051602061456883398151915281565b34801561070b57600080fd5b506102be61071a366004613cb2565b6116e0565b34801561072b57600080fd5b5061028b61073a366004613465565b61172d565b34801561074b57600080fd5b506102ee61075a366004613cdc565b611766565b34801561076b57600080fd5b506102ee61077a366004613d55565b611a7d565b34801561078b57600080fd5b506102ee61079a366004613db9565b611b30565b3480156107ab57600080fd5b506102ee6107ba366004613dec565b611b65565b60006001600160a01b03831661082f5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b6000805160206145888339815191526000838152602091825260408082206001600160a01b0387168352909252205490505b92915050565b600061086182611c37565b600061087d81611c5c565b61088682611c66565b5050565b6000610894611ca0565b905060005b8451811015610983578381815181106108b4576108b4613e11565b6020026020010151826006016000336001600160a01b03166001600160a01b0316815260200190815260200160002060008784815181106108f7576108f7613e11565b602002602001015181526020019081526020016000205410156109715760405162461bcd60e51b815260206004820152602c60248201527f455243313135353a20596f7520646f6e2774206861766520656e6f756768206c60448201526b6f636b656420746f6b656e7360a01b6064820152608401610826565b8061097b81613e3d565b915050610899565b506005845111156109cd5760405162461bcd60e51b81526020600482015260146024820152731b585e080d481d1bdad95b9cc8185b1b1bddd95960621b6044820152606401610826565b805461010090046001600160a01b0316610a295760405162461bcd60e51b815260206004820152601d60248201527f67617320636f6c6c6563746f722061646472657373206e6f74207365740000006044820152606401610826565b805460405160009161010090046001600160a01b03169034908381818185875af1925050503d8060008114610a7a576040519150601f19603f3d011682016040523d82523d6000602084013e610a7f565b606091505b5050905080610ac75760405162461bcd60e51b8152602060048201526014602482015273636f756c646e277420726563656976652067617360601b6044820152606401610826565b7fec3c3fe913a28538024ef57cc82059e6c8f175470312d8de38a70489f9ca8a3f8585333487604051610afe959493929190613e56565b60405180910390a15050505050565b60606000805160206145888339815191526005018054610b2c90613ea2565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5890613ea2565b8015610ba55780601f10610b7a57610100808354040283529160200191610ba5565b820191906000526020600020905b815481529060010190602001808311610b8857829003601f168201915b50505050509050919050565b6000805160206145a8833981519152610bc981611c5c565b610bd585858585611cc4565b5050505050565b6000908152600080516020614548833981519152602052604090206001015490565b60405162461bcd60e51b815260206004820152600e60248201526d1b595d1a1bd9081d5c19185d195960921b6044820152606401610826565b6000610c41611ca0565b905060005b8451811015610d73576001600160a01b0387166000908152600683016020526040812086518290889085908110610c7f57610c7f613e11565b6020026020010151815260200190815260200160002054610cb989888581518110610cac57610cac613e11565b60200260200101516107bf565b610cc39190613edc565b9050848281518110610cd757610cd7613e11565b6020026020010151811015610cfe5760405162461bcd60e51b815260040161082690613eef565b33600090815260018401602052604081208751909190889085908110610d2657610d26613e11565b60209081029190910181015182528101919091526040016000205460ff16610d605760405162461bcd60e51b815260040161082690613f30565b5080610d6b81613e3d565b915050610c46565b50610d818686868686611e71565b505050505050565b610d9282610bdc565b610d9b81611c5c565b610da58383611f97565b505050565b6000610db581611c5c565b6000610dbf611ca0565b905060005b83811015610d815785826004016000878785818110610de557610de5613e11565b90506020020135815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508080610e2990613e3d565b915050610dc4565b6001600160a01b0381163314610ea15760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610826565b610886828261202b565b6000610eb681611c5c565b610ebe6120a0565b50565b6000610ecb611ca0565b905060005b8451811015610fcb57336000908152600683016020526040812086518290889085908110610f0057610f00613e11565b6020026020010151815260200190815260200160002054610f2d33888581518110610cac57610cac613e11565b610f379190613edc565b9050848281518110610f4b57610f4b613e11565b6020026020010151811015610fb85760405162461bcd60e51b815260206004820152602d60248201527f455243313135353a20596f7520646f6e2774206f776e20656e6f75676820756e60448201526c6c6f636b656420746f6b656e7360981b6064820152608401610826565b5080610fc381613e3d565b915050610ed0565b506005845111156110155760405162461bcd60e51b81526020600482015260146024820152731b585e080d481d1bdad95b9cc8185b1b1bddd95960621b6044820152606401610826565b805461010090046001600160a01b03166110715760405162461bcd60e51b815260206004820152601d60248201527f67617320636f6c6c6563746f722061646472657373206e6f74207365740000006044820152606401610826565b805460405160009161010090046001600160a01b03169034908381818185875af1925050503d80600081146110c2576040519150601f19603f3d011682016040523d82523d6000602084013e6110c7565b606091505b505090508061110f5760405162461bcd60e51b8152602060048201526014602482015273636f756c646e277420726563656976652067617360601b6044820152606401610826565b7f8f6af0c2ee6c8b7a0bf4375da7c4b49628979ccb4171d1f3926c7cd7266516cd8585333487604051610afe959493929190613e56565b6060610861826120f2565b600061115c81611c5c565b6000611166611ca0565b905060005b848110156111e0576001600160a01b0387166000908152600183016020526040812085918888858181106111a1576111a1613e11565b90506020020135815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111d890613e3d565b91505061116b565b50505050505050565b6060815183511461124e5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610826565b600083516001600160401b03811115611269576112696134c2565b604051908082528060200260200182016040528015611292578160200160208202803683370190505b50905060005b84518110156112fd576112d08582815181106112b6576112b6613e11565b6020026020010151858381518110610cac57610cac613e11565b8282815181106112e2576112e2613e11565b60209081029190910101526112f681613e3d565b9050611298565b509392505050565b600061131081611c5c565b600061131a611ca0565b6001600160a01b03949094166000908152600290940160205250506040909120805460ff1916911515919091179055565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84861137581611c5c565b611380848484612191565b50505050565b600061139181611c5c565b600061139b611ca0565b80546001600160a01b0390941661010002610100600160a81b0319909416939093179092555050565b6000805160206145a88339815191526113dc81611c5c565b6113e88585858561236b565b60408051858152602081018590526001600160a01b0387169160009133917f09787a221f13a68fc81552e6f8c4d3e9ba7c108a82df83f4362461d3ffbbed3e91015b60405180910390a45050505050565b6000805160206145a883398151915261145181611c5c565b61145d8585858561236b565b60408051858152602081018590526001600160a01b0387169160009133917fc0025304673122449dd60b9b0093874b0e2fd6fe57af1c7c2fbfee0ccf5ead58910161142a565b60006114ad611ca0565b805490915060ff1615156001036114fc5760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610826565b611507600033611f97565b61151f6000805160206145a883398151915233611f97565b61155d6040518060400160405280601a81526020017f68747470733a2f2f6e66746475656c2e6e65742f746f6b656e2f000000000000815250610872565b6000611567611ca0565b805460ff191660011790555050565b600061158181611c5c565b610ebe61246e565b6000918252600080516020614548833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006115cc81611c5c565b60006115d6611ca0565b60009485526005016020525050604090912055565b6000806115f6611ca0565b6000938452600401602052505060409020546001600160a01b031690565b60008061161f611ca0565b60009384526005016020525050604090205490565b600061163e611ca0565b6001600160a01b038416600090815260028201602052604090205490915060ff166116a25760405162461bcd60e51b81526020600482015260146024820152731859191c995cdcc81b9bdd08185c1c1c9bdd995960621b6044820152606401610826565b610da583836124ab565b6116b582610bdc565b6116be81611c5c565b610da5838361202b565b600080516020614568833981519152610bfe81611c5c565b6001600160a01b0391821660009081527ffeffaec5312afdafc3b8fb7c85361e6d0462807200cbd1283769da4134fa8d0c6020908152604080832093909416825291909152205460ff1690565b600080611738611ca0565b6001600160a01b03949094166000908152600690940160209081526040808620948652939052505090205490565b60008051602061456883398151915261177e81611c5c565b6000611788611ca0565b905060005b8651811015611a375783156118eb573360009081526006830160205260408120885182908a90859081106117c3576117c3613e11565b60200260200101518152602001908152602001600020546117f0338a8581518110610cac57610cac613e11565b6117fa9190613edc565b905086828151811061180e5761180e613e11565b60200260200101518110156118655760405162461bcd60e51b815260206004820152601a60248201527f6e6f7420656e6f75676820746f6b656e7320756e6c6f636b65640000000000006044820152606401610826565b86828151811061187757611877613e11565b6020026020010151836006016000886001600160a01b03166001600160a01b0316815260200190815260200160002060008a85815181106118ba576118ba613e11565b6020026020010151815260200190815260200160002060008282546118df9190613f67565b90915550611a25915050565b8581815181106118fd576118fd613e11565b6020026020010151826006016000336001600160a01b03166001600160a01b03168152602001908152602001600020600089848151811061194057611940613e11565b602002602001015181526020019081526020016000205410156119a55760405162461bcd60e51b815260206004820152601860248201527f6e6f7420656e6f75676820746f6b656e73206c6f636b656400000000000000006044820152606401610826565b8581815181106119b7576119b7613e11565b6020026020010151826006016000876001600160a01b03166001600160a01b0316815260200190815260200160002060008984815181106119fa576119fa613e11565b602002602001015181526020019081526020016000206000828254611a1f9190613edc565b90915550505b80611a2f81613e3d565b91505061178d565b507f2f4739bc27c30361994daa94926ddb8cc764cf9282103789db38d751ebfbe57586868686604051611a6d9493929190613f7a565b60405180910390a1505050505050565b6000611a87611ca0565b6001600160a01b0387166000908152600682016020908152604080832088845290915281205491925090611abb88876107bf565b611ac59190613edc565b905083811015611ae75760405162461bcd60e51b815260040161082690613eef565b336000908152600183016020908152604080832088845290915290205460ff16611b235760405162461bcd60e51b815260040161082690613f30565b6111e087878787876124b6565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848611b5a81611c5c565b611380848484612572565b600080516020614568833981519152611b7d81611c5c565b6000611b87611ca0565b6001600160a01b0385166000908152600382016020908152604080832089845290915290205490915083151560ff909116151503611bfc5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1d5cc8185b1c9958591e481cd95d60721b6044820152606401610826565b6001600160a01b0393909316600090815260039093016020908152604080852095855294905250919020805460ff1916911515919091179055565b60006001600160e01b03198216637965db0b60e01b1480610861575061086182612699565b610ebe81336126e9565b6000805160206145888339815191527ffeffaec5312afdafc3b8fb7c85361e6d0462807200cbd1283769da4134fa8d10610da58382614007565b7faeb043e2a8111212f1c09ca2632f2801ead1528ff2639da5ccfcfef86aebdb7190565b6001600160a01b038416611cea5760405162461bcd60e51b8152600401610826906140c6565b8151835114611d0b5760405162461bcd60e51b815260040161082690614107565b60008051602061458883398151915233611d2a81600088888888612742565b60005b8551811015611dc857848181518110611d4857611d48613e11565b6020026020010151836000016000888481518110611d6857611d68613e11565b602002602001015181526020019081526020016000206000896001600160a01b03166001600160a01b031681526020019081526020016000206000828254611db09190613f67565b90915550819050611dc081613e3d565b915050611d2d565b50856001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8888604051611e1992919061414f565b60405180910390a4611e308160008888888861274f565b60005b85518110156111e057611e5f87878381518110611e5257611e52613e11565b60200260200101516128aa565b80611e6981613e3d565b915050611e33565b6000611e7b611ca0565b905060005b8451811015611f895733600090815260038301602052604081208651909190879084908110611eb157611eb1613e11565b60209081029190910181015182528101919091526040016000205460ff1615611f155760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d4d4e88139195081a5cc81b1bd8dad95960521b6044820152606401610826565b33600090815260018301602052604081208651909190879084908110611f3d57611f3d613e11565b60209081029190910181015182528101919091526040016000205460ff16611f775760405162461bcd60e51b815260040161082690613f30565b80611f8181613e3d565b915050611e80565b50610d818686868686612b63565b600080516020614548833981519152611fb08383611589565b610da5576000838152602082815260408083206001600160a01b03861684529091529020805460ff19166001179055611fe63390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4505050565b6000805160206145488339815191526120448383611589565b15610da5576000838152602082815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4505050565b6120a8612bf2565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03811660009081527ffeffaec5312afdafc3b8fb7c85361e6d0462807200cbd1283769da4134fa8d0d60209081526040918290208054835181840281018401909452808452606093600080516020614588833981519152939092919083018282801561218457602002820191906000526020600020905b815481526020019060010190808311612170575b5050505050915050919050565b6000805160206145888339815191526001600160a01b0384166121c65760405162461bcd60e51b81526004016108269061417d565b81518351146121e75760405162461bcd60e51b815260040161082690614107565b600033905061220a81866000878760405180602001604052806000815250612742565b60005b84518110156122cf57600085828151811061222a5761222a613e11565b60200260200101519050600085838151811061224857612248613e11565b602090810291909101810151600084815287835260408082206001600160a01b038d1683529093529190912054909150818110156122985760405162461bcd60e51b8152600401610826906141c0565b6000928352602086815260408085206001600160a01b038c16865290915290922091039055806122c781613e3d565b91505061220d565b5060006001600160a01b0316856001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161232092919061414f565b60405180910390a460408051602081019091526000905260005b8451811015610d815761235986868381518110611e5257611e52613e11565b8061236381613e3d565b91505061233a565b6001600160a01b0384166123915760405162461bcd60e51b8152600401610826906140c6565b6000805160206145888339815191523360006123ac86612c3d565b905060006123b986612c3d565b90506123ca8360008a85858a612742565b6000878152602085815260408083206001600160a01b038c168452909152812080548892906123fa908490613f67565b909155505060408051888152602081018890526001600160a01b03808b1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461245a8360008a8a8a8a612c88565b61246488886128aa565b5050505050505050565b612476612d43565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586120d53390565b610886338383612d89565b60006124c0611ca0565b336000908152600382016020908152604080832088845290915290205490915060ff16156125295760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d4d4e88139195081a5cc81b1bd8dad95960521b6044820152606401610826565b336000908152600182016020908152604080832087845290915290205460ff166125655760405162461bcd60e51b815260040161082690613f30565b610d818686868686612e9b565b6001600160a01b0383166125985760405162461bcd60e51b81526004016108269061417d565b6000805160206145888339815191523360006125b385612c3d565b905060006125c085612c3d565b90506125e083886000858560405180602001604052806000815250612742565b6000868152602085815260408083206001600160a01b038b168452909152902054858110156126215760405162461bcd60e51b8152600401610826906141c0565b6000878152602086815260408083206001600160a01b038c81168086529184528285208b8703905582518c81529384018b90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a460408051602081019091526000905261245a565b60006001600160e01b03198216636cdb3d1360e11b14806126ca57506001600160e01b031982166303a24d0760e21b145b8061086157506301ffc9a760e01b6001600160e01b0319831614610861565b6126f38282611589565b6108865761270081612ef4565b61270b836020612f06565b60405160200161271c929190614204565b60408051601f198184030181529082905262461bcd60e51b82526108269160040161371a565b61274a612d43565b610d81565b6001600160a01b0384163b15610d815760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906127939089908990889088908890600401614279565b6020604051808303816000875af19250505080156127ce575060408051601f3d908101601f191682019092526127cb918101906142d7565b60015b61287a576127da6142f4565b806308c379a00361281357506127ee614310565b806127f95750612815565b8060405162461bcd60e51b8152600401610826919061371a565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610826565b6001600160e01b0319811663bc197c8160e01b146111e05760405162461bcd60e51b815260040161082690614399565b6000818152600080516020614588833981519152602081815260408084206001600160a01b0387168552909152909120541580159061290f57506001600160a01b0383166000908152600482016020908152604080832085845290915290205460ff16155b1561299f576001600160a01b038316600081815260028301602090815260408220805460018181018355828552928420018690559290915290546129539190613edc565b6001600160a01b0384166000818152600384016020908152604080832087845282528083209490945591815260048401825282812085825290915220805460ff19166001179055505050565b6000828152602082815260408083206001600160a01b03871684529091529020541580156129f257506001600160a01b0383166000908152600482016020908152604080832085845290915290205460ff165b15610da5576001600160a01b038316600081815260048301602090815260408083208684528252808320805460ff19169055928252600284019052208054612a3c90600190613edc565b81548110612a4c57612a4c613e11565b60009182526020808320909101546001600160a01b038616835260028401825260408084206003860184528185208786529093529092205481548110612a9457612a94613e11565b60009182526020808320909101929092556001600160a01b038516808252600384018352604080832086845280855281842054928452600286019094528220805491939291612ae590600190613edc565b81548110612af557612af5613e11565b9060005260206000200154815260200190815260200160002081905550806002016000846001600160a01b03166001600160a01b03168152602001908152602001600020805480612b4857612b486143e1565b60019003818190600052602060002001600090559055505050565b6001600160a01b038516331480612b7f5750612b7f85336116e0565b612b9b5760405162461bcd60e51b8152600401610826906143f7565b612ba885858585856130a8565b60005b8351811015610d8157612bca85858381518110611e5257611e52613e11565b612be086858381518110611e5257611e52613e11565b80612bea81613e3d565b915050612bab565b60005460ff16612c3b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610826565b565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612c7757612c77613e11565b602090810291909101015292915050565b6001600160a01b0384163b15610d815760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190612ccc9089908990889088908890600401614445565b6020604051808303816000875af1925050508015612d07575060408051601f3d908101601f19168201909252612d04918101906142d7565b60015b612d13576127da6142f4565b6001600160e01b0319811663f23a6e6160e01b146111e05760405162461bcd60e51b815260040161082690614399565b60005460ff1615612c3b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610826565b816001600160a01b0316836001600160a01b031603612dfc5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610826565b6001600160a01b0383811660008181527ffeffaec5312afdafc3b8fb7c85361e6d0462807200cbd1283769da4134fa8d0c6020908152604080832094871680845294825291829020805460ff1916861515908117909155825190815291516000805160206145888339815191529493927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3192908290030190a350505050565b6001600160a01b038516331480612eb75750612eb785336116e0565b612ed35760405162461bcd60e51b8152600401610826906143f7565b612ee085858585856132ed565b612eea84846128aa565b610bd585846128aa565b60606108616001600160a01b03831660145b60606000612f1583600261448a565b612f20906002613f67565b6001600160401b03811115612f3757612f376134c2565b6040519080825280601f01601f191660200182016040528015612f61576020820181803683370190505b509050600360fc1b81600081518110612f7c57612f7c613e11565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612fab57612fab613e11565b60200101906001600160f81b031916908160001a9053506000612fcf84600261448a565b612fda906001613f67565b90505b6001811115613052576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061300e5761300e613e11565b1a60f81b82828151811061302457613024613e11565b60200101906001600160f81b031916908160001a90535060049490941c9361304b816144a1565b9050612fdd565b5083156130a15760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610826565b9392505050565b81518351146130c95760405162461bcd60e51b815260040161082690614107565b6001600160a01b0384166130ef5760405162461bcd60e51b8152600401610826906144b8565b6000805160206145888339815191523361310d818888888888612742565b60005b855181101561323d57600086828151811061312d5761312d613e11565b60200260200101519050600086838151811061314b5761314b613e11565b602090810291909101810151600084815287835260408082206001600160a01b038f16835290935291909120549091508181101561319b5760405162461bcd60e51b8152600401610826906144fd565b81810386600001600085815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020819055508186600001600085815260200190815260200160002060008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546132229190613f67565b925050819055505050508061323690613e3d565b9050613110565b50856001600160a01b0316876001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb888860405161328d92919061414f565b60405180910390a46132a381888888888861274f565b60005b8551811015612464576132c587878381518110611e5257611e52613e11565b6132db88878381518110611e5257611e52613e11565b806132e581613e3d565b9150506132a6565b6001600160a01b0384166133135760405162461bcd60e51b8152600401610826906144b8565b60008051602061458883398151915233600061332e86612c3d565b9050600061333b86612c3d565b905061334b838a8a85858a612742565b6000878152602085815260408083206001600160a01b038d1684529091529020548681101561338c5760405162461bcd60e51b8152600401610826906144fd565b6000888152602086815260408083206001600160a01b038e8116855292528083208a85039055908b168252812080548992906133c9908490613f67565b909155505060408051898152602081018990526001600160a01b03808c16928d821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4613429848b8b8b8b8b612c88565b61343389896128aa565b61343d8a896128aa565b50505050505050505050565b80356001600160a01b038116811461346057600080fd5b919050565b6000806040838503121561347857600080fd5b61348183613449565b946020939093013593505050565b6001600160e01b031981168114610ebe57600080fd5b6000602082840312156134b757600080fd5b81356130a18161348f565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b03811182821017156134fd576134fd6134c2565b6040525050565b60006001600160401b0383111561351d5761351d6134c2565b604051613534601f8501601f1916602001826134d8565b80915083815284848401111561354957600080fd5b83836020830137600060208583010152509392505050565b60006020828403121561357357600080fd5b81356001600160401b0381111561358957600080fd5b8201601f8101841361359a57600080fd5b6135a984823560208401613504565b949350505050565b60006001600160401b038211156135ca576135ca6134c2565b5060051b60200190565b600082601f8301126135e557600080fd5b813560206135f2826135b1565b6040516135ff82826134d8565b83815260059390931b850182019282810191508684111561361f57600080fd5b8286015b8481101561363a5780358352918301918301613623565b509695505050505050565b60008060006060848603121561365a57600080fd5b83356001600160401b038082111561367157600080fd5b61367d878388016135d4565b9450602086013591508082111561369357600080fd5b506136a0868287016135d4565b925050604084013590509250925092565b6000602082840312156136c357600080fd5b5035919050565b60005b838110156136e55781810151838201526020016136cd565b50506000910152565b600081518084526137068160208601602086016136ca565b601f01601f19169290920160200192915050565b6020815260006130a160208301846136ee565b600082601f83011261373e57600080fd5b6130a183833560208501613504565b6000806000806080858703121561376357600080fd5b61376c85613449565b935060208501356001600160401b038082111561378857600080fd5b613794888389016135d4565b945060408701359150808211156137aa57600080fd5b6137b6888389016135d4565b935060608701359150808211156137cc57600080fd5b506137d98782880161372d565b91505092959194509250565b600080604083850312156137f857600080fd5b82356001600160401b0381111561380e57600080fd5b61381a858286016135d4565b95602094909401359450505050565b600080600080600060a0868803121561384157600080fd5b61384a86613449565b945061385860208701613449565b935060408601356001600160401b038082111561387457600080fd5b61388089838a016135d4565b9450606088013591508082111561389657600080fd5b6138a289838a016135d4565b935060808801359150808211156138b857600080fd5b506138c58882890161372d565b9150509295509295909350565b600080604083850312156138e557600080fd5b823591506138f560208401613449565b90509250929050565b60008083601f84011261391057600080fd5b5081356001600160401b0381111561392757600080fd5b6020830191508360208260051b850101111561394257600080fd5b9250929050565b60008060006040848603121561395e57600080fd5b61396784613449565b925060208401356001600160401b0381111561398257600080fd5b61398e868287016138fe565b9497909650939450505050565b6000602082840312156139ad57600080fd5b6130a182613449565b600081518084526020808501945080840160005b838110156139e6578151875295820195908201906001016139ca565b509495945050505050565b6020815260006130a160208301846139b6565b8035801515811461346057600080fd5b60008060008060608587031215613a2a57600080fd5b613a3385613449565b935060208501356001600160401b03811115613a4e57600080fd5b613a5a878288016138fe565b9094509250613a6d905060408601613a04565b905092959194509250565b60008060408385031215613a8b57600080fd5b82356001600160401b0380821115613aa257600080fd5b818501915085601f830112613ab657600080fd5b81356020613ac3826135b1565b604051613ad082826134d8565b83815260059390931b8501820192828101915089841115613af057600080fd5b948201945b83861015613b1557613b0686613449565b82529482019490820190613af5565b96505086013592505080821115613b2b57600080fd5b50613b38858286016135d4565b9150509250929050565b60008060408385031215613b5557600080fd5b613b5e83613449565b91506138f560208401613a04565b600080600060608486031215613b8157600080fd5b613b8a84613449565b925060208401356001600160401b0380821115613ba657600080fd5b613bb2878388016135d4565b93506040860135915080821115613bc857600080fd5b50613bd5868287016135d4565b9150509250925092565b60008060008060808587031215613bf557600080fd5b613bfe85613449565b9350602085013592506040850135915060608501356001600160401b03811115613c2757600080fd5b6137d98782880161372d565b60008060408385031215613c4657600080fd5b50508035926020909101359150565b600080600060608486031215613c6a57600080fd5b83356001600160401b03811115613c8057600080fd5b613c8c868287016135d4565b935050613c9b60208501613449565b9150613ca960408501613a04565b90509250925092565b60008060408385031215613cc557600080fd5b613cce83613449565b91506138f560208401613449565b60008060008060808587031215613cf257600080fd5b84356001600160401b0380821115613d0957600080fd5b613d15888389016135d4565b95506020870135915080821115613d2b57600080fd5b50613d38878288016135d4565b935050613d4760408601613449565b9150613a6d60608601613a04565b600080600080600060a08688031215613d6d57600080fd5b613d7686613449565b9450613d8460208701613449565b9350604086013592506060860135915060808601356001600160401b03811115613dad57600080fd5b6138c58882890161372d565b600080600060608486031215613dce57600080fd5b613dd784613449565b95602085013595506040909401359392505050565b600080600060608486031215613e0157600080fd5b83359250613c9b60208501613449565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613e4f57613e4f613e27565b5060010190565b60a081526000613e6960a08301886139b6565b8281036020840152613e7b81886139b6565b6001600160a01b039690961660408401525050606081019290925260809091015292915050565b600181811c90821680613eb657607f821691505b602082108103613ed657634e487b7160e01b600052602260045260246000fd5b50919050565b8181038181111561086157610861613e27565b60208082526021908201527f455243313135353a204e6f7420656e6f756768206e66747320756e6c6f636b656040820152601960fa1b606082015260800190565b6020808252601d908201527f455243313135353a207472616e73666572206e6f7420616c6c6f776564000000604082015260600190565b8082018082111561086157610861613e27565b608081526000613f8d60808301876139b6565b8281036020840152613f9f81876139b6565b6001600160a01b03959095166040840152505090151560609091015292915050565b601f821115610da557600081815260208120601f850160051c81016020861015613fe85750805b601f850160051c820191505b81811015610d8157828155600101613ff4565b81516001600160401b03811115614020576140206134c2565b6140348161402e8454613ea2565b84613fc1565b602080601f83116001811461406957600084156140515750858301515b600019600386901b1c1916600185901b178555610d81565b600085815260208120601f198616915b8281101561409857888601518255948401946001909101908401614079565b50858210156140b65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60408152600061416260408301856139b6565b828103602084015261417481856139b6565b95945050505050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161423c8160178501602088016136ca565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161426d8160288401602088016136ca565b01602801949350505050565b6001600160a01b0386811682528516602082015260a0604082018190526000906142a5908301866139b6565b82810360608401526142b781866139b6565b905082810360808401526142cb81856136ee565b98975050505050505050565b6000602082840312156142e957600080fd5b81516130a18161348f565b600060033d111561430d5760046000803e5060005160e01c5b90565b600060443d101561431e5790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561434d57505050505090565b82850191508151818111156143655750505050505090565b843d870101602082850101111561437f5750505050505090565b61438e602082860101876134d8565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b634e487b7160e01b600052603160045260246000fd5b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061447f908301846136ee565b979650505050505050565b808202811582820484141761086157610861613e27565b6000816144b0576144b0613e27565b506000190190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b60608201526080019056feb1f71c0ba2ec939f106d7d4b15b1d8fd0d205b821e122ec2649edf3533a8ea86378b359774aac882f78964142dd690d159dc5d5f4fe7ea2b5538a36a4cedfd3efeffaec5312afdafc3b8fb7c85361e6d0462807200cbd1283769da4134fa8d0b9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6a2646970667358221220ad7c1410506398cbf9eaeed945b50362a6ef69c0630dc0db9d13d4a632122bd764736f6c63430008110033