[ { "inputs": [ { "internalType": "string[]", "name": "characterNames", "type": "string[]" }, { "internalType": "string[]", "name": "characterImageURIs", "type": "string[]" }, { "internalType": "uint256[]", "name": "characterHp", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "characterAttackDmg", "type": "uint256[]" }, { "internalType": "bool[]", "name": "staked", "type": "bool[]" }, { "internalType": "string", "name": "bossName", "type": "string" }, { "internalType": "string", "name": "bossImageURI", "type": "string" }, { "internalType": "uint256", "name": "bossHp", "type": "uint256" }, { "internalType": "uint256", "name": "bossAttackDamage", "type": "uint256" }, { "internalType": "address", "name": "_ironAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "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": "newBossHp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newPlayerHp", "type": "uint256" } ], "name": "AttackComplete", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "CharacterNFTClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "characterIndex", "type": "uint256" } ], "name": "CharacterNFTMinted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "CharacterNFTStaked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "attackBoss", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "bigBoss", "outputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "imageURI", "type": "string" }, { "internalType": "uint256", "name": "hp", "type": "uint256" }, { "internalType": "uint256", "name": "maxHp", "type": "uint256" }, { "internalType": "uint256", "name": "attackDamage", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "checkIfUserHasNFT", "outputs": [ { "components": [ { "internalType": "uint256", "name": "characterIndex", "type": "uint256" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "imageURI", "type": "string" }, { "internalType": "uint256", "name": "hp", "type": "uint256" }, { "internalType": "uint256", "name": "maxHp", "type": "uint256" }, { "internalType": "uint256", "name": "attackDamage", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" } ], "internalType": "struct Avalon.CharacterAttributes", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_characterIndex", "type": "uint256" } ], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getAllDefaultCharacters", "outputs": [ { "components": [ { "internalType": "uint256", "name": "characterIndex", "type": "uint256" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "imageURI", "type": "string" }, { "internalType": "uint256", "name": "hp", "type": "uint256" }, { "internalType": "uint256", "name": "maxHp", "type": "uint256" }, { "internalType": "uint256", "name": "attackDamage", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" } ], "internalType": "struct Avalon.CharacterAttributes[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBigBoss", "outputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "imageURI", "type": "string" }, { "internalType": "uint256", "name": "hp", "type": "uint256" }, { "internalType": "uint256", "name": "maxHp", "type": "uint256" }, { "internalType": "uint256", "name": "attackDamage", "type": "uint256" } ], "internalType": "struct Avalon.BigBoss", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "getNftById", "outputs": [ { "components": [ { "internalType": "uint256", "name": "characterIndex", "type": "uint256" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "imageURI", "type": "string" }, { "internalType": "uint256", "name": "hp", "type": "uint256" }, { "internalType": "uint256", "name": "maxHp", "type": "uint256" }, { "internalType": "uint256", "name": "attackDamage", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" } ], "internalType": "struct Avalon.CharacterAttributes", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "getStakeById", "outputs": [ { "components": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "finishTimestamp", "type": "uint256" }, { "internalType": "bool", "name": "claimed", "type": "bool" }, { "internalType": "uint256", "name": "stakeType", "type": "uint256" } ], "internalType": "struct Avalon.PendingStake", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_characterIndex", "type": "uint256" } ], "name": "mintCharacterNFT", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nftHolderAttributes", "outputs": [ { "internalType": "uint256", "name": "characterIndex", "type": "uint256" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "imageURI", "type": "string" }, { "internalType": "uint256", "name": "hp", "type": "uint256" }, { "internalType": "uint256", "name": "maxHp", "type": "uint256" }, { "internalType": "uint256", "name": "attackDamage", "type": "uint256" }, { "internalType": "bool", "name": "staked", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nftHolders", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "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": "uint256", "name": "_characterIndex", "type": "uint256" }, { "internalType": "uint256", "name": "_stakeType", "type": "uint256" } ], "name": "stake", "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": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b506040516200580038038062005800833981810160405281019062000037919062000736565b6040518060400160405280600681526020017f4865726f657300000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4845524f000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000bb92919062000398565b508060019080519060200190620000d492919062000398565b50505080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060005b8a51811015620002d257600d6040518060e001604052808381526020018d84815181106200014e576200014d62000b98565b5b602002602001015181526020018c848151811062000171576200017062000b98565b5b602002602001015181526020018b848151811062000194576200019362000b98565b5b602002602001015181526020018b8481518110620001b757620001b662000b98565b5b602002602001015181526020018a8481518110620001da57620001d962000b98565b5b60200260200101518152602001898481518110620001fd57620001fc62000b98565b5b6020026020010151151581525090806001815401808255809150506001900390600052602060002090600702016000909190919091506000820151816000015560208201518160010190805190602001906200025b92919062000398565b5060408201518160020190805190602001906200027a92919062000398565b50606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff0219169083151502179055505050600181620002ca9190620009f1565b90506200011b565b506040518060a0016040528086815260200185815260200184815260200184815260200183815250600760008201518160000190805190602001906200031a92919062000398565b5060208201518160010190805190602001906200033992919062000398565b5060408201518160020155606082015181600301556080820151816004015590505062000372600c6200038260201b62001fb31760201c565b5050505050505050505062000c6e565b6001816000016000828254019250508190555050565b828054620003a69062000ace565b90600052602060002090601f016020900481019282620003ca576000855562000416565b82601f10620003e557805160ff191683800117855562000416565b8280016001018555821562000416579182015b8281111562000415578251825591602001919060010190620003f8565b5b50905062000425919062000429565b5090565b5b80821115620004445760008160009055506001016200042a565b5090565b60006200045f62000459846200092e565b62000905565b9050808382526020820190508285602086028201111562000485576200048462000bfb565b5b60005b85811015620004b957816200049e8882620006d5565b84526020840193506020830192505060018101905062000488565b5050509392505050565b6000620004da620004d4846200095d565b62000905565b905080838252602082019050828560208602820111156200050057620004ff62000bfb565b5b60005b858110156200055557815167ffffffffffffffff8111156200052a576200052962000bf6565b5b808601620005398982620006ec565b8552602085019450602084019350505060018101905062000503565b5050509392505050565b60006200057662000570846200098c565b62000905565b905080838252602082019050828560208602820111156200059c576200059b62000bfb565b5b60005b85811015620005d05781620005b588826200071f565b8452602084019350602083019250506001810190506200059f565b5050509392505050565b6000620005f1620005eb84620009bb565b62000905565b90508281526020810184848401111562000610576200060f62000c00565b5b6200061d84828562000a98565b509392505050565b600081519050620006368162000c20565b92915050565b600082601f83011262000654576200065362000bf6565b5b81516200066684826020860162000448565b91505092915050565b600082601f83011262000687576200068662000bf6565b5b815162000699848260208601620004c3565b91505092915050565b600082601f830112620006ba57620006b962000bf6565b5b8151620006cc8482602086016200055f565b91505092915050565b600081519050620006e68162000c3a565b92915050565b600082601f83011262000704576200070362000bf6565b5b815162000716848260208601620005da565b91505092915050565b600081519050620007308162000c54565b92915050565b6000806000806000806000806000806101408b8d0312156200075d576200075c62000c0a565b5b60008b015167ffffffffffffffff8111156200077e576200077d62000c05565b5b6200078c8d828e016200066f565b9a505060208b015167ffffffffffffffff811115620007b057620007af62000c05565b5b620007be8d828e016200066f565b99505060408b015167ffffffffffffffff811115620007e257620007e162000c05565b5b620007f08d828e01620006a2565b98505060608b015167ffffffffffffffff81111562000814576200081362000c05565b5b620008228d828e01620006a2565b97505060808b015167ffffffffffffffff81111562000846576200084562000c05565b5b620008548d828e016200063c565b96505060a08b015167ffffffffffffffff81111562000878576200087762000c05565b5b620008868d828e01620006ec565b95505060c08b015167ffffffffffffffff811115620008aa57620008a962000c05565b5b620008b88d828e01620006ec565b94505060e0620008cb8d828e016200071f565b935050610100620008df8d828e016200071f565b925050610120620008f38d828e0162000625565b9150509295989b9194979a5092959850565b60006200091162000924565b90506200091f828262000b04565b919050565b6000604051905090565b600067ffffffffffffffff8211156200094c576200094b62000bc7565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156200097b576200097a62000bc7565b5b602082029050602081019050919050565b600067ffffffffffffffff821115620009aa57620009a962000bc7565b5b602082029050602081019050919050565b600067ffffffffffffffff821115620009d957620009d862000bc7565b5b620009e48262000c0f565b9050602081019050919050565b6000620009fe8262000a8e565b915062000a0b8362000a8e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000a435762000a4262000b3a565b5b828201905092915050565b600062000a5b8262000a6e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000ab857808201518184015260208101905062000a9b565b8381111562000ac8576000848401525b50505050565b6000600282049050600182168062000ae757607f821691505b6020821081141562000afe5762000afd62000b69565b5b50919050565b62000b0f8262000c0f565b810181811067ffffffffffffffff8211171562000b315762000b3062000bc7565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b62000c2b8162000a4e565b811462000c3757600080fd5b50565b62000c458162000a62565b811462000c5157600080fd5b50565b62000c5f8162000a8e565b811462000c6b57600080fd5b50565b614b828062000c7e6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80637df124a1116100de578063b88d4fde11610097578063c8cf27f411610071578063c8cf27f41461048c578063d4f24c5b146104aa578063e985e9c5146104b4578063f8b81ef7146104e457610173565b8063b88d4fde14610422578063b953084e1461043e578063c87b56dd1461045c57610173565b80637df124a11461033057806395a81b8f1461036057806395d89b411461039057806398da4c95146103ae578063a22cb465146103e4578063a9c326791461040057610173565b80633188314511610130578063318831451461024c578063379607f51461027c57806342842e0e146102985780636352211e146102b457806370a08231146102e45780637b0472f01461031457610173565b806301ffc9a7146101785780630665f961146101a857806306fdde03146101c6578063081812fc146101e4578063095ea7b31461021457806323b872dd14610230575b600080fd5b610192600480360381019061018d9190613179565b610500565b60405161019f9190613b55565b60405180910390f35b6101b06105e2565b6040516101bd9190613e33565b60405180910390f35b6101ce61073e565b6040516101db9190613b70565b60405180910390f35b6101fe60048036038101906101f991906131d3565b6107d0565b60405161020b9190613a6c565b60405180910390f35b61022e6004803603810190610229919061310c565b610855565b005b61024a60048036038101906102459190612ff6565b61096d565b005b610266600480360381019061026191906131d3565b6109cd565b6040516102739190613e77565b60405180910390f35b610296600480360381019061029191906131d3565b610a33565b005b6102b260048036038101906102ad9190612ff6565b610c27565b005b6102ce60048036038101906102c991906131d3565b610c47565b6040516102db9190613a6c565b60405180910390f35b6102fe60048036038101906102f99190612f89565b610cf9565b60405161030b9190613e92565b60405180910390f35b61032e60048036038101906103299190613200565b610db1565b005b61034a60048036038101906103459190612f89565b610efd565b6040516103579190613e92565b60405180910390f35b61037a600480360381019061037591906131d3565b610f15565b6040516103879190613e55565b60405180910390f35b6103986110a9565b6040516103a59190613b70565b60405180910390f35b6103c860048036038101906103c391906131d3565b61113b565b6040516103db9796959493929190613ead565b60405180910390f35b6103fe60048036038101906103f991906130cc565b61129a565b005b6104086112b0565b604051610419959493929190613b92565b60405180910390f35b61043c60048036038101906104379190613049565b6113e4565b005b610446611446565b6040516104539190613b33565b60405180910390f35b610476600480360381019061047191906131d3565b61160c565b6040516104839190613b70565b60405180910390f35b610494611842565b6040516104a19190613e55565b60405180910390f35b6104b2611a35565b005b6104ce60048036038101906104c99190612fb6565b611be3565b6040516104db9190613b55565b60405180910390f35b6104fe60048036038101906104f991906131d3565b611c77565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105cb57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806105db57506105da82611fc9565b5b9050919050565b6105ea612d60565b60076040518060a001604052908160008201805461060790614213565b80601f016020809104026020016040519081016040528092919081815260200182805461063390614213565b80156106805780601f1061065557610100808354040283529160200191610680565b820191906000526020600020905b81548152906001019060200180831161066357829003601f168201915b5050505050815260200160018201805461069990614213565b80601f01602080910402602001604051908101604052809291908181526020018280546106c590614213565b80156107125780601f106106e757610100808354040283529160200191610712565b820191906000526020600020905b8154815290600101906020018083116106f557829003601f168201915b505050505081526020016002820154815260200160038201548152602001600482015481525050905090565b60606000805461074d90614213565b80601f016020809104026020016040519081016040528092919081815260200182805461077990614213565b80156107c65780601f1061079b576101008083540402835291602001916107c6565b820191906000526020600020905b8154815290600101906020018083116107a957829003601f168201915b5050505050905090565b60006107db82612033565b61081a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081190613d73565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061086082610c47565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c890613db3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108f061209f565b73ffffffffffffffffffffffffffffffffffffffff16148061091f575061091e8161091961209f565b611be3565b5b61095e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095590613cd3565b60405180910390fd5b61096883836120a7565b505050565b61097e61097861209f565b82612160565b6109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b490613dd3565b60405180910390fd5b6109c883838361223e565b505050565b6109d5612d8f565b600e600083815260200190815260200160002060405180608001604052908160008201548152602001600182015481526020016002820160009054906101000a900460ff161515151581526020016003820154815250509050919050565b6000600f60008381526020019081526020016000209050600115158160060160009054906101000a900460ff16151514610aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9990613df3565b60405180910390fd5b6000600e600084815260200190815260200160002090504281600101541115610b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af790613e13565b60405180910390fd5b60018160020160006101000a81548160ff021916908315150217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360016040518363ffffffff1660e01b8152600401610b7b929190613ad3565b602060405180830381600087803b158015610b9557600080fd5b505af1158015610ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcd919061314c565b5060008260060160006101000a81548160ff0219169083151502179055507fcc2851715ef2b4327ed74e641a22898db38b7f9611221c12dc89d9ec19a7fe0183604051610c1a9190613e92565b60405180910390a1505050565b610c42838383604051806020016040528060008152506113e4565b505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce790613d13565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6190613cf3565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600f60008481526020019081526020016000209050600015158160060160009054906101000a900460ff16151514610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790613cb3565b60405180910390fd5b60018160060160006101000a81548160ff0219169083151502179055506040518060800160405280848152602001600142610e5b9190614036565b815260200160001515815260200183815250600e6000858152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff021916908315150217905550606082015181600301559050507fb9ad30939a7d6fedf44d48033052c2ef2dcab888ffedae7a057c1783e1b8fce583604051610ef09190613e92565b60405180910390a1505050565b60106020528060005260406000206000915090505481565b610f1d612db9565b600f60008381526020019081526020016000206040518060e001604052908160008201548152602001600182018054610f5590614213565b80601f0160208091040260200160405190810160405280929190818152602001828054610f8190614213565b8015610fce5780601f10610fa357610100808354040283529160200191610fce565b820191906000526020600020905b815481529060010190602001808311610fb157829003601f168201915b50505050508152602001600282018054610fe790614213565b80601f016020809104026020016040519081016040528092919081815260200182805461101390614213565b80156110605780601f1061103557610100808354040283529160200191611060565b820191906000526020600020905b81548152906001019060200180831161104357829003601f168201915b505050505081526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900460ff1615151515815250509050919050565b6060600180546110b890614213565b80601f01602080910402602001604051908101604052809291908181526020018280546110e490614213565b80156111315780601f1061110657610100808354040283529160200191611131565b820191906000526020600020905b81548152906001019060200180831161111457829003601f168201915b5050505050905090565b600f60205280600052604060002060009150905080600001549080600101805461116490614213565b80601f016020809104026020016040519081016040528092919081815260200182805461119090614213565b80156111dd5780601f106111b2576101008083540402835291602001916111dd565b820191906000526020600020905b8154815290600101906020018083116111c057829003601f168201915b5050505050908060020180546111f290614213565b80601f016020809104026020016040519081016040528092919081815260200182805461121e90614213565b801561126b5780601f106112405761010080835404028352916020019161126b565b820191906000526020600020905b81548152906001019060200180831161124e57829003601f168201915b5050505050908060030154908060040154908060050154908060060160009054906101000a900460ff16905087565b6112ac6112a561209f565b838361249a565b5050565b60078060000180546112c190614213565b80601f01602080910402602001604051908101604052809291908181526020018280546112ed90614213565b801561133a5780601f1061130f5761010080835404028352916020019161133a565b820191906000526020600020905b81548152906001019060200180831161131d57829003601f168201915b50505050509080600101805461134f90614213565b80601f016020809104026020016040519081016040528092919081815260200182805461137b90614213565b80156113c85780601f1061139d576101008083540402835291602001916113c8565b820191906000526020600020905b8154815290600101906020018083116113ab57829003601f168201915b5050505050908060020154908060030154908060040154905085565b6113f56113ef61209f565b83612160565b611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142b90613dd3565b60405180910390fd5b61144084848484612607565b50505050565b6060600d805480602002602001604051908101604052809291908181526020016000905b8282101561160357838290600052602060002090600702016040518060e0016040529081600082015481526020016001820180546114a790614213565b80601f01602080910402602001604051908101604052809291908181526020018280546114d390614213565b80156115205780601f106114f557610100808354040283529160200191611520565b820191906000526020600020905b81548152906001019060200180831161150357829003601f168201915b5050505050815260200160028201805461153990614213565b80601f016020809104026020016040519081016040528092919081815260200182805461156590614213565b80156115b25780601f10611587576101008083540402835291602001916115b2565b820191906000526020600020905b81548152906001019060200180831161159557829003601f168201915b505050505081526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900460ff1615151515815250508152602001906001019061146a565b50505050905090565b60606000600f60008481526020019081526020016000206040518060e00160405290816000820154815260200160018201805461164890614213565b80601f016020809104026020016040519081016040528092919081815260200182805461167490614213565b80156116c15780601f10611696576101008083540402835291602001916116c1565b820191906000526020600020905b8154815290600101906020018083116116a457829003601f168201915b505050505081526020016002820180546116da90614213565b80601f016020809104026020016040519081016040528092919081815260200182805461170690614213565b80156117535780601f1061172857610100808354040283529160200191611753565b820191906000526020600020905b81548152906001019060200180831161173657829003601f168201915b505050505081526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900460ff161515151581525050905060006117a68260600151612663565b905060006117b78360800151612663565b905060006117c88460a00151612663565b9050600061180e85602001516117dd89612663565b87604001518787876040516020016117fa969594939291906139a5565b6040516020818303038152906040526127c4565b90506000816040516020016118239190613a4a565b6040516020818303038152906040529050809650505050505050919050565b61184a612db9565b6000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611a2457600f60008281526020019081526020016000206040518060e0016040529081600082015481526020016001820180546118cf90614213565b80601f01602080910402602001604051908101604052809291908181526020018280546118fb90614213565b80156119485780601f1061191d57610100808354040283529160200191611948565b820191906000526020600020905b81548152906001019060200180831161192b57829003601f168201915b5050505050815260200160028201805461196190614213565b80601f016020809104026020016040519081016040528092919081815260200182805461198d90614213565b80156119da5780601f106119af576101008083540402835291602001916119da565b820191906000526020600020905b8154815290600101906020018083116119bd57829003601f168201915b505050505081526020016003820154815260200160048201548152602001600582015481526020016006820160009054906101000a900460ff161515151581525050915050611a32565b611a2c612db9565b80925050505b90565b6000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600f600083815260200190815260200160002090506000816003015411611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace90613d33565b60405180910390fd5b600060076002015411611b1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1690613c13565b60405180910390fd5b80600501546007600201541015611b40576000600760020181905550611b5f565b8060050154600760020154611b559190614117565b6007600201819055505b60076004015481600301541015611b7f5760008160030181905550611b9d565b6007600401548160030154611b949190614117565b81600301819055505b7f838ab28464562786a6c4ab2311964b82fa60bd9b14aa7e856af1f3f18d41a4146007600201548260030154604051611bd7929190613f2a565b60405180910390a15050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000611c83600c61295c565b9050611c8f338261296a565b6040518060e00160405280838152602001600d8481548110611cb457611cb361437d565b5b90600052602060002090600702016001018054611cd090614213565b80601f0160208091040260200160405190810160405280929190818152602001828054611cfc90614213565b8015611d495780601f10611d1e57610100808354040283529160200191611d49565b820191906000526020600020905b815481529060010190602001808311611d2c57829003601f168201915b50505050508152602001600d8481548110611d6757611d6661437d565b5b90600052602060002090600702016002018054611d8390614213565b80601f0160208091040260200160405190810160405280929190818152602001828054611daf90614213565b8015611dfc5780601f10611dd157610100808354040283529160200191611dfc565b820191906000526020600020905b815481529060010190602001808311611ddf57829003601f168201915b50505050508152602001600d8481548110611e1a57611e1961437d565b5b9060005260206000209060070201600301548152602001600d8481548110611e4557611e4461437d565b5b9060005260206000209060070201600301548152602001600d8481548110611e7057611e6f61437d565b5b906000526020600020906007020160050154815260200160001515815250600f6000838152602001908152602001600020600082015181600001556020820151816001019080519060200190611ec7929190612df8565b506040820151816002019080519060200190611ee4929190612df8565b50606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a81548160ff02191690831515021790555090505080601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f74600c611fb3565b7f4bc303fd457a97b4691b9af582ce71868a3d258638c8d4f8c60988a0f0bfb8cd338284604051611fa793929190613afc565b60405180910390a15050565b6001816000016000828254019250508190555050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661211a83610c47565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061216b82612033565b6121aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a190613c93565b60405180910390fd5b60006121b583610c47565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061222457508373ffffffffffffffffffffffffffffffffffffffff1661220c846107d0565b73ffffffffffffffffffffffffffffffffffffffff16145b8061223557506122348185611be3565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661225e82610c47565b73ffffffffffffffffffffffffffffffffffffffff16146122b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ab90613d93565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231b90613c53565b60405180910390fd5b61232f838383612988565b61233a6000826120a7565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461238a9190614117565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123e19190614036565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250090613c73565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516125fa9190613b55565b60405180910390a3505050565b61261284848461223e565b61261e8484848461298d565b61265d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265490613bf3565b60405180910390fd5b50505050565b606060008214156126ab576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506127bf565b600082905060005b600082146126dd5780806126c690614276565b915050600a826126d6919061408c565b91506126b3565b60008167ffffffffffffffff8111156126f9576126f86143ac565b5b6040519080825280601f01601f19166020018201604052801561272b5781602001600182028036833780820191505090505b5090505b600085146127b8576001826127449190614117565b9150600a8561275391906142bf565b603061275f9190614036565b60f81b8183815181106127755761277461437d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856127b1919061408c565b945061272f565b8093505050505b919050565b606060008251905060008114156127ed5760405180602001604052806000815250915050612957565b600060036002836127fe9190614036565b612808919061408c565b600461281491906140bd565b905060006020826128259190614036565b67ffffffffffffffff81111561283e5761283d6143ac565b5b6040519080825280601f01601f1916602001820160405280156128705781602001600182028036833780820191505090505b5090506000604051806060016040528060408152602001614b0d604091399050600181016020830160005b868110156129145760038101905062ffffff818a015116603f8160121c168401518060081b905060ff603f83600c1c1686015116810190508060081b905060ff603f8360061c1686015116810190508060081b905060ff603f831686015116810190508060e01b9050808452600484019350505061289b565b50600386066001811461292e576002811461293e57612949565b613d3d60f01b6002830352612949565b603d60f81b60018303525b508484525050819450505050505b919050565b600081600001549050919050565b612984828260405180602001604052806000815250612b24565b5050565b505050565b60006129ae8473ffffffffffffffffffffffffffffffffffffffff16612b7f565b15612b17578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026129d761209f565b8786866040518563ffffffff1660e01b81526004016129f99493929190613a87565b602060405180830381600087803b158015612a1357600080fd5b505af1925050508015612a4457506040513d601f19601f82011682018060405250810190612a4191906131a6565b60015b612ac7573d8060008114612a74576040519150601f19603f3d011682016040523d82523d6000602084013e612a79565b606091505b50600081511415612abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab690613bf3565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612b1c565b600190505b949350505050565b612b2e8383612b92565b612b3b600084848461298d565b612b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7190613bf3565b60405180910390fd5b505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf990613d53565b60405180910390fd5b612c0b81612033565b15612c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4290613c33565b60405180910390fd5b612c5760008383612988565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ca79190614036565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6040518060a0016040528060608152602001606081526020016000815260200160008152602001600081525090565b60405180608001604052806000815260200160008152602001600015158152602001600081525090565b6040518060e001604052806000815260200160608152602001606081526020016000815260200160008152602001600081526020016000151581525090565b828054612e0490614213565b90600052602060002090601f016020900481019282612e265760008555612e6d565b82601f10612e3f57805160ff1916838001178555612e6d565b82800160010185558215612e6d579182015b82811115612e6c578251825591602001919060010190612e51565b5b509050612e7a9190612e7e565b5090565b5b80821115612e97576000816000905550600101612e7f565b5090565b6000612eae612ea984613f78565b613f53565b905082815260208101848484011115612eca57612ec96143e0565b5b612ed58482856141d1565b509392505050565b600081359050612eec81614ab0565b92915050565b600081359050612f0181614ac7565b92915050565b600081519050612f1681614ac7565b92915050565b600081359050612f2b81614ade565b92915050565b600081519050612f4081614ade565b92915050565b600082601f830112612f5b57612f5a6143db565b5b8135612f6b848260208601612e9b565b91505092915050565b600081359050612f8381614af5565b92915050565b600060208284031215612f9f57612f9e6143ea565b5b6000612fad84828501612edd565b91505092915050565b60008060408385031215612fcd57612fcc6143ea565b5b6000612fdb85828601612edd565b9250506020612fec85828601612edd565b9150509250929050565b60008060006060848603121561300f5761300e6143ea565b5b600061301d86828701612edd565b935050602061302e86828701612edd565b925050604061303f86828701612f74565b9150509250925092565b60008060008060808587031215613063576130626143ea565b5b600061307187828801612edd565b945050602061308287828801612edd565b935050604061309387828801612f74565b925050606085013567ffffffffffffffff8111156130b4576130b36143e5565b5b6130c087828801612f46565b91505092959194509250565b600080604083850312156130e3576130e26143ea565b5b60006130f185828601612edd565b925050602061310285828601612ef2565b9150509250929050565b60008060408385031215613123576131226143ea565b5b600061313185828601612edd565b925050602061314285828601612f74565b9150509250929050565b600060208284031215613162576131616143ea565b5b600061317084828501612f07565b91505092915050565b60006020828403121561318f5761318e6143ea565b5b600061319d84828501612f1c565b91505092915050565b6000602082840312156131bc576131bb6143ea565b5b60006131ca84828501612f31565b91505092915050565b6000602082840312156131e9576131e86143ea565b5b60006131f784828501612f74565b91505092915050565b60008060408385031215613217576132166143ea565b5b600061322585828601612f74565b925050602061323685828601612f74565b9150509250929050565b600061324c83836137ec565b905092915050565b61325d8161414b565b82525050565b600061326e82613fb9565b6132788185613fe7565b93508360208202850161328a85613fa9565b8060005b858110156132c657848403895281516132a78582613240565b94506132b283613fda565b925060208a0199505060018101905061328e565b50829750879550505050505092915050565b6132e18161415d565b82525050565b6132f08161415d565b82525050565b600061330182613fc4565b61330b8185613ff8565b935061331b8185602086016141e0565b613324816143ef565b840191505092915050565b613338816141bf565b82525050565b600061334982613fcf565b6133538185614009565b93506133638185602086016141e0565b61336c816143ef565b840191505092915050565b600061338282613fcf565b61338c818561401a565b935061339c8185602086016141e0565b6133a5816143ef565b840191505092915050565b60006133bb82613fcf565b6133c5818561402b565b93506133d58185602086016141e0565b80840191505092915050565b60006133ee600b8361402b565b91506133f982614400565b600b82019050919050565b600061341160328361401a565b915061341c82614429565b604082019050919050565b600061343460288361401a565b915061343f82614478565b604082019050919050565b6000613457601c8361401a565b9150613462826144c7565b602082019050919050565b600061347a600e8361402b565b9150613485826144f0565b600e82019050919050565b600061349d60248361401a565b91506134a882614519565b604082019050919050565b60006134c060198361401a565b91506134cb82614568565b602082019050919050565b60006134e3602c8361401a565b91506134ee82614591565b604082019050919050565b600061350660168361401a565b9150613511826145e0565b602082019050919050565b600061352960388361401a565b915061353482614609565b604082019050919050565b600061354c602a8361401a565b915061355782614658565b604082019050919050565b600061356f60298361401a565b915061357a826146a7565b604082019050919050565b600061359260628361402b565b915061359d826146f6565b606282019050919050565b60006135b5602d8361401a565b91506135c082614791565b604082019050919050565b60006135d860048361402b565b91506135e3826147e0565b600482019050919050565b60006135fb60208361401a565b915061360682614809565b602082019050919050565b600061361e602c8361401a565b915061362982614832565b604082019050919050565b600061364160298361401a565b915061364c82614881565b604082019050919050565b6000613664600a8361402b565b915061366f826148d0565b600a82019050919050565b600061368760218361401a565b9150613692826148f9565b604082019050919050565b60006136aa601d8361402b565b91506136b582614948565b601d82019050919050565b60006136cd60318361401a565b91506136d882614971565b604082019050919050565b60006136f0603d8361402b565b91506136fb826149c0565b603d82019050919050565b6000613713602d8361402b565b915061371e82614a0f565b602d82019050919050565b600061373660128361401a565b915061374182614a5e565b602082019050919050565b600061375960148361401a565b915061376482614a87565b602082019050919050565b600060a083016000830151848203600086015261378c828261333e565b915050602083015184820360208601526137a6828261333e565b91505060408301516137bb6040860182613987565b5060608301516137ce6060860182613987565b5060808301516137e16080860182613987565b508091505092915050565b600060e0830160008301516138046000860182613987565b506020830151848203602086015261381c828261333e565b91505060408301518482036040860152613836828261333e565b915050606083015161384b6060860182613987565b50608083015161385e6080860182613987565b5060a083015161387160a0860182613987565b5060c083015161388460c08601826132d8565b508091505092915050565b600060e0830160008301516138a76000860182613987565b50602083015184820360208601526138bf828261333e565b915050604083015184820360408601526138d9828261333e565b91505060608301516138ee6060860182613987565b5060808301516139016080860182613987565b5060a083015161391460a0860182613987565b5060c083015161392760c08601826132d8565b508091505092915050565b6080820160008201516139486000850182613987565b50602082015161395b6020850182613987565b50604082015161396e60408501826132d8565b5060608201516139816060850182613987565b50505050565b613990816141b5565b82525050565b61399f816141b5565b82525050565b60006139b082613657565b91506139bc82896133b0565b91506139c7826133e1565b91506139d382886133b0565b91506139de82613585565b91506139ea82876133b0565b91506139f5826136e3565b9150613a0182866133b0565b9150613a0c8261346d565b9150613a1882856133b0565b9150613a2382613706565b9150613a2f82846133b0565b9150613a3a826135cb565b9150819050979650505050505050565b6000613a558261369d565b9150613a6182846133b0565b915081905092915050565b6000602082019050613a816000830184613254565b92915050565b6000608082019050613a9c6000830187613254565b613aa96020830186613254565b613ab66040830185613996565b8181036060830152613ac881846132f6565b905095945050505050565b6000604082019050613ae86000830185613254565b613af5602083018461332f565b9392505050565b6000606082019050613b116000830186613254565b613b1e6020830185613996565b613b2b6040830184613996565b949350505050565b60006020820190508181036000830152613b4d8184613263565b905092915050565b6000602082019050613b6a60008301846132e7565b92915050565b60006020820190508181036000830152613b8a8184613377565b905092915050565b600060a0820190508181036000830152613bac8188613377565b90508181036020830152613bc08187613377565b9050613bcf6040830186613996565b613bdc6060830185613996565b613be96080830184613996565b9695505050505050565b60006020820190508181036000830152613c0c81613404565b9050919050565b60006020820190508181036000830152613c2c81613427565b9050919050565b60006020820190508181036000830152613c4c8161344a565b9050919050565b60006020820190508181036000830152613c6c81613490565b9050919050565b60006020820190508181036000830152613c8c816134b3565b9050919050565b60006020820190508181036000830152613cac816134d6565b9050919050565b60006020820190508181036000830152613ccc816134f9565b9050919050565b60006020820190508181036000830152613cec8161351c565b9050919050565b60006020820190508181036000830152613d0c8161353f565b9050919050565b60006020820190508181036000830152613d2c81613562565b9050919050565b60006020820190508181036000830152613d4c816135a8565b9050919050565b60006020820190508181036000830152613d6c816135ee565b9050919050565b60006020820190508181036000830152613d8c81613611565b9050919050565b60006020820190508181036000830152613dac81613634565b9050919050565b60006020820190508181036000830152613dcc8161367a565b9050919050565b60006020820190508181036000830152613dec816136c0565b9050919050565b60006020820190508181036000830152613e0c81613729565b9050919050565b60006020820190508181036000830152613e2c8161374c565b9050919050565b60006020820190508181036000830152613e4d818461376f565b905092915050565b60006020820190508181036000830152613e6f818461388f565b905092915050565b6000608082019050613e8c6000830184613932565b92915050565b6000602082019050613ea76000830184613996565b92915050565b600060e082019050613ec2600083018a613996565b8181036020830152613ed48189613377565b90508181036040830152613ee88188613377565b9050613ef76060830187613996565b613f046080830186613996565b613f1160a0830185613996565b613f1e60c08301846132e7565b98975050505050505050565b6000604082019050613f3f6000830185613996565b613f4c6020830184613996565b9392505050565b6000613f5d613f6e565b9050613f698282614245565b919050565b6000604051905090565b600067ffffffffffffffff821115613f9357613f926143ac565b5b613f9c826143ef565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000614041826141b5565b915061404c836141b5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614081576140806142f0565b5b828201905092915050565b6000614097826141b5565b91506140a2836141b5565b9250826140b2576140b161431f565b5b828204905092915050565b60006140c8826141b5565b91506140d3836141b5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561410c5761410b6142f0565b5b828202905092915050565b6000614122826141b5565b915061412d836141b5565b9250828210156141405761413f6142f0565b5b828203905092915050565b600061415682614195565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006141ca826141b5565b9050919050565b82818337600083830152505050565b60005b838110156141fe5780820151818401526020810190506141e3565b8381111561420d576000848401525b50505050565b6000600282049050600182168061422b57607f821691505b6020821081141561423f5761423e61434e565b5b50919050565b61424e826143ef565b810181811067ffffffffffffffff8211171561426d5761426c6143ac565b5b80604052505050565b6000614281826141b5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156142b4576142b36142f0565b5b600182019050919050565b60006142ca826141b5565b91506142d5836141b5565b9250826142e5576142e461431f565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f202d2d204e465420233a20000000000000000000000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4572726f723a20626f7373206d757374206861766520485020746f206174746160008201527f636b20626f73732e000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f2c20226d61785f76616c7565223a000000000000000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4572726f723a20416c7265616479207374616b65642e00000000000000000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f222c20226465736372697074696f6e223a20225468697320697320616e204e4660008201527f542074686174206c6574732070656f706c6520706c617920696e20746865206760208201527f616d65204d657461766572736520536c6179657221222c2022696d616765223a60408201527f2022000000000000000000000000000000000000000000000000000000000000606082015250565b7f4572726f723a20636861726163746572206d757374206861766520485020746f60008201527f2061747461636b20626f73732e00000000000000000000000000000000000000602082015250565b7f7d205d7d00000000000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f7b226e616d65223a202200000000000000000000000000000000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f222c202261747472696275746573223a205b207b202274726169745f7479706560008201527f223a20224865616c746820506f696e7473222c202276616c7565223a20000000602082015250565b7f7d2c207b202274726169745f74797065223a202241747461636b2044616d616760008201527f65222c202276616c7565223a2000000000000000000000000000000000000000602082015250565b7f4572726f723a204e6f74207374616b65642e0000000000000000000000000000600082015250565b7f4d696e6572207374696c6c2070656e64696e672e000000000000000000000000600082015250565b614ab98161414b565b8114614ac457600080fd5b50565b614ad08161415d565b8114614adb57600080fd5b50565b614ae781614169565b8114614af257600080fd5b50565b614afe816141b5565b8114614b0957600080fd5b5056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220ddd7ea84d20a78cd070853c3709d40b763259a33c9505ee5022046d0a61bb71664736f6c63430008070033000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000aec2de051a1ecbc5d331b70f2e464996524503be0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000054d696e6572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a426c61636b736d69746800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000757617272696f72000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000005a68747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d535232747652564353634d5a66474b7665657a6d5662586b45723139665742657852664779437843534d6a712f4d696e65722e676966000000000000000000000000000000000000000000000000000000000000000000000000005f68747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d535232747652564353634d5a66474b7665657a6d5662586b45723139665742657852664779437843534d6a712f426c61636b536d6974682e67696600000000000000000000000000000000000000000000000000000000000000005c68747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d535232747652564353634d5a66474b7665657a6d5662586b45723139665742657852664779437843534d6a712f57617272696f722e67696600000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000943686172697a6172640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004268747470733a2f2f6173736574732e706f6b656d6f6e2e636f6d2f6173736574732f636d73322f696d672f706f6b656465782f66756c6c2f3030365f66342e706e67000000000000000000000000000000000000000000000000000000000000