{ "_format": "hh-sol-artifact-1", "contractName": "PoraMineTest", "sourceName": "contracts/test/PoraMineTest.sol", "abi": [ { "inputs": [ { "internalType": "uint256", "name": "settings", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "minerId", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "beneficiary", "type": "address" } ], "name": "NewMinerId", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "indexed": true, "internalType": "bytes32", "name": "minerId", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "epochIndex", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "recallPosition", "type": "uint256" } ], "name": "NewSubmission", "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": "bytes32", "name": "minerId", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "UpdateMinerId", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PARAMS_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "bytes32", "name": "contextDigest", "type": "bytes32" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "bytes32", "name": "minerId", "type": "bytes32" }, { "components": [ { "internalType": "uint256", "name": "startPosition", "type": "uint256" }, { "internalType": "uint256", "name": "mineLength", "type": "uint256" }, { "internalType": "uint64", "name": "shardId", "type": "uint64" }, { "internalType": "uint64", "name": "shardMask", "type": "uint64" } ], "internalType": "struct RecallRange", "name": "range", "type": "tuple" }, { "internalType": "uint256", "name": "recallPosition", "type": "uint256" }, { "internalType": "uint256", "name": "sealOffset", "type": "uint256" }, { "internalType": "bytes32", "name": "sealedContextDigest", "type": "bytes32" }, { "internalType": "bytes32[128]", "name": "sealedData", "type": "bytes32[128]" }, { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" } ], "internalType": "struct MineLib.PoraAnswer", "name": "answer", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "epoch", "type": "uint256" }, { "internalType": "uint256", "name": "mineStart", "type": "uint256" }, { "internalType": "bytes32", "name": "flowRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "flowLength", "type": "uint256" }, { "internalType": "bytes32", "name": "blockDigest", "type": "bytes32" }, { "internalType": "bytes32", "name": "digest", "type": "bytes32" } ], "internalType": "struct MineContext", "name": "context", "type": "tuple" } ], "name": "basicCheck", "outputs": [], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "beneficiaries", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "canSubmit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "currentSubmissions", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dataProofEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "difficultyAdjustRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "fixedDifficulty", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "flow", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "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": [ { "internalType": "uint256", "name": "difficulty", "type": "uint256" }, { "internalType": "address", "name": "flow_", "type": "address" }, { "internalType": "address", "name": "reward_", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "initialized", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastMinedEpoch", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxShards", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "bytes32", "name": "contextDigest", "type": "bytes32" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "bytes32", "name": "minerId", "type": "bytes32" }, { "components": [ { "internalType": "uint256", "name": "startPosition", "type": "uint256" }, { "internalType": "uint256", "name": "mineLength", "type": "uint256" }, { "internalType": "uint64", "name": "shardId", "type": "uint64" }, { "internalType": "uint64", "name": "shardMask", "type": "uint64" } ], "internalType": "struct RecallRange", "name": "range", "type": "tuple" }, { "internalType": "uint256", "name": "recallPosition", "type": "uint256" }, { "internalType": "uint256", "name": "sealOffset", "type": "uint256" }, { "internalType": "bytes32", "name": "sealedContextDigest", "type": "bytes32" }, { "internalType": "bytes32[128]", "name": "sealedData", "type": "bytes32[128]" }, { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" } ], "internalType": "struct MineLib.PoraAnswer", "name": "answer", "type": "tuple" } ], "name": "pora", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poraTarget", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "bytes32", "name": "contextDigest", "type": "bytes32" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "bytes32", "name": "minerId", "type": "bytes32" }, { "components": [ { "internalType": "uint256", "name": "startPosition", "type": "uint256" }, { "internalType": "uint256", "name": "mineLength", "type": "uint256" }, { "internalType": "uint64", "name": "shardId", "type": "uint64" }, { "internalType": "uint64", "name": "shardMask", "type": "uint64" } ], "internalType": "struct RecallRange", "name": "range", "type": "tuple" }, { "internalType": "uint256", "name": "recallPosition", "type": "uint256" }, { "internalType": "uint256", "name": "sealOffset", "type": "uint256" }, { "internalType": "bytes32", "name": "sealedContextDigest", "type": "bytes32" }, { "internalType": "bytes32[128]", "name": "sealedData", "type": "bytes32[128]" }, { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" } ], "internalType": "struct MineLib.PoraAnswer", "name": "answer", "type": "tuple" }, { "internalType": "bytes32[128]", "name": "unsealedData", "type": "bytes32[128]" } ], "name": "recoverMerkleRoot", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "beneficiary", "type": "address" }, { "internalType": "uint64", "name": "seed", "type": "uint64" } ], "name": "requestMinerId", "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": [], "name": "reward", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sealDataEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "difficultyAdjustRatio_", "type": "uint256" } ], "name": "setDifficultyAdjustRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "maxShards_", "type": "uint64" } ], "name": "setMaxShards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "minerId", "type": "bytes32" } ], "name": "setMiner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_targetQuality", "type": "uint256" } ], "name": "setQuality", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "targetMineBlocks_", "type": "uint256" } ], "name": "setTargetMineBlocks", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "targetSubmissions_", "type": "uint256" } ], "name": "setTargetSubmissions", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "bytes32", "name": "contextDigest", "type": "bytes32" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "bytes32", "name": "minerId", "type": "bytes32" }, { "components": [ { "internalType": "uint256", "name": "startPosition", "type": "uint256" }, { "internalType": "uint256", "name": "mineLength", "type": "uint256" }, { "internalType": "uint64", "name": "shardId", "type": "uint64" }, { "internalType": "uint64", "name": "shardMask", "type": "uint64" } ], "internalType": "struct RecallRange", "name": "range", "type": "tuple" }, { "internalType": "uint256", "name": "recallPosition", "type": "uint256" }, { "internalType": "uint256", "name": "sealOffset", "type": "uint256" }, { "internalType": "bytes32", "name": "sealedContextDigest", "type": "bytes32" }, { "internalType": "bytes32[128]", "name": "sealedData", "type": "bytes32[128]" }, { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" } ], "internalType": "struct MineLib.PoraAnswer", "name": "answer", "type": "tuple" } ], "name": "submit", "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": [], "name": "targetMineBlocks", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "targetSubmissions", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "targetSubmissionsNextEpoch", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "bytes32", "name": "minerId", "type": "bytes32" } ], "name": "transferBeneficial", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "bytes32", "name": "contextDigest", "type": "bytes32" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "bytes32", "name": "minerId", "type": "bytes32" }, { "components": [ { "internalType": "uint256", "name": "startPosition", "type": "uint256" }, { "internalType": "uint256", "name": "mineLength", "type": "uint256" }, { "internalType": "uint64", "name": "shardId", "type": "uint64" }, { "internalType": "uint64", "name": "shardMask", "type": "uint64" } ], "internalType": "struct RecallRange", "name": "range", "type": "tuple" }, { "internalType": "uint256", "name": "recallPosition", "type": "uint256" }, { "internalType": "uint256", "name": "sealOffset", "type": "uint256" }, { "internalType": "bytes32", "name": "sealedContextDigest", "type": "bytes32" }, { "internalType": "bytes32[128]", "name": "sealedData", "type": "bytes32[128]" }, { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" } ], "internalType": "struct MineLib.PoraAnswer", "name": "answer", "type": "tuple" } ], "name": "unseal", "outputs": [ { "internalType": "bytes32[128]", "name": "unsealedData", "type": "bytes32[128]" } ], "stateMutability": "pure", "type": "function" } ], "bytecode": "0x60e06040523480156200001157600080fd5b506040516200377a3803806200377a833981016040819052620000349162000052565b60016004909117818116156080526002161560a05260c0526200006c565b6000602082840312156200006557600080fd5b5051919050565b60805160a05160c0516136c2620000b860003960008181610433015281816111cb01526115670152600081816104630152610efd0152600081816104c10152610ec001526136c26000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c80637bba7d611161013b578063b0628ee0116100b8578063ca15c8731161007c578063ca15c8731461057b578063d547741f1461058e578063dddc61a8146105a1578063e1498cf9146105aa578063ffbc9bd0146105bd57600080fd5b8063b0628ee014610509578063b15d20da1461051c578063b4988fd014610531578063b51e039714610544578063b776a5121461057257600080fd5b8063a217fddf116100ff578063a217fddf146104ab578063a8279182146104b3578063adaa7a0f146104bc578063ae722e82146104e3578063aed75224146104f657600080fd5b80637bba7d611461042e5780637eca56881461045557806382975fe71461045e5780639010d07c1461048557806391d148541461049857600080fd5b8063331f3b9c116101c957806348f614411161018d57806348f61441146103cc57806359e7b5be146103d55780635bdca855146103f55780636e9bb60b14610408578063704d3c961461041b57600080fd5b8063331f3b9c14610361578063343aad821461036a57806336568abe1461037d57806339cd53ee146103905780633baebb75146103b957600080fd5b8063228cb73311610210578063228cb733146102d5578063248a9ca3146103005780632a02573b146103325780632f2ff15d1461034557806331223ba71461035857600080fd5b806301ffc9a71461024d578063047c13f514610275578063158ef93e1461028a5780631600c6241461029757806316a4be6f146102aa575b600080fd5b61026061025b366004612e40565b6105c5565b60405190151581526020015b60405180910390f35b610288610283366004612e98565b6105f0565b005b6000546102609060ff1681565b6102886102a5366004612ecb565b61070c565b600a546102bd906001600160401b031681565b6040516001600160401b03909116815260200161026c565b6004546102e8906001600160a01b031681565b6040516001600160a01b03909116815260200161026c565b61032461030e366004612ecb565b6000908152600160208190526040909120015490565b60405190815260200161026c565b610288610340366004612ee4565b61072a565b610288610353366004612eff565b610830565b610324600b5481565b61032460065481565b6003546102e8906001600160a01b031681565b61028861038b366004612eff565b61085b565b6102e861039e366004612ecb565b600e602052600090815260409020546001600160a01b031681565b6102886103c736600461319f565b6108d9565b610324600d5481565b6103e86103e3366004613237565b610b70565b60405161026c9190613273565b610288610403366004612ecb565b610b81565b6103246104163660046132a5565b610bae565b610288610429366004612ecb565b610bc1565b6102607f000000000000000000000000000000000000000000000000000000000000000081565b61032460085481565b6102607f000000000000000000000000000000000000000000000000000000000000000081565b6102e86104933660046132eb565b610c2f565b6102606104a6366004612eff565b610c47565b610324600081565b610324600c5481565b6102607f000000000000000000000000000000000000000000000000000000000000000081565b6102886104f1366004613237565b610c72565b610324610504366004613237565b6111ff565b61028861051736600461330d565b611402565b61032460008051602061366d83398151915281565b61028861053f366004613337565b6114c2565b610288610552366004612ecb565b6000908152600e6020526040902080546001600160a01b03191633179055565b61032460075481565b610324610589366004612ecb565b6115e9565b61028861059c366004612eff565b611600565b61032460095481565b6102886105b8366004612ecb565b600d55565b610260611626565b60006001600160e01b03198216635a05180f60e01b14806105ea57506105ea826116c1565b92915050565b60006105fd600143613389565b60408051914060208301526bffffffffffffffffffffffff193360601b16908201526001600160c01b031960c084901b166054820152605c0160408051601f1981840301815291815281516020928301206000818152600e9093529120549091506001600160a01b0316156106b25760405162461bcd60e51b8152602060048201526016602482015275135a5b995c9259081a185cc81c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b6000818152600e602052604080822080546001600160a01b0319166001600160a01b0387169081179091559051909183917fbfeb006f16aca8eb3d9953cf44db6b11b6f3041a313875dfa18f2e9d71bd309e9190a3505050565b60008051602061366d833981519152610724816116f6565b50600655565b60008051602061366d833981519152610742816116f6565b6000826001600160401b03161161079b5760405162461bcd60e51b815260206004820152601f60248201527f4d6178207368617264206e756d6265722063616e6e6f74206265207a65726f0060448201526064016106a9565b6107a660018361339c565b82166001600160401b031660001461080c5760405162461bcd60e51b815260206004820152602360248201527f4d6178207368617264206e756d626572206d75737420626520706f776572206f60448201526233101960e91b60648201526084016106a9565b50600a805467ffffffffffffffff19166001600160401b0392909216919091179055565b6000828152600160208190526040909120015461084c816116f6565b6108568383611703565b505050565b6001600160a01b03811633146108cb5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016106a9565b6108d58282611725565b5050565b815160a08201511461092d5760405162461bcd60e51b815260206004820152601a60248201527f496e636f6e73697374656e74206d696e696e672064696765737400000000000060448201526064016106a9565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708160a00151036109a05760405162461bcd60e51b815260206004820152601960248201527f456d707479206469676573742063616e206e6f74206d696e650000000000000060448201526064016106a9565b600754600c54106109f35760405162461bcd60e51b815260206004820152601c60248201527f45706f63682068617320656e6f756768207375626d697373696f6e730000000060448201526064016106a9565b6000610100610a04610400826133bc565b610a0e91906133f1565b610100610a1d610400826133bc565b610a2791906133f1565b8360600151610a3691906133f1565b610a4091906133bc565b6060840151909150610a529082611747565b60035460c0840151604051630fab20e160e31b815260048101919091526000916001600160a01b031690637d590708906024016040805180830381865afa158015610aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac5919061341c565b90506000610100610ad961040060046133bc565b610ae391906133f1565b8560800151610af29190613476565b90508082600001516001600160801b0316108015610b1d57508082602001516001600160801b031610155b610b695760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964207365616c656420636f6e746578742064696765737400000060448201526064016106a9565b5050505050565b610b78612e03565b6105ea8261198b565b60008051602061366d833981519152610b99816116f6565b6008829055600b546000036108d55750600755565b6000610bba8383611a9f565b9392505050565b60008051602061366d833981519152610bd9816116f6565b60008211610c295760405162461bcd60e51b815260206004820152601d60248201527f41646a75737420726174696f206d757374206265206e6f6e2d7a65726f00000060448201526064016106a9565b50600955565b6000828152600260205260408120610bba9083611d12565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6040810151610cbc5760405162461bcd60e51b81526020600482015260166024820152754d696e657249642063616e6e6f74206265207a65726f60501b60448201526064016106a9565b6040808201516000908152600e60205220546001600160a01b031680610d245760405162461bcd60e51b815260206004820152601b60248201527f4d696e6572496420646f6573206e6f742072656769737465726564000000000060448201526064016106a9565b60035460408051635a325a9f60e11b815290516000926001600160a01b03169163b464b53e9160048083019260c0929190829003018187875af1158015610d6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d939190613489565b9050600b5481600001511015610df95760405162461bcd60e51b815260206004820152602560248201527f496e7465726e616c206572726f723a2065706f6368206e756d62657220646563604482015264726561736560d81b60648201526084016106a9565b600b548151118015610e0d57506000600b54115b15610e3257600754600c541015610e2657610e26611d1e565b6000600c556008546007555b610e3c83826108d9565b600a5460608401516001600160401b0390911690610e5990611d30565b1115610eb65760405162461bcd60e51b815260206004820152602660248201527f457863656564696e672074686520616c6c6f776564206e756d626572206f662060448201526573686172647360d01b60648201526084016106a9565b610ebe612e03565b7f000000000000000000000000000000000000000000000000000000000000000015610ef457610eed8461198b565b9050610efb565b5060e08301515b7f000000000000000000000000000000000000000000000000000000000000000015610f84576000610f2d8583611a9f565b905082604001518114610f825760405162461bcd60e51b815260206004820152601860248201527f496e636f6e73697374656e74206d65726b6c6520726f6f74000000000000000060448201526064016106a9565b505b610f8c612e03565b90506000610f99856111ff565b90506000610fb884606001518760600151611d7a90919063ffffffff16565b9050604081600d54610fca91906133f1565b901b82111561101b5760405162461bcd60e51b815260206004820152601b60248201527f446f206e6f7420726561636820746172676574207175616c697479000000000060448201526064016106a9565b60008281526005602052604090205460ff161561107a5760405162461bcd60e51b815260206004820152601960248201527f416e7377657220686173206265656e207375626d69747465640000000000000060448201526064016106a9565b6000828152600560205260409020805460ff191660011790556004546001600160a01b031663b7a3c04c6101006110b3610400806133bc565b6110bf906104006133bc565b6110ca9060086133bc565b6110d491906133f1565b88608001516110e391906133f1565b6040808a015190516001600160e01b031960e085901b16815260048101929092526001600160a01b03891660248301526044820152606401600060405180830381600087803b15801561113557600080fd5b505af1158015611149573d6000803e3d6000fd5b5050506040808801518651600c5460808b015184519182526020820152919350917ffedd8f58059af8fd54b4394c01ea8d07cac041988be3b5a822fb779f9c8de3a4910160405180910390a38351600b55600c8054600191906000906111b0908490613476565b9091555050600754600c5410156111c957505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006111f7576111f784611eba565b505050505050565b60408101516000906112535760405162461bcd60e51b815260206004820152601860248201527f4d696e65722049442063616e6e6f7420626520656d707479000000000000000060448201526064016106a9565b6000604051806080016040528084604001518152602001846020015181526020018460000151815260200161128b8560600151611ef3565b90529050600061129a82611f5b565b905060006112ab61040060406133bc565b6112b96104006101006133bc565b6112c391906133f1565b6112d061040060046133bc565b6112de6104006101006133bc565b6112e891906133f1565b6112f291906133f1565b8560a001516113019190613502565b905061130b612e03565b611313612e22565b6113228760e001518486611fd3565b9250905061010061133661040060046133bc565b61134091906133f1565b8760a0015161134f91906133bc565b61138c826040516020016113639190613516565b6040516020818303038152906040528051906020012089606001516121c990919063ffffffff16565b6113969190613476565b8760800151146113e85760405162461bcd60e51b815260206004820152601960248201527f496e636f727265637420726563616c6c20706f736974696f6e0000000000000060448201526064016106a9565b6113f78760a0015185846122cf565b979650505050505050565b6000818152600e60205260409020546001600160a01b031633146114685760405162461bcd60e51b815260206004820152601b60248201527f53656e64657220646f6573206e6f74206f776e206d696e65724964000000000060448201526064016106a9565b6000818152600e602052604080822080546001600160a01b0319166001600160a01b03861690811790915590519091339184917f9a26a8e7fd42c501b452c02016def8048e3ea28c2bf15127a9b5e2029d989bf191a45050565b60005460ff16156115215760405162461bcd60e51b8152602060048201526024808201527f5a67496e697469616c697a61626c653a20616c726561647920696e697469616c6044820152631a5e995960e21b60648201526084016106a9565b6000805460ff1916600117815561153e906115393390565b611703565b61155660008051602061366d83398151915233611703565b611562836000196133f1565b600d557f00000000000000000000000000000000000000000000000000000000000000001561159257600019600d555b600380546001600160a01b039384166001600160a01b03199182161790915560048054929093169116179055506064600655600a600781905560088190556014600955805467ffffffffffffffff19166020179055565b60008181526002602052604081206105ea90612551565b6000828152600160208190526040909120015461161c816116f6565b6108568383611725565b600080600360009054906101000a90046001600160a01b03166001600160a01b031663b464b53e6040518163ffffffff1660e01b815260040160c0604051808303816000875af115801561167e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a29190613489565b9050600b54816000015111806116bb5750600754600c54105b91505090565b60006001600160e01b03198216637965db0b60e01b14806105ea57506301ffc9a760e01b6001600160e01b03198316146105ea565b611700813361255b565b50565b61170d82826125b4565b6000828152600260205260409020610856908261261f565b61172f8282612634565b6000828152600260205260409020610856908261269b565b610100611756610400806133bc565b611762906104006133bc565b61176d9060086133bc565b61177791906133f1565b82516117839190613502565b156117d05760405162461bcd60e51b815260206004820152601d60248201527f537461727420706f736974696f6e206973206e6f7420616c69676e656400000060448201526064016106a9565b6020820151825182916117e291613476565b11156118285760405162461bcd60e51b81526020600482015260156024820152744d696e696e672072616e6765206f766572666c6f7760581b60448201526064016106a9565b600061183383611d30565b610100611842610400806133bc565b61184e906104006133bc565b61185a906104006133bc565b6118659060086133bc565b61186f91906133f1565b61187991906133bc565b905080836020015111156118c75760405162461bcd60e51b81526020600482015260156024820152744d696e696e672072616e676520746f6f206c6f6e6760581b60448201526064016106a9565b60006118d383836126b0565b905080846020015110156119225760405162461bcd60e51b8152602060048201526016602482015275135a5b9a5b99c81c985b99d9481d1bdbc81cda1bdc9d60521b60448201526064016106a9565b83606001518460400151166001600160401b03166000146119855760405162461bcd60e51b815260206004820152601a60248201527f4d61736b656420626974732073686f756c64206265207a65726f00000000000060448201526064016106a9565b50505050565b611993612e03565b60408083015160c0840151608085015192516119c393906020019283526020830191909152604082015260600190565b60408051808303601f19018152919052805160209091012060e08301515118815260015b60206119f661040060046133bc565b611a0091906133f1565b811015611a995760e0830151611a17600183613389565b60808110611a2757611a2761353e565b6020020151604051602001611a3e91815260200190565b604051602081830303815290604052805190602001208360e001518260808110611a6a57611a6a61353e565b602002015118828260808110611a8257611a8261353e565b6020020152611a92600182613476565b90506119e7565b50919050565b6000805b6020611ab261040060046133bc565b611abc91906133f1565b811015611b0a576101006020820284012080848360808110611ae057611ae061353e565b602002018181525050506020610100611af991906133f1565b611b039082613476565b9050611aa3565b506000611b1a60206101006133f1565b90505b6020611b2c61040060046133bc565b611b3691906133f1565b811015611c095760005b6020611b4f61040060046133bc565b611b5991906133f1565b811015611c00576000848260808110611b7457611b7461353e565b60200201519050600085611b888585613476565b60808110611b9857611b9861353e565b602002015190508181604051602001611bbb929190918252602082015260400190565b60405160208183030381529060405280519060200120868460808110611be357611be361353e565b602002015250611bf99050600183901b82613476565b9050611b40565b5060011b611b1d565b508151611c14612e03565b92506000610100611c2861040060046133bc565b611c3291906133f1565b8560800151611c4191906133f1565b905060005b85610100015151811015611d0857600080611c62600285613502565b600003611c92578491508761010001518381518110611c8357611c8361353e565b60200260200101519050611cb7565b8761010001518381518110611ca957611ca961353e565b602002602001015191508490505b6040805160208101849052908101829052606001604051602081830303815290604052805190602001209450600284611cf091906133f1565b93505050600181611d019190613476565b9050611c46565b5090949350505050565b6000610bba83836126c6565b611d2e6001600160f01b036126f0565b565b606081015160009019815b6001600160401b03821615611d6b57611d5560018361339c565b9091169080611d6381613554565b915050611d3b565b600160ff9091161b9392505050565b600080610100611d8c610400806133bc565b611d98906104006133bc565b611da4906104006133bc565b611daf9060086133bc565b611db991906133f1565b8311611dc55782611e01565b610100611dd4610400806133bc565b611de0906104006133bc565b611dec906104006133bc565b611df79060086133bc565b611e0191906133f1565b90506000611e0e85611d30565b611e1890856133f1565b90506000610100611e2b610400806133bc565b611e37906104006133bc565b611e43906104006133bc565b611e4e9060086133bc565b611e5891906133f1565b8211611e645781611ea0565b610100611e73610400806133bc565b611e7f906104006133bc565b611e8b906104006133bc565b611e969060086133bc565b611ea091906133f1565b9050611eb081604085901b6133f1565b9695505050505050565b6000816020015143611ecc9190613389565b905060006010600d54901c90506000611ee88284600654612790565b9050611985816126f0565b60008160000151826020015183604001518460600151604051602001611f3e949392919093845260208401929092526001600160401b03908116604084015216606082015260800190565b604051602081830303815290604052805190602001209050919050565b611f63612e22565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b602080830191909152825190830151604084015160608501516105ea938593909290916080600161283f565b611fdb612e22565b611fe3612e03565b60005b848110156120415760005b604061200061040060046133bc565b61200a91906133f1565b81101561202e5761201a856128fe565b9450612027600182613476565b9050611ff1565b5061203a600182613476565b9050611fe6565b5060005b602061205461040060046133bc565b61205e91906133f1565b8110156120fe5761206e846128fe565b93508581608081106120825761208261353e565b602002015184511882826080811061209c5761209c61353e565b6020020152856120ad826001613476565b608081106120bd576120bd61353e565b6020020151846001602002015118826120d7836001613476565b608081106120e7576120e761353e565b60200201526120f7600282613476565b9050612045565b50600061210c856001613476565b90505b61211c61040060406133bc565b61212a6104006101006133bc565b61213491906133f1565b61214161040060046133bc565b61214f6104006101006133bc565b61215991906133f1565b61216391906133f1565b8110156121bd5760005b604061217c61040060046133bc565b61218691906133f1565b8110156121aa57612196856128fe565b94506121a3600182613476565b905061216d565b506121b6600182613476565b905061210f565b50829150935093915050565b6000806101006121db610400826133bc565b6121e591906133f1565b84602001516121f491906133f1565b6121fe9084613502565b60408501516060860151602087015192935083161790610100612223610400826133bc565b61222d91906133f1565b612240906001600160401b0384166133bc565b111561228e5760405162461bcd60e51b815260206004820152601c60248201527f526563616c6c20706f736974696f6e206f7574206f6620626f756e640000000060448201526064016106a9565b61010061229d610400826133bc565b6122a791906133f1565b6122ba906001600160401b0383166133bc565b85516122c69190613476565b95945050505050565b60006122d9612e22565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b60208083019190915284519085015161233f918391889190600060808161283f565b905060005b60046020612354610400836133bc565b61235e91906133f1565b6123689190613389565b811015612419576000816004016020026080019050612403838684608081106123935761239361353e565b6020020151876123a4866001613476565b608081106123b4576123b461353e565b6020020151886123c5876002613476565b608081106123d5576123d561353e565b6020020151896123e6886003613476565b608081106123f6576123f661353e565b602002015186600061283f565b92506124129050600482613476565b9050612344565b5061254781846004602061242f610400836133bc565b61243991906133f1565b6124439190613389565b608081106124535761245361353e565b60200201518560036020610400600461246c91906133bc565b61247691906133f1565b6124809190613389565b608081106124905761249061353e565b6020020151866002602061040060046124a991906133bc565b6124b391906133f1565b6124bd9190613389565b608081106124cd576124cd61353e565b6020020151876001602061040060046124e691906133bc565b6124f091906133f1565b6124fa9190613389565b6080811061250a5761250a61353e565b60200201516020610400600461252091906133bc565b61252a91906133f1565b6125359060206133bc565b612540906080613476565b600161283f565b5195945050505050565b60006105ea825490565b6125658282610c47565b6108d5576125728161296b565b61257d83602061297d565b60405160200161258e929190613597565b60408051601f198184030181529082905262461bcd60e51b82526106a99160040161360c565b6125be8282610c47565b6108d55760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000610bba836001600160a01b038416612b18565b61263e8282610c47565b156108d55760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610bba836001600160a01b038416612b67565b60008183106126bf5781610bba565b5090919050565b60008260000182815481106126dd576126dd61353e565b9060005260206000200154905092915050565b600d5460095460109190911c906000818461270c600183613389565b61271690866133bc565b6127209190613476565b61272a91906133f1565b90506127378360026133bc565b81111561274c576127498360026133bc565b90505b6127576002846133f1565b81101561276c576127696002846133f1565b90505b6001600160f01b0381111561278557506001600160f01b035b60101b600d55505050565b60008080600019858709858702925082811083820303915050806000036127ca578382816127c0576127c06133db565b0492505050610bba565b8084116127d657600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b612847612e22565b600c600061285485612c61565b8a516020808d0151835184830151604080516001600160e01b031960e08b901b168187015260248101969096526044860193909352606485018f9052608485018e905260a485018d905260c485018c90526001600160c01b031991821660e48601521660ec84015287151560f81b60f4840152805160d58185038101825260f5909401825293945091869184016009600019fa6128f057600080fd5b505050979650505050505050565b612906612e22565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b6020808301919091528251908301516105ea9183916000806040600161283f565b60606105ea6001600160a01b03831660145b6060600061298c8360026133bc565b612997906002613476565b6001600160401b038111156129ae576129ae612f22565b6040519080825280601f01601f1916602001820160405280156129d8576020820181803683370190505b509050600360fc1b816000815181106129f3576129f361353e565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612a2257612a2261353e565b60200101906001600160f81b031916908160001a9053506000612a468460026133bc565b612a51906001613476565b90505b6001811115612ac9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612a8557612a8561353e565b1a60f81b828281518110612a9b57612a9b61353e565b60200101906001600160f81b031916908160001a90535060049490941c93612ac28161363f565b9050612a54565b508315610bba5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106a9565b6000818152600183016020526040812054612b5f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105ea565b5060006105ea565b60008181526001830160205260408120548015612c50576000612b8b600183613389565b8554909150600090612b9f90600190613389565b9050818114612c04576000866000018281548110612bbf57612bbf61353e565b9060005260206000200154905080876000018481548110612be257612be261353e565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612c1557612c15613656565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506105ea565b60009150506105ea565b5092915050565b612c69612e22565b62010000821015612cad57600882811c66ffffffffffffff169083901b67ffffffffffffff00161760f01b5b6001600160c01b031916815260006020820152919050565b640100000000821015612ced57600882811b63ff00ff001662ff00ff9184901c9190911617601081811b91901c1760e01b6001600160e01b031916612c95565b68010000000000000000821015612d0757612c9582612d9d565b600160801b821015612d57576001600160401b038216604083901c612d2b82612d9d565b6001600160c01b0319168352612d4081612d9d565b6001600160c01b031916602084015250612d989050565b60405162461bcd60e51b8152602060048201526016602482015275626c616b65326220696e70757420746f6f206c6f6e6760501b60448201526064016106a9565b919050565b65ff000000ff00600882811b91821664ff000000ff9390911c92831617601090811b67ff000000ff0000009290921666ff000000ff0000939093169290921790911c17602081811b6bffffffffffffffff000000001691901c63ffffffff161760c01b90565b6040518061100001604052806080906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b600060208284031215612e5257600080fd5b81356001600160e01b031981168114610bba57600080fd5b80356001600160a01b0381168114612d9857600080fd5b80356001600160401b0381168114612d9857600080fd5b60008060408385031215612eab57600080fd5b612eb483612e6a565b9150612ec260208401612e81565b90509250929050565b600060208284031215612edd57600080fd5b5035919050565b600060208284031215612ef657600080fd5b610bba82612e81565b60008060408385031215612f1257600080fd5b82359150612ec260208401612e6a565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715612f5b57612f5b612f22565b60405290565b60405160c081016001600160401b0381118282101715612f5b57612f5b612f22565b600060808284031215612f9557600080fd5b604051608081018181106001600160401b0382111715612fb757612fb7612f22565b80604052508091508235815260208301356020820152612fd960408401612e81565b6040820152612fea60608401612e81565b60608201525092915050565b600082601f83011261300757600080fd5b6040516110008082018281106001600160401b038211171561302b5761302b612f22565b6040528301818582111561303e57600080fd5b845b82811015613058578035825260209182019101613040565b509195945050505050565b600082601f83011261307457600080fd5b813560206001600160401b038083111561309057613090612f22565b8260051b604051601f19603f830116810181811084821117156130b5576130b5612f22565b6040529384528581018301938381019250878511156130d357600080fd5b83870191505b848210156113f7578135835291830191908301906130d9565b6000611160828403121561310557600080fd5b61310d612f38565b90508135815260208201356020820152604082013560408201526131348360608401612f83565b606082015260e082013560808201526101008083013560a083015261012083013560c0830152613168846101408501612ff6565b60e08301526111408301356001600160401b0381111561318757600080fd5b61319385828601613063565b82840152505092915050565b60008082840360e08112156131b357600080fd5b83356001600160401b038111156131c957600080fd5b6131d5868287016130f2565b93505060c0601f19820112156131ea57600080fd5b506131f3612f61565b6020840135815260408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b60006020828403121561324957600080fd5b81356001600160401b0381111561325f57600080fd5b61326b848285016130f2565b949350505050565b6110008101818360005b608081101561329c57815183526020928301929091019060010161327d565b50505092915050565b60008061102083850312156132b957600080fd5b82356001600160401b038111156132cf57600080fd5b6132db858286016130f2565b925050612ec28460208501612ff6565b600080604083850312156132fe57600080fd5b50508035926020909101359150565b6000806040838503121561332057600080fd5b61332983612e6a565b946020939093013593505050565b60008060006060848603121561334c57600080fd5b8335925061335c60208501612e6a565b915061336a60408501612e6a565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b818103818111156105ea576105ea613373565b6001600160401b03828116828216039080821115612c5a57612c5a613373565b60008160001904831182151516156133d6576133d6613373565b500290565b634e487b7160e01b600052601260045260246000fd5b600082613400576134006133db565b500490565b80516001600160801b0381168114612d9857600080fd5b60006040828403121561342e57600080fd5b604051604081018181106001600160401b038211171561345057613450612f22565b60405261345c83613405565b815261346a60208401613405565b60208201529392505050565b808201808211156105ea576105ea613373565b600060c0828403121561349b57600080fd5b60405160c081018181106001600160401b03821117156134bd576134bd612f22565b8060405250825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201528091505092915050565b600082613511576135116133db565b500690565b60408101818360005b600281101561329c57815183526020928301929091019060010161351f565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff810361356a5761356a613373565b60010192915050565b60005b8381101561358e578181015183820152602001613576565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516135cf816017850160208801613573565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613600816028840160208801613573565b01602801949350505050565b602081526000825180602084015261362b816040850160208701613573565b601f01601f19169190910160400192915050565b60008161364e5761364e613373565b506000190190565b634e487b7160e01b600052603160045260246000fdfeb9d69e0ca90be54a40811e436234a7f7908b87ff2bec27e64f878b166da8e8e5a264697066735822122011ad02dc4aa33b6809dc085a005ecc87c70e691a8dd77b007948b593d988b2e164736f6c63430008100033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102485760003560e01c80637bba7d611161013b578063b0628ee0116100b8578063ca15c8731161007c578063ca15c8731461057b578063d547741f1461058e578063dddc61a8146105a1578063e1498cf9146105aa578063ffbc9bd0146105bd57600080fd5b8063b0628ee014610509578063b15d20da1461051c578063b4988fd014610531578063b51e039714610544578063b776a5121461057257600080fd5b8063a217fddf116100ff578063a217fddf146104ab578063a8279182146104b3578063adaa7a0f146104bc578063ae722e82146104e3578063aed75224146104f657600080fd5b80637bba7d611461042e5780637eca56881461045557806382975fe71461045e5780639010d07c1461048557806391d148541461049857600080fd5b8063331f3b9c116101c957806348f614411161018d57806348f61441146103cc57806359e7b5be146103d55780635bdca855146103f55780636e9bb60b14610408578063704d3c961461041b57600080fd5b8063331f3b9c14610361578063343aad821461036a57806336568abe1461037d57806339cd53ee146103905780633baebb75146103b957600080fd5b8063228cb73311610210578063228cb733146102d5578063248a9ca3146103005780632a02573b146103325780632f2ff15d1461034557806331223ba71461035857600080fd5b806301ffc9a71461024d578063047c13f514610275578063158ef93e1461028a5780631600c6241461029757806316a4be6f146102aa575b600080fd5b61026061025b366004612e40565b6105c5565b60405190151581526020015b60405180910390f35b610288610283366004612e98565b6105f0565b005b6000546102609060ff1681565b6102886102a5366004612ecb565b61070c565b600a546102bd906001600160401b031681565b6040516001600160401b03909116815260200161026c565b6004546102e8906001600160a01b031681565b6040516001600160a01b03909116815260200161026c565b61032461030e366004612ecb565b6000908152600160208190526040909120015490565b60405190815260200161026c565b610288610340366004612ee4565b61072a565b610288610353366004612eff565b610830565b610324600b5481565b61032460065481565b6003546102e8906001600160a01b031681565b61028861038b366004612eff565b61085b565b6102e861039e366004612ecb565b600e602052600090815260409020546001600160a01b031681565b6102886103c736600461319f565b6108d9565b610324600d5481565b6103e86103e3366004613237565b610b70565b60405161026c9190613273565b610288610403366004612ecb565b610b81565b6103246104163660046132a5565b610bae565b610288610429366004612ecb565b610bc1565b6102607f000000000000000000000000000000000000000000000000000000000000000081565b61032460085481565b6102607f000000000000000000000000000000000000000000000000000000000000000081565b6102e86104933660046132eb565b610c2f565b6102606104a6366004612eff565b610c47565b610324600081565b610324600c5481565b6102607f000000000000000000000000000000000000000000000000000000000000000081565b6102886104f1366004613237565b610c72565b610324610504366004613237565b6111ff565b61028861051736600461330d565b611402565b61032460008051602061366d83398151915281565b61028861053f366004613337565b6114c2565b610288610552366004612ecb565b6000908152600e6020526040902080546001600160a01b03191633179055565b61032460075481565b610324610589366004612ecb565b6115e9565b61028861059c366004612eff565b611600565b61032460095481565b6102886105b8366004612ecb565b600d55565b610260611626565b60006001600160e01b03198216635a05180f60e01b14806105ea57506105ea826116c1565b92915050565b60006105fd600143613389565b60408051914060208301526bffffffffffffffffffffffff193360601b16908201526001600160c01b031960c084901b166054820152605c0160408051601f1981840301815291815281516020928301206000818152600e9093529120549091506001600160a01b0316156106b25760405162461bcd60e51b8152602060048201526016602482015275135a5b995c9259081a185cc81c9959da5cdd195c995960521b60448201526064015b60405180910390fd5b6000818152600e602052604080822080546001600160a01b0319166001600160a01b0387169081179091559051909183917fbfeb006f16aca8eb3d9953cf44db6b11b6f3041a313875dfa18f2e9d71bd309e9190a3505050565b60008051602061366d833981519152610724816116f6565b50600655565b60008051602061366d833981519152610742816116f6565b6000826001600160401b03161161079b5760405162461bcd60e51b815260206004820152601f60248201527f4d6178207368617264206e756d6265722063616e6e6f74206265207a65726f0060448201526064016106a9565b6107a660018361339c565b82166001600160401b031660001461080c5760405162461bcd60e51b815260206004820152602360248201527f4d6178207368617264206e756d626572206d75737420626520706f776572206f60448201526233101960e91b60648201526084016106a9565b50600a805467ffffffffffffffff19166001600160401b0392909216919091179055565b6000828152600160208190526040909120015461084c816116f6565b6108568383611703565b505050565b6001600160a01b03811633146108cb5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016106a9565b6108d58282611725565b5050565b815160a08201511461092d5760405162461bcd60e51b815260206004820152601a60248201527f496e636f6e73697374656e74206d696e696e672064696765737400000000000060448201526064016106a9565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708160a00151036109a05760405162461bcd60e51b815260206004820152601960248201527f456d707479206469676573742063616e206e6f74206d696e650000000000000060448201526064016106a9565b600754600c54106109f35760405162461bcd60e51b815260206004820152601c60248201527f45706f63682068617320656e6f756768207375626d697373696f6e730000000060448201526064016106a9565b6000610100610a04610400826133bc565b610a0e91906133f1565b610100610a1d610400826133bc565b610a2791906133f1565b8360600151610a3691906133f1565b610a4091906133bc565b6060840151909150610a529082611747565b60035460c0840151604051630fab20e160e31b815260048101919091526000916001600160a01b031690637d590708906024016040805180830381865afa158015610aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac5919061341c565b90506000610100610ad961040060046133bc565b610ae391906133f1565b8560800151610af29190613476565b90508082600001516001600160801b0316108015610b1d57508082602001516001600160801b031610155b610b695760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964207365616c656420636f6e746578742064696765737400000060448201526064016106a9565b5050505050565b610b78612e03565b6105ea8261198b565b60008051602061366d833981519152610b99816116f6565b6008829055600b546000036108d55750600755565b6000610bba8383611a9f565b9392505050565b60008051602061366d833981519152610bd9816116f6565b60008211610c295760405162461bcd60e51b815260206004820152601d60248201527f41646a75737420726174696f206d757374206265206e6f6e2d7a65726f00000060448201526064016106a9565b50600955565b6000828152600260205260408120610bba9083611d12565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6040810151610cbc5760405162461bcd60e51b81526020600482015260166024820152754d696e657249642063616e6e6f74206265207a65726f60501b60448201526064016106a9565b6040808201516000908152600e60205220546001600160a01b031680610d245760405162461bcd60e51b815260206004820152601b60248201527f4d696e6572496420646f6573206e6f742072656769737465726564000000000060448201526064016106a9565b60035460408051635a325a9f60e11b815290516000926001600160a01b03169163b464b53e9160048083019260c0929190829003018187875af1158015610d6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d939190613489565b9050600b5481600001511015610df95760405162461bcd60e51b815260206004820152602560248201527f496e7465726e616c206572726f723a2065706f6368206e756d62657220646563604482015264726561736560d81b60648201526084016106a9565b600b548151118015610e0d57506000600b54115b15610e3257600754600c541015610e2657610e26611d1e565b6000600c556008546007555b610e3c83826108d9565b600a5460608401516001600160401b0390911690610e5990611d30565b1115610eb65760405162461bcd60e51b815260206004820152602660248201527f457863656564696e672074686520616c6c6f776564206e756d626572206f662060448201526573686172647360d01b60648201526084016106a9565b610ebe612e03565b7f000000000000000000000000000000000000000000000000000000000000000015610ef457610eed8461198b565b9050610efb565b5060e08301515b7f000000000000000000000000000000000000000000000000000000000000000015610f84576000610f2d8583611a9f565b905082604001518114610f825760405162461bcd60e51b815260206004820152601860248201527f496e636f6e73697374656e74206d65726b6c6520726f6f74000000000000000060448201526064016106a9565b505b610f8c612e03565b90506000610f99856111ff565b90506000610fb884606001518760600151611d7a90919063ffffffff16565b9050604081600d54610fca91906133f1565b901b82111561101b5760405162461bcd60e51b815260206004820152601b60248201527f446f206e6f7420726561636820746172676574207175616c697479000000000060448201526064016106a9565b60008281526005602052604090205460ff161561107a5760405162461bcd60e51b815260206004820152601960248201527f416e7377657220686173206265656e207375626d69747465640000000000000060448201526064016106a9565b6000828152600560205260409020805460ff191660011790556004546001600160a01b031663b7a3c04c6101006110b3610400806133bc565b6110bf906104006133bc565b6110ca9060086133bc565b6110d491906133f1565b88608001516110e391906133f1565b6040808a015190516001600160e01b031960e085901b16815260048101929092526001600160a01b03891660248301526044820152606401600060405180830381600087803b15801561113557600080fd5b505af1158015611149573d6000803e3d6000fd5b5050506040808801518651600c5460808b015184519182526020820152919350917ffedd8f58059af8fd54b4394c01ea8d07cac041988be3b5a822fb779f9c8de3a4910160405180910390a38351600b55600c8054600191906000906111b0908490613476565b9091555050600754600c5410156111c957505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006111f7576111f784611eba565b505050505050565b60408101516000906112535760405162461bcd60e51b815260206004820152601860248201527f4d696e65722049442063616e6e6f7420626520656d707479000000000000000060448201526064016106a9565b6000604051806080016040528084604001518152602001846020015181526020018460000151815260200161128b8560600151611ef3565b90529050600061129a82611f5b565b905060006112ab61040060406133bc565b6112b96104006101006133bc565b6112c391906133f1565b6112d061040060046133bc565b6112de6104006101006133bc565b6112e891906133f1565b6112f291906133f1565b8560a001516113019190613502565b905061130b612e03565b611313612e22565b6113228760e001518486611fd3565b9250905061010061133661040060046133bc565b61134091906133f1565b8760a0015161134f91906133bc565b61138c826040516020016113639190613516565b6040516020818303038152906040528051906020012089606001516121c990919063ffffffff16565b6113969190613476565b8760800151146113e85760405162461bcd60e51b815260206004820152601960248201527f496e636f727265637420726563616c6c20706f736974696f6e0000000000000060448201526064016106a9565b6113f78760a0015185846122cf565b979650505050505050565b6000818152600e60205260409020546001600160a01b031633146114685760405162461bcd60e51b815260206004820152601b60248201527f53656e64657220646f6573206e6f74206f776e206d696e65724964000000000060448201526064016106a9565b6000818152600e602052604080822080546001600160a01b0319166001600160a01b03861690811790915590519091339184917f9a26a8e7fd42c501b452c02016def8048e3ea28c2bf15127a9b5e2029d989bf191a45050565b60005460ff16156115215760405162461bcd60e51b8152602060048201526024808201527f5a67496e697469616c697a61626c653a20616c726561647920696e697469616c6044820152631a5e995960e21b60648201526084016106a9565b6000805460ff1916600117815561153e906115393390565b611703565b61155660008051602061366d83398151915233611703565b611562836000196133f1565b600d557f00000000000000000000000000000000000000000000000000000000000000001561159257600019600d555b600380546001600160a01b039384166001600160a01b03199182161790915560048054929093169116179055506064600655600a600781905560088190556014600955805467ffffffffffffffff19166020179055565b60008181526002602052604081206105ea90612551565b6000828152600160208190526040909120015461161c816116f6565b6108568383611725565b600080600360009054906101000a90046001600160a01b03166001600160a01b031663b464b53e6040518163ffffffff1660e01b815260040160c0604051808303816000875af115801561167e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a29190613489565b9050600b54816000015111806116bb5750600754600c54105b91505090565b60006001600160e01b03198216637965db0b60e01b14806105ea57506301ffc9a760e01b6001600160e01b03198316146105ea565b611700813361255b565b50565b61170d82826125b4565b6000828152600260205260409020610856908261261f565b61172f8282612634565b6000828152600260205260409020610856908261269b565b610100611756610400806133bc565b611762906104006133bc565b61176d9060086133bc565b61177791906133f1565b82516117839190613502565b156117d05760405162461bcd60e51b815260206004820152601d60248201527f537461727420706f736974696f6e206973206e6f7420616c69676e656400000060448201526064016106a9565b6020820151825182916117e291613476565b11156118285760405162461bcd60e51b81526020600482015260156024820152744d696e696e672072616e6765206f766572666c6f7760581b60448201526064016106a9565b600061183383611d30565b610100611842610400806133bc565b61184e906104006133bc565b61185a906104006133bc565b6118659060086133bc565b61186f91906133f1565b61187991906133bc565b905080836020015111156118c75760405162461bcd60e51b81526020600482015260156024820152744d696e696e672072616e676520746f6f206c6f6e6760581b60448201526064016106a9565b60006118d383836126b0565b905080846020015110156119225760405162461bcd60e51b8152602060048201526016602482015275135a5b9a5b99c81c985b99d9481d1bdbc81cda1bdc9d60521b60448201526064016106a9565b83606001518460400151166001600160401b03166000146119855760405162461bcd60e51b815260206004820152601a60248201527f4d61736b656420626974732073686f756c64206265207a65726f00000000000060448201526064016106a9565b50505050565b611993612e03565b60408083015160c0840151608085015192516119c393906020019283526020830191909152604082015260600190565b60408051808303601f19018152919052805160209091012060e08301515118815260015b60206119f661040060046133bc565b611a0091906133f1565b811015611a995760e0830151611a17600183613389565b60808110611a2757611a2761353e565b6020020151604051602001611a3e91815260200190565b604051602081830303815290604052805190602001208360e001518260808110611a6a57611a6a61353e565b602002015118828260808110611a8257611a8261353e565b6020020152611a92600182613476565b90506119e7565b50919050565b6000805b6020611ab261040060046133bc565b611abc91906133f1565b811015611b0a576101006020820284012080848360808110611ae057611ae061353e565b602002018181525050506020610100611af991906133f1565b611b039082613476565b9050611aa3565b506000611b1a60206101006133f1565b90505b6020611b2c61040060046133bc565b611b3691906133f1565b811015611c095760005b6020611b4f61040060046133bc565b611b5991906133f1565b811015611c00576000848260808110611b7457611b7461353e565b60200201519050600085611b888585613476565b60808110611b9857611b9861353e565b602002015190508181604051602001611bbb929190918252602082015260400190565b60405160208183030381529060405280519060200120868460808110611be357611be361353e565b602002015250611bf99050600183901b82613476565b9050611b40565b5060011b611b1d565b508151611c14612e03565b92506000610100611c2861040060046133bc565b611c3291906133f1565b8560800151611c4191906133f1565b905060005b85610100015151811015611d0857600080611c62600285613502565b600003611c92578491508761010001518381518110611c8357611c8361353e565b60200260200101519050611cb7565b8761010001518381518110611ca957611ca961353e565b602002602001015191508490505b6040805160208101849052908101829052606001604051602081830303815290604052805190602001209450600284611cf091906133f1565b93505050600181611d019190613476565b9050611c46565b5090949350505050565b6000610bba83836126c6565b611d2e6001600160f01b036126f0565b565b606081015160009019815b6001600160401b03821615611d6b57611d5560018361339c565b9091169080611d6381613554565b915050611d3b565b600160ff9091161b9392505050565b600080610100611d8c610400806133bc565b611d98906104006133bc565b611da4906104006133bc565b611daf9060086133bc565b611db991906133f1565b8311611dc55782611e01565b610100611dd4610400806133bc565b611de0906104006133bc565b611dec906104006133bc565b611df79060086133bc565b611e0191906133f1565b90506000611e0e85611d30565b611e1890856133f1565b90506000610100611e2b610400806133bc565b611e37906104006133bc565b611e43906104006133bc565b611e4e9060086133bc565b611e5891906133f1565b8211611e645781611ea0565b610100611e73610400806133bc565b611e7f906104006133bc565b611e8b906104006133bc565b611e969060086133bc565b611ea091906133f1565b9050611eb081604085901b6133f1565b9695505050505050565b6000816020015143611ecc9190613389565b905060006010600d54901c90506000611ee88284600654612790565b9050611985816126f0565b60008160000151826020015183604001518460600151604051602001611f3e949392919093845260208401929092526001600160401b03908116604084015216606082015260800190565b604051602081830303815290604052805190602001209050919050565b611f63612e22565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b602080830191909152825190830151604084015160608501516105ea938593909290916080600161283f565b611fdb612e22565b611fe3612e03565b60005b848110156120415760005b604061200061040060046133bc565b61200a91906133f1565b81101561202e5761201a856128fe565b9450612027600182613476565b9050611ff1565b5061203a600182613476565b9050611fe6565b5060005b602061205461040060046133bc565b61205e91906133f1565b8110156120fe5761206e846128fe565b93508581608081106120825761208261353e565b602002015184511882826080811061209c5761209c61353e565b6020020152856120ad826001613476565b608081106120bd576120bd61353e565b6020020151846001602002015118826120d7836001613476565b608081106120e7576120e761353e565b60200201526120f7600282613476565b9050612045565b50600061210c856001613476565b90505b61211c61040060406133bc565b61212a6104006101006133bc565b61213491906133f1565b61214161040060046133bc565b61214f6104006101006133bc565b61215991906133f1565b61216391906133f1565b8110156121bd5760005b604061217c61040060046133bc565b61218691906133f1565b8110156121aa57612196856128fe565b94506121a3600182613476565b905061216d565b506121b6600182613476565b905061210f565b50829150935093915050565b6000806101006121db610400826133bc565b6121e591906133f1565b84602001516121f491906133f1565b6121fe9084613502565b60408501516060860151602087015192935083161790610100612223610400826133bc565b61222d91906133f1565b612240906001600160401b0384166133bc565b111561228e5760405162461bcd60e51b815260206004820152601c60248201527f526563616c6c20706f736974696f6e206f7574206f6620626f756e640000000060448201526064016106a9565b61010061229d610400826133bc565b6122a791906133f1565b6122ba906001600160401b0383166133bc565b85516122c69190613476565b95945050505050565b60006122d9612e22565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b60208083019190915284519085015161233f918391889190600060808161283f565b905060005b60046020612354610400836133bc565b61235e91906133f1565b6123689190613389565b811015612419576000816004016020026080019050612403838684608081106123935761239361353e565b6020020151876123a4866001613476565b608081106123b4576123b461353e565b6020020151886123c5876002613476565b608081106123d5576123d561353e565b6020020151896123e6886003613476565b608081106123f6576123f661353e565b602002015186600061283f565b92506124129050600482613476565b9050612344565b5061254781846004602061242f610400836133bc565b61243991906133f1565b6124439190613389565b608081106124535761245361353e565b60200201518560036020610400600461246c91906133bc565b61247691906133f1565b6124809190613389565b608081106124905761249061353e565b6020020151866002602061040060046124a991906133bc565b6124b391906133f1565b6124bd9190613389565b608081106124cd576124cd61353e565b6020020151876001602061040060046124e691906133bc565b6124f091906133f1565b6124fa9190613389565b6080811061250a5761250a61353e565b60200201516020610400600461252091906133bc565b61252a91906133f1565b6125359060206133bc565b612540906080613476565b600161283f565b5195945050505050565b60006105ea825490565b6125658282610c47565b6108d5576125728161296b565b61257d83602061297d565b60405160200161258e929190613597565b60408051601f198184030181529082905262461bcd60e51b82526106a99160040161360c565b6125be8282610c47565b6108d55760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000610bba836001600160a01b038416612b18565b61263e8282610c47565b156108d55760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610bba836001600160a01b038416612b67565b60008183106126bf5781610bba565b5090919050565b60008260000182815481106126dd576126dd61353e565b9060005260206000200154905092915050565b600d5460095460109190911c906000818461270c600183613389565b61271690866133bc565b6127209190613476565b61272a91906133f1565b90506127378360026133bc565b81111561274c576127498360026133bc565b90505b6127576002846133f1565b81101561276c576127696002846133f1565b90505b6001600160f01b0381111561278557506001600160f01b035b60101b600d55505050565b60008080600019858709858702925082811083820303915050806000036127ca578382816127c0576127c06133db565b0492505050610bba565b8084116127d657600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b612847612e22565b600c600061285485612c61565b8a516020808d0151835184830151604080516001600160e01b031960e08b901b168187015260248101969096526044860193909352606485018f9052608485018e905260a485018d905260c485018c90526001600160c01b031991821660e48601521660ec84015287151560f81b60f4840152805160d58185038101825260f5909401825293945091869184016009600019fa6128f057600080fd5b505050979650505050505050565b612906612e22565b7f48c9bdf267e6096a3ba7ca8485ae67bb2bf894fe72f36e3cf1361d5f3af54fa581527fd182e6ad7f520e511f6c3e2b8c68059b6bbd41fbabd9831f79217e1319cde05b6020808301919091528251908301516105ea9183916000806040600161283f565b60606105ea6001600160a01b03831660145b6060600061298c8360026133bc565b612997906002613476565b6001600160401b038111156129ae576129ae612f22565b6040519080825280601f01601f1916602001820160405280156129d8576020820181803683370190505b509050600360fc1b816000815181106129f3576129f361353e565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612a2257612a2261353e565b60200101906001600160f81b031916908160001a9053506000612a468460026133bc565b612a51906001613476565b90505b6001811115612ac9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612a8557612a8561353e565b1a60f81b828281518110612a9b57612a9b61353e565b60200101906001600160f81b031916908160001a90535060049490941c93612ac28161363f565b9050612a54565b508315610bba5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106a9565b6000818152600183016020526040812054612b5f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105ea565b5060006105ea565b60008181526001830160205260408120548015612c50576000612b8b600183613389565b8554909150600090612b9f90600190613389565b9050818114612c04576000866000018281548110612bbf57612bbf61353e565b9060005260206000200154905080876000018481548110612be257612be261353e565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612c1557612c15613656565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506105ea565b60009150506105ea565b5092915050565b612c69612e22565b62010000821015612cad57600882811c66ffffffffffffff169083901b67ffffffffffffff00161760f01b5b6001600160c01b031916815260006020820152919050565b640100000000821015612ced57600882811b63ff00ff001662ff00ff9184901c9190911617601081811b91901c1760e01b6001600160e01b031916612c95565b68010000000000000000821015612d0757612c9582612d9d565b600160801b821015612d57576001600160401b038216604083901c612d2b82612d9d565b6001600160c01b0319168352612d4081612d9d565b6001600160c01b031916602084015250612d989050565b60405162461bcd60e51b8152602060048201526016602482015275626c616b65326220696e70757420746f6f206c6f6e6760501b60448201526064016106a9565b919050565b65ff000000ff00600882811b91821664ff000000ff9390911c92831617601090811b67ff000000ff0000009290921666ff000000ff0000939093169290921790911c17602081811b6bffffffffffffffff000000001691901c63ffffffff161760c01b90565b6040518061100001604052806080906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b600060208284031215612e5257600080fd5b81356001600160e01b031981168114610bba57600080fd5b80356001600160a01b0381168114612d9857600080fd5b80356001600160401b0381168114612d9857600080fd5b60008060408385031215612eab57600080fd5b612eb483612e6a565b9150612ec260208401612e81565b90509250929050565b600060208284031215612edd57600080fd5b5035919050565b600060208284031215612ef657600080fd5b610bba82612e81565b60008060408385031215612f1257600080fd5b82359150612ec260208401612e6a565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715612f5b57612f5b612f22565b60405290565b60405160c081016001600160401b0381118282101715612f5b57612f5b612f22565b600060808284031215612f9557600080fd5b604051608081018181106001600160401b0382111715612fb757612fb7612f22565b80604052508091508235815260208301356020820152612fd960408401612e81565b6040820152612fea60608401612e81565b60608201525092915050565b600082601f83011261300757600080fd5b6040516110008082018281106001600160401b038211171561302b5761302b612f22565b6040528301818582111561303e57600080fd5b845b82811015613058578035825260209182019101613040565b509195945050505050565b600082601f83011261307457600080fd5b813560206001600160401b038083111561309057613090612f22565b8260051b604051601f19603f830116810181811084821117156130b5576130b5612f22565b6040529384528581018301938381019250878511156130d357600080fd5b83870191505b848210156113f7578135835291830191908301906130d9565b6000611160828403121561310557600080fd5b61310d612f38565b90508135815260208201356020820152604082013560408201526131348360608401612f83565b606082015260e082013560808201526101008083013560a083015261012083013560c0830152613168846101408501612ff6565b60e08301526111408301356001600160401b0381111561318757600080fd5b61319385828601613063565b82840152505092915050565b60008082840360e08112156131b357600080fd5b83356001600160401b038111156131c957600080fd5b6131d5868287016130f2565b93505060c0601f19820112156131ea57600080fd5b506131f3612f61565b6020840135815260408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b60006020828403121561324957600080fd5b81356001600160401b0381111561325f57600080fd5b61326b848285016130f2565b949350505050565b6110008101818360005b608081101561329c57815183526020928301929091019060010161327d565b50505092915050565b60008061102083850312156132b957600080fd5b82356001600160401b038111156132cf57600080fd5b6132db858286016130f2565b925050612ec28460208501612ff6565b600080604083850312156132fe57600080fd5b50508035926020909101359150565b6000806040838503121561332057600080fd5b61332983612e6a565b946020939093013593505050565b60008060006060848603121561334c57600080fd5b8335925061335c60208501612e6a565b915061336a60408501612e6a565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b818103818111156105ea576105ea613373565b6001600160401b03828116828216039080821115612c5a57612c5a613373565b60008160001904831182151516156133d6576133d6613373565b500290565b634e487b7160e01b600052601260045260246000fd5b600082613400576134006133db565b500490565b80516001600160801b0381168114612d9857600080fd5b60006040828403121561342e57600080fd5b604051604081018181106001600160401b038211171561345057613450612f22565b60405261345c83613405565b815261346a60208401613405565b60208201529392505050565b808201808211156105ea576105ea613373565b600060c0828403121561349b57600080fd5b60405160c081018181106001600160401b03821117156134bd576134bd612f22565b8060405250825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201528091505092915050565b600082613511576135116133db565b500690565b60408101818360005b600281101561329c57815183526020928301929091019060010161351f565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff810361356a5761356a613373565b60010192915050565b60005b8381101561358e578181015183820152602001613576565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516135cf816017850160208801613573565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613600816028840160208801613573565b01602801949350505050565b602081526000825180602084015261362b816040850160208701613573565b601f01601f19169190910160400192915050565b60008161364e5761364e613373565b506000190190565b634e487b7160e01b600052603160045260246000fdfeb9d69e0ca90be54a40811e436234a7f7908b87ff2bec27e64f878b166da8e8e5a264697066735822122011ad02dc4aa33b6809dc085a005ecc87c70e691a8dd77b007948b593d988b2e164736f6c63430008100033", "linkReferences": {}, "deployedLinkReferences": {} }