Contract details
Token
0xb8D5a869845763f967e9B4bcE6fA6dFBc5b723B9
Token name
WallWarriosNFT
(
WALL)
Creator
Balance
0 LOOP($0)
Transactions
Gas used
143,032
Last balance update
Contract Source Code Verified (Exact Match)
Contract name
Nft_WALL
Compiler version
v0.8.13+commit.abaa5c0e
Optimization enabled
false
Optimization runs
200
Verified at
Feb 16 2023 23:56:20 PM (+00:00 UTC)
Contract source code (solidity)
View UML diagram
Loading data, please wait...
Contract ABI
[
{
"inputs": [],
"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": true,
"internalType": "address",
"name": "mintBy",
"type": "address"
}
],
"name": "Mint",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "newPrice",
"type": "uint256"
}
],
"name": "NewPrice_Native",
"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": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newMintPrice",
"type": "uint256"
}
],
"name": "changeMintPrice_Native",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_newOwner",
"type": "address"
}
],
"name": "changeOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"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": "_amt",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "mintPrice_Native",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "ownerMint",
"outputs": [],
"stateMutability": "nonpayable",
"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": "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": "index",
"type": "uint256"
}
],
"name": "tokenByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "tokenOfOwnerByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdrawNativeCurrency",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
Contract creation code
0x6080604052681b1ae4d6e2ef500000600b553480156200001e57600080fd5b506040518060400160405280600e81526020017f57616c6c57617272696f734e46540000000000000000000000000000000000008152506040518060400160405280600481526020017f57414c4c000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000a392919062000b43565b508060019080519060200190620000bc92919062000b43565b50505033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060005b600181101562000154576000620001246200015b60201b6200090c1760201c565b90506200013d33826200016860201b620011cb1760201c565b5080806200014b9062000c2c565b91505062000103565b50620011da565b6000600880549050905090565b6200018a8282604051806020016040528060008152506200018e60201b60201c565b5050565b620001a08383620001fc60201b60201c565b620001b56000848484620003e160201b60201c565b620001f7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001ee9062000d00565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200026e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002659062000d72565b60405180910390fd5b6200027f816200058a60201b60201c565b15620002c2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002b99062000de4565b60405180910390fd5b620002d660008383620005f660201b60201c565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000328919062000e06565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006200040f8473ffffffffffffffffffffffffffffffffffffffff166200073b60201b620011e91760201c565b156200057d578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02620004416200074e60201b60201c565b8786866040518563ffffffff1660e01b815260040162000465949392919062000f5d565b6020604051808303816000875af1925050508015620004a457506040513d601f19601f82011682018060405250810190620004a1919062001013565b60015b6200052c573d8060008114620004d7576040519150601f19603f3d011682016040523d82523d6000602084013e620004dc565b606091505b50600081510362000524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200051b9062000d00565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505062000582565b600190505b949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6200060e8383836200075660201b620011fc1760201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200065a5762000654816200075b60201b60201c565b620006a2565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614620006a157620006a08382620007a460201b60201c565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006ee57620006e8816200092160201b60201c565b62000736565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146200073557620007348282620009fd60201b60201c565b5b5b505050565b600080823b905060008111915050919050565b600033905090565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001620007be8462000a8960201b62000b601760201c565b620007ca919062001045565b9050600060076000848152602001908152602001600020549050818114620008b0576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905062000937919062001045565b90506000600960008481526020019081526020016000205490506000600883815481106200096a576200096962001080565b5b9060005260206000200154905080600883815481106200098f576200098e62001080565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480620009e157620009e0620010af565b5b6001900381819060005260206000200160009055905550505050565b600062000a158362000a8960201b62000b601760201c565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000afc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000af39062001154565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b82805462000b5190620011a5565b90600052602060002090601f01602090048101928262000b75576000855562000bc1565b82601f1062000b9057805160ff191683800117855562000bc1565b8280016001018555821562000bc1579182015b8281111562000bc057825182559160200191906001019062000ba3565b5b50905062000bd0919062000bd4565b5090565b5b8082111562000bef57600081600090555060010162000bd5565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600062000c398262000c22565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000c6e5762000c6d62000bf3565b5b600182019050919050565b600082825260208201905092915050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600062000ce860328362000c79565b915062000cf58262000c8a565b604082019050919050565b6000602082019050818103600083015262000d1b8162000cd9565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600062000d5a60208362000c79565b915062000d678262000d22565b602082019050919050565b6000602082019050818103600083015262000d8d8162000d4b565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600062000dcc601c8362000c79565b915062000dd98262000d94565b602082019050919050565b6000602082019050818103600083015262000dff8162000dbd565b9050919050565b600062000e138262000c22565b915062000e208362000c22565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000e585762000e5762000bf3565b5b828201905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e908262000e63565b9050919050565b62000ea28162000e83565b82525050565b62000eb38162000c22565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562000ef557808201518184015260208101905062000ed8565b8381111562000f05576000848401525b50505050565b6000601f19601f8301169050919050565b600062000f298262000eb9565b62000f35818562000ec4565b935062000f4781856020860162000ed5565b62000f528162000f0b565b840191505092915050565b600060808201905062000f74600083018762000e97565b62000f83602083018662000e97565b62000f92604083018562000ea8565b818103606083015262000fa6818462000f1c565b905095945050505050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b62000fed8162000fb6565b811462000ff957600080fd5b50565b6000815190506200100d8162000fe2565b92915050565b6000602082840312156200102c576200102b62000fb1565b5b60006200103c8482850162000ffc565b91505092915050565b6000620010528262000c22565b91506200105f8362000c22565b92508282101562001075576200107462000bf3565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b60006200113c602a8362000c79565b91506200114982620010de565b604082019050919050565b600060208201905081810360008301526200116f816200112d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620011be57607f821691505b602082108103620011d457620011d362001176565b5b50919050565b6139dd80620011ea6000396000f3fe6080604052600436106101355760003560e01c806370a08231116100ab578063a6f9dae11161006f578063a6f9dae11461043d578063b88d4fde14610466578063c87b56dd1461048f578063d0241258146104cc578063e985e9c5146104f5578063f19e75d41461053257610135565b806370a0823114610365578063919441fb146103a257806395d89b41146103cd578063a0712d68146103f8578063a22cb4651461041457610135565b806318160ddd116100fd57806318160ddd1461023157806323b872dd1461025c5780632f745c591461028557806342842e0e146102c25780634f6ccce7146102eb5780636352211e1461032857610135565b806301ffc9a71461013a57806306fdde0314610177578063081812fc146101a2578063095ea7b3146101df57806315f5254e14610208575b600080fd5b34801561014657600080fd5b50610161600480360381019061015c919061232e565b61055b565b60405161016e9190612376565b60405180910390f35b34801561018357600080fd5b5061018c6105d5565b604051610199919061242a565b60405180910390f35b3480156101ae57600080fd5b506101c960048036038101906101c49190612482565b610667565b6040516101d691906124f0565b60405180910390f35b3480156101eb57600080fd5b5061020660048036038101906102019190612537565b6106ec565b005b34801561021457600080fd5b5061022f600480360381019061022a9190612482565b610803565b005b34801561023d57600080fd5b5061024661090c565b6040516102539190612586565b60405180910390f35b34801561026857600080fd5b50610283600480360381019061027e91906125a1565b610919565b005b34801561029157600080fd5b506102ac60048036038101906102a79190612537565b610979565b6040516102b99190612586565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e491906125a1565b610a1e565b005b3480156102f757600080fd5b50610312600480360381019061030d9190612482565b610a3e565b60405161031f9190612586565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612482565b610aaf565b60405161035c91906124f0565b60405180910390f35b34801561037157600080fd5b5061038c600480360381019061038791906125f4565b610b60565b6040516103999190612586565b60405180910390f35b3480156103ae57600080fd5b506103b7610c17565b6040516103c49190612586565b60405180910390f35b3480156103d957600080fd5b506103e2610c1d565b6040516103ef919061242a565b60405180910390f35b610412600480360381019061040d9190612482565b610caf565b005b34801561042057600080fd5b5061043b6004803603810190610436919061264d565b610e40565b005b34801561044957600080fd5b50610464600480360381019061045f91906125f4565b610e56565b005b34801561047257600080fd5b5061048d600480360381019061048891906127c2565b610ef4565b005b34801561049b57600080fd5b506104b660048036038101906104b19190612482565b610f56565b6040516104c3919061242a565b60405180910390f35b3480156104d857600080fd5b506104f360048036038101906104ee9190612482565b611009565b005b34801561050157600080fd5b5061051c60048036038101906105179190612845565b6110a4565b6040516105299190612376565b60405180910390f35b34801561053e57600080fd5b5061055960048036038101906105549190612482565b611138565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105ce57506105cd82611201565b5b9050919050565b6060600080546105e4906128b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610610906128b4565b801561065d5780601f106106325761010080835404028352916020019161065d565b820191906000526020600020905b81548152906001019060200180831161064057829003601f168201915b5050505050905090565b6000610672826112e3565b6106b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a890612957565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106f782610aaf565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e906129e9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661078661134f565b73ffffffffffffffffffffffffffffffffffffffff1614806107b557506107b4816107af61134f565b6110a4565b5b6107f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107eb90612a7b565b60405180910390fd5b6107fe8383611357565b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461085d57600080fd5b804710156108a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089790612b7f565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610908573d6000803e3d6000fd5b5050565b6000600880549050905090565b61092a61092461134f565b82611410565b610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096090612c11565b60405180910390fd5b6109748383836114ee565b505050565b600061098483610b60565b82106109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc90612ca3565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610a3983838360405180602001604052806000815250610ef4565b505050565b6000610a4861090c565b8210610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8090612d35565b60405180910390fd5b60088281548110610a9d57610a9c612d55565b5b90600052602060002001549050919050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4e90612df6565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc790612e88565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b5481565b606060018054610c2c906128b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c58906128b4565b8015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b5050505050905090565b6103e881610cbb61090c565b610cc59190612ed7565b1115610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd90612f79565b60405180910390fd5b600a81610d1233610b60565b610d1c9190612ed7565b1115610d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d549061300b565b60405180910390fd5b6000600a610d6b919061315e565b600b54610d7891906131d8565b81610d839190613209565b3414610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbb906132af565b60405180910390fd5b60005b81811015610df9576000610dd961090c565b9050610de533826111cb565b508080610df1906132cf565b915050610dc7565b503373ffffffffffffffffffffffffffffffffffffffff167f3c3284d117c92d0b1699230960384e794dcba184cc48ff114fe4fed20c9b056560405160405180910390a250565b610e52610e4b61134f565b8383611749565b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610eb057600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f05610eff61134f565b83611410565b610f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3b90612c11565b60405180910390fd5b610f50848484846118b5565b50505050565b6060610f61826112e3565b610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790613389565b60405180910390fd5b6000610faa611911565b90506000815111610fca5760405180602001604052806000815250611001565b80610fe0600185610fdb9190612ed7565b611931565b604051602001610ff1929190613431565b6040516020818303038152906040525b915050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461106357600080fd5b80600b819055507f4da2c0b5e9b63a76246ed4da0d524ffb536458c09c730bca609c1323964c3fd7816040516110999190612586565b60405180910390a150565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461119257600080fd5b60005b818110156111c75760006111a761090c565b90506111b333826111cb565b5080806111bf906132cf565b915050611195565b5050565b6111e5828260405180602001604052806000815250611a91565b5050565b600080823b905060008111915050919050565b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806112cc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806112dc57506112db82611aec565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166113ca83610aaf565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061141b826112e3565b61145a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611451906134d2565b60405180910390fd5b600061146583610aaf565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114d457508373ffffffffffffffffffffffffffffffffffffffff166114bc84610667565b73ffffffffffffffffffffffffffffffffffffffff16145b806114e557506114e481856110a4565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661150e82610aaf565b73ffffffffffffffffffffffffffffffffffffffff1614611564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155b90613564565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ca906135f6565b60405180910390fd5b6115de838383611b56565b6115e9600082611357565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116399190613616565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116909190612ed7565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae90613696565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118a89190612376565b60405180910390a3505050565b6118c08484846114ee565b6118cc84848484611c68565b61190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290613728565b60405180910390fd5b50505050565b606060405180608001604052806044815260200161396460449139905090565b606060008203611978576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611a8c565b600082905060005b600082146119aa578080611993906132cf565b915050600a826119a391906131d8565b9150611980565b60008167ffffffffffffffff8111156119c6576119c5612697565b5b6040519080825280601f01601f1916602001820160405280156119f85781602001600182028036833780820191505090505b5090505b60008514611a8557600182611a119190613616565b9150600a85611a209190613748565b6030611a2c9190612ed7565b60f81b818381518110611a4257611a41612d55565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611a7e91906131d8565b94506119fc565b8093505050505b919050565b611a9b8383611def565b611aa86000848484611c68565b611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613728565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611b618383836111fc565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ba357611b9e81611fbc565b611be2565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611be157611be08382612005565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c2457611c1f81612172565b611c63565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c6257611c618282612243565b5b5b505050565b6000611c898473ffffffffffffffffffffffffffffffffffffffff166111e9565b15611de2578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611cb261134f565b8786866040518563ffffffff1660e01b8152600401611cd494939291906137ce565b6020604051808303816000875af1925050508015611d1057506040513d601f19601f82011682018060405250810190611d0d919061382f565b60015b611d92573d8060008114611d40576040519150601f19603f3d011682016040523d82523d6000602084013e611d45565b606091505b506000815103611d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8190613728565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611de7565b600190505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e55906138a8565b60405180910390fd5b611e67816112e3565b15611ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9e90613914565b60405180910390fd5b611eb360008383611b56565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f039190612ed7565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161201284610b60565b61201c9190613616565b9050600060076000848152602001908152602001600020549050818114612101576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506121869190613616565b90506000600960008481526020019081526020016000205490506000600883815481106121b6576121b5612d55565b5b9060005260206000200154905080600883815481106121d8576121d7612d55565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061222757612226613934565b5b6001900381819060005260206000200160009055905550505050565b600061224e83610b60565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61230b816122d6565b811461231657600080fd5b50565b60008135905061232881612302565b92915050565b600060208284031215612344576123436122cc565b5b600061235284828501612319565b91505092915050565b60008115159050919050565b6123708161235b565b82525050565b600060208201905061238b6000830184612367565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123cb5780820151818401526020810190506123b0565b838111156123da576000848401525b50505050565b6000601f19601f8301169050919050565b60006123fc82612391565b612406818561239c565b93506124168185602086016123ad565b61241f816123e0565b840191505092915050565b6000602082019050818103600083015261244481846123f1565b905092915050565b6000819050919050565b61245f8161244c565b811461246a57600080fd5b50565b60008135905061247c81612456565b92915050565b600060208284031215612498576124976122cc565b5b60006124a68482850161246d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124da826124af565b9050919050565b6124ea816124cf565b82525050565b600060208201905061250560008301846124e1565b92915050565b612514816124cf565b811461251f57600080fd5b50565b6000813590506125318161250b565b92915050565b6000806040838503121561254e5761254d6122cc565b5b600061255c85828601612522565b925050602061256d8582860161246d565b9150509250929050565b6125808161244c565b82525050565b600060208201905061259b6000830184612577565b92915050565b6000806000606084860312156125ba576125b96122cc565b5b60006125c886828701612522565b93505060206125d986828701612522565b92505060406125ea8682870161246d565b9150509250925092565b60006020828403121561260a576126096122cc565b5b600061261884828501612522565b91505092915050565b61262a8161235b565b811461263557600080fd5b50565b60008135905061264781612621565b92915050565b60008060408385031215612664576126636122cc565b5b600061267285828601612522565b925050602061268385828601612638565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6126cf826123e0565b810181811067ffffffffffffffff821117156126ee576126ed612697565b5b80604052505050565b60006127016122c2565b905061270d82826126c6565b919050565b600067ffffffffffffffff82111561272d5761272c612697565b5b612736826123e0565b9050602081019050919050565b82818337600083830152505050565b600061276561276084612712565b6126f7565b90508281526020810184848401111561278157612780612692565b5b61278c848285612743565b509392505050565b600082601f8301126127a9576127a861268d565b5b81356127b9848260208601612752565b91505092915050565b600080600080608085870312156127dc576127db6122cc565b5b60006127ea87828801612522565b94505060206127fb87828801612522565b935050604061280c8782880161246d565b925050606085013567ffffffffffffffff81111561282d5761282c6122d1565b5b61283987828801612794565b91505092959194509250565b6000806040838503121561285c5761285b6122cc565b5b600061286a85828601612522565b925050602061287b85828601612522565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806128cc57607f821691505b6020821081036128df576128de612885565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000612941602c8361239c565b915061294c826128e5565b604082019050919050565b6000602082019050818103600083015261297081612934565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006129d360218361239c565b91506129de82612977565b604082019050919050565b60006020820190508181036000830152612a02816129c6565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000612a6560388361239c565b9150612a7082612a09565b604082019050919050565b60006020820190508181036000830152612a9481612a58565b9050919050565b7f496e73756666696369656e7420616d6f756e74206f66206e617469766520637560008201527f7272656e637920696e207468697320636f6e747261637420746f207472616e7360208201527f666572206f75742e20506c6561736520636f6e746163742074686520636f6e7460408201527f72616374206f776e657220746f20746f7020757020746865206e61746976652060608201527f63757272656e63792e0000000000000000000000000000000000000000000000608082015250565b6000612b6960898361239c565b9150612b7482612a9b565b60a082019050919050565b60006020820190508181036000830152612b9881612b5c565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000612bfb60318361239c565b9150612c0682612b9f565b604082019050919050565b60006020820190508181036000830152612c2a81612bee565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000612c8d602b8361239c565b9150612c9882612c31565b604082019050919050565b60006020820190508181036000830152612cbc81612c80565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000612d1f602c8361239c565b9150612d2a82612cc3565b604082019050919050565b60006020820190508181036000830152612d4e81612d12565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000612de060298361239c565b9150612deb82612d84565b604082019050919050565b60006020820190508181036000830152612e0f81612dd3565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000612e72602a8361239c565b9150612e7d82612e16565b604082019050919050565b60006020820190508181036000830152612ea181612e65565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee28261244c565b9150612eed8361244c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f2257612f21612ea8565b5b828201905092915050565b7f457863656564656420546f74616c20537570706c790000000000000000000000600082015250565b6000612f6360158361239c565b9150612f6e82612f2d565b602082019050919050565b60006020820190508181036000830152612f9281612f56565b9050919050565b7f457863656564656420496e646976696475616c20537570706c7920436f6e737460008201527f7261696e74730000000000000000000000000000000000000000000000000000602082015250565b6000612ff560268361239c565b915061300082612f99565b604082019050919050565b6000602082019050818103600083015261302481612fe8565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156130825780860481111561305e5761305d612ea8565b5b600185161561306d5780820291505b808102905061307b8561302b565b9450613042565b94509492505050565b60008261309b5760019050613157565b816130a95760009050613157565b81600181146130bf57600281146130c9576130f8565b6001915050613157565b60ff8411156130db576130da612ea8565b5b8360020a9150848211156130f2576130f1612ea8565b5b50613157565b5060208310610133831016604e8410600b841016171561312d5782820a90508381111561312857613127612ea8565b5b613157565b61313a8484846001613038565b9250905081840481111561315157613150612ea8565b5b81810290505b9392505050565b60006131698261244c565b91506131748361244c565b92506131a17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461308b565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131e38261244c565b91506131ee8361244c565b9250826131fe576131fd6131a9565b5b828204905092915050565b60006132148261244c565b915061321f8361244c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561325857613257612ea8565b5b828202905092915050565b7f57726f6e67204665650000000000000000000000000000000000000000000000600082015250565b600061329960098361239c565b91506132a482613263565b602082019050919050565b600060208201905081810360008301526132c88161328c565b9050919050565b60006132da8261244c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361330c5761330b612ea8565b5b600182019050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613373602f8361239c565b915061337e82613317565b604082019050919050565b600060208201905081810360008301526133a281613366565b9050919050565b600081905092915050565b60006133bf82612391565b6133c981856133a9565b93506133d98185602086016123ad565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b600061341b6005836133a9565b9150613426826133e5565b600582019050919050565b600061343d82856133b4565b915061344982846133b4565b91506134548261340e565b91508190509392505050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b60006134bc602c8361239c565b91506134c782613460565b604082019050919050565b600060208201905081810360008301526134eb816134af565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b600061354e60298361239c565b9150613559826134f2565b604082019050919050565b6000602082019050818103600083015261357d81613541565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135e060248361239c565b91506135eb82613584565b604082019050919050565b6000602082019050818103600083015261360f816135d3565b9050919050565b60006136218261244c565b915061362c8361244c565b92508282101561363f5761363e612ea8565b5b828203905092915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b600061368060198361239c565b915061368b8261364a565b602082019050919050565b600060208201905081810360008301526136af81613673565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061371260328361239c565b915061371d826136b6565b604082019050919050565b6000602082019050818103600083015261374181613705565b9050919050565b60006137538261244c565b915061375e8361244c565b92508261376e5761376d6131a9565b5b828206905092915050565b600081519050919050565b600082825260208201905092915050565b60006137a082613779565b6137aa8185613784565b93506137ba8185602086016123ad565b6137c3816123e0565b840191505092915050565b60006080820190506137e360008301876124e1565b6137f060208301866124e1565b6137fd6040830185612577565b818103606083015261380f8184613795565b905095945050505050565b60008151905061382981612302565b92915050565b600060208284031215613845576138446122cc565b5b60006138538482850161381a565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061389260208361239c565b915061389d8261385c565b602082019050919050565b600060208201905081810360008301526138c181613885565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006138fe601c8361239c565b9150613909826138c8565b602082019050919050565b6000602082019050818103600083015261392d816138f1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe68747470733a2f2f697066732e696f2f697066732f516d526d6750546942664773354d7751744d6f48467a44325239473770727468553167676b6339326d454b6235382fa26469706673582212205b9aa8a4eec391d877c02fed07b1c4c08e1ba066f1075d093cb7bb2d71f99d1a64736f6c634300080d0033
Deployed ByteCode
0x6080604052600436106101355760003560e01c806370a08231116100ab578063a6f9dae11161006f578063a6f9dae11461043d578063b88d4fde14610466578063c87b56dd1461048f578063d0241258146104cc578063e985e9c5146104f5578063f19e75d41461053257610135565b806370a0823114610365578063919441fb146103a257806395d89b41146103cd578063a0712d68146103f8578063a22cb4651461041457610135565b806318160ddd116100fd57806318160ddd1461023157806323b872dd1461025c5780632f745c591461028557806342842e0e146102c25780634f6ccce7146102eb5780636352211e1461032857610135565b806301ffc9a71461013a57806306fdde0314610177578063081812fc146101a2578063095ea7b3146101df57806315f5254e14610208575b600080fd5b34801561014657600080fd5b50610161600480360381019061015c919061232e565b61055b565b60405161016e9190612376565b60405180910390f35b34801561018357600080fd5b5061018c6105d5565b604051610199919061242a565b60405180910390f35b3480156101ae57600080fd5b506101c960048036038101906101c49190612482565b610667565b6040516101d691906124f0565b60405180910390f35b3480156101eb57600080fd5b5061020660048036038101906102019190612537565b6106ec565b005b34801561021457600080fd5b5061022f600480360381019061022a9190612482565b610803565b005b34801561023d57600080fd5b5061024661090c565b6040516102539190612586565b60405180910390f35b34801561026857600080fd5b50610283600480360381019061027e91906125a1565b610919565b005b34801561029157600080fd5b506102ac60048036038101906102a79190612537565b610979565b6040516102b99190612586565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e491906125a1565b610a1e565b005b3480156102f757600080fd5b50610312600480360381019061030d9190612482565b610a3e565b60405161031f9190612586565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612482565b610aaf565b60405161035c91906124f0565b60405180910390f35b34801561037157600080fd5b5061038c600480360381019061038791906125f4565b610b60565b6040516103999190612586565b60405180910390f35b3480156103ae57600080fd5b506103b7610c17565b6040516103c49190612586565b60405180910390f35b3480156103d957600080fd5b506103e2610c1d565b6040516103ef919061242a565b60405180910390f35b610412600480360381019061040d9190612482565b610caf565b005b34801561042057600080fd5b5061043b6004803603810190610436919061264d565b610e40565b005b34801561044957600080fd5b50610464600480360381019061045f91906125f4565b610e56565b005b34801561047257600080fd5b5061048d600480360381019061048891906127c2565b610ef4565b005b34801561049b57600080fd5b506104b660048036038101906104b19190612482565b610f56565b6040516104c3919061242a565b60405180910390f35b3480156104d857600080fd5b506104f360048036038101906104ee9190612482565b611009565b005b34801561050157600080fd5b5061051c60048036038101906105179190612845565b6110a4565b6040516105299190612376565b60405180910390f35b34801561053e57600080fd5b5061055960048036038101906105549190612482565b611138565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105ce57506105cd82611201565b5b9050919050565b6060600080546105e4906128b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610610906128b4565b801561065d5780601f106106325761010080835404028352916020019161065d565b820191906000526020600020905b81548152906001019060200180831161064057829003601f168201915b5050505050905090565b6000610672826112e3565b6106b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a890612957565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106f782610aaf565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e906129e9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661078661134f565b73ffffffffffffffffffffffffffffffffffffffff1614806107b557506107b4816107af61134f565b6110a4565b5b6107f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107eb90612a7b565b60405180910390fd5b6107fe8383611357565b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461085d57600080fd5b804710156108a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089790612b7f565b60405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610908573d6000803e3d6000fd5b5050565b6000600880549050905090565b61092a61092461134f565b82611410565b610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096090612c11565b60405180910390fd5b6109748383836114ee565b505050565b600061098483610b60565b82106109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc90612ca3565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610a3983838360405180602001604052806000815250610ef4565b505050565b6000610a4861090c565b8210610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8090612d35565b60405180910390fd5b60088281548110610a9d57610a9c612d55565b5b90600052602060002001549050919050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4e90612df6565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc790612e88565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b5481565b606060018054610c2c906128b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c58906128b4565b8015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b5050505050905090565b6103e881610cbb61090c565b610cc59190612ed7565b1115610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd90612f79565b60405180910390fd5b600a81610d1233610b60565b610d1c9190612ed7565b1115610d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d549061300b565b60405180910390fd5b6000600a610d6b919061315e565b600b54610d7891906131d8565b81610d839190613209565b3414610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbb906132af565b60405180910390fd5b60005b81811015610df9576000610dd961090c565b9050610de533826111cb565b508080610df1906132cf565b915050610dc7565b503373ffffffffffffffffffffffffffffffffffffffff167f3c3284d117c92d0b1699230960384e794dcba184cc48ff114fe4fed20c9b056560405160405180910390a250565b610e52610e4b61134f565b8383611749565b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610eb057600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f05610eff61134f565b83611410565b610f44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3b90612c11565b60405180910390fd5b610f50848484846118b5565b50505050565b6060610f61826112e3565b610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790613389565b60405180910390fd5b6000610faa611911565b90506000815111610fca5760405180602001604052806000815250611001565b80610fe0600185610fdb9190612ed7565b611931565b604051602001610ff1929190613431565b6040516020818303038152906040525b915050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461106357600080fd5b80600b819055507f4da2c0b5e9b63a76246ed4da0d524ffb536458c09c730bca609c1323964c3fd7816040516110999190612586565b60405180910390a150565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461119257600080fd5b60005b818110156111c75760006111a761090c565b90506111b333826111cb565b5080806111bf906132cf565b915050611195565b5050565b6111e5828260405180602001604052806000815250611a91565b5050565b600080823b905060008111915050919050565b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806112cc57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806112dc57506112db82611aec565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166113ca83610aaf565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061141b826112e3565b61145a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611451906134d2565b60405180910390fd5b600061146583610aaf565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114d457508373ffffffffffffffffffffffffffffffffffffffff166114bc84610667565b73ffffffffffffffffffffffffffffffffffffffff16145b806114e557506114e481856110a4565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661150e82610aaf565b73ffffffffffffffffffffffffffffffffffffffff1614611564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155b90613564565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ca906135f6565b60405180910390fd5b6115de838383611b56565b6115e9600082611357565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116399190613616565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116909190612ed7565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae90613696565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118a89190612376565b60405180910390a3505050565b6118c08484846114ee565b6118cc84848484611c68565b61190b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190290613728565b60405180910390fd5b50505050565b606060405180608001604052806044815260200161396460449139905090565b606060008203611978576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611a8c565b600082905060005b600082146119aa578080611993906132cf565b915050600a826119a391906131d8565b9150611980565b60008167ffffffffffffffff8111156119c6576119c5612697565b5b6040519080825280601f01601f1916602001820160405280156119f85781602001600182028036833780820191505090505b5090505b60008514611a8557600182611a119190613616565b9150600a85611a209190613748565b6030611a2c9190612ed7565b60f81b818381518110611a4257611a41612d55565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611a7e91906131d8565b94506119fc565b8093505050505b919050565b611a9b8383611def565b611aa86000848484611c68565b611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613728565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611b618383836111fc565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ba357611b9e81611fbc565b611be2565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611be157611be08382612005565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c2457611c1f81612172565b611c63565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c6257611c618282612243565b5b5b505050565b6000611c898473ffffffffffffffffffffffffffffffffffffffff166111e9565b15611de2578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611cb261134f565b8786866040518563ffffffff1660e01b8152600401611cd494939291906137ce565b6020604051808303816000875af1925050508015611d1057506040513d601f19601f82011682018060405250810190611d0d919061382f565b60015b611d92573d8060008114611d40576040519150601f19603f3d011682016040523d82523d6000602084013e611d45565b606091505b506000815103611d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8190613728565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611de7565b600190505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e55906138a8565b60405180910390fd5b611e67816112e3565b15611ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9e90613914565b60405180910390fd5b611eb360008383611b56565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f039190612ed7565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161201284610b60565b61201c9190613616565b9050600060076000848152602001908152602001600020549050818114612101576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506121869190613616565b90506000600960008481526020019081526020016000205490506000600883815481106121b6576121b5612d55565b5b9060005260206000200154905080600883815481106121d8576121d7612d55565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061222757612226613934565b5b6001900381819060005260206000200160009055905550505050565b600061224e83610b60565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61230b816122d6565b811461231657600080fd5b50565b60008135905061232881612302565b92915050565b600060208284031215612344576123436122cc565b5b600061235284828501612319565b91505092915050565b60008115159050919050565b6123708161235b565b82525050565b600060208201905061238b6000830184612367565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123cb5780820151818401526020810190506123b0565b838111156123da576000848401525b50505050565b6000601f19601f8301169050919050565b60006123fc82612391565b612406818561239c565b93506124168185602086016123ad565b61241f816123e0565b840191505092915050565b6000602082019050818103600083015261244481846123f1565b905092915050565b6000819050919050565b61245f8161244c565b811461246a57600080fd5b50565b60008135905061247c81612456565b92915050565b600060208284031215612498576124976122cc565b5b60006124a68482850161246d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124da826124af565b9050919050565b6124ea816124cf565b82525050565b600060208201905061250560008301846124e1565b92915050565b612514816124cf565b811461251f57600080fd5b50565b6000813590506125318161250b565b92915050565b6000806040838503121561254e5761254d6122cc565b5b600061255c85828601612522565b925050602061256d8582860161246d565b9150509250929050565b6125808161244c565b82525050565b600060208201905061259b6000830184612577565b92915050565b6000806000606084860312156125ba576125b96122cc565b5b60006125c886828701612522565b93505060206125d986828701612522565b92505060406125ea8682870161246d565b9150509250925092565b60006020828403121561260a576126096122cc565b5b600061261884828501612522565b91505092915050565b61262a8161235b565b811461263557600080fd5b50565b60008135905061264781612621565b92915050565b60008060408385031215612664576126636122cc565b5b600061267285828601612522565b925050602061268385828601612638565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6126cf826123e0565b810181811067ffffffffffffffff821117156126ee576126ed612697565b5b80604052505050565b60006127016122c2565b905061270d82826126c6565b919050565b600067ffffffffffffffff82111561272d5761272c612697565b5b612736826123e0565b9050602081019050919050565b82818337600083830152505050565b600061276561276084612712565b6126f7565b90508281526020810184848401111561278157612780612692565b5b61278c848285612743565b509392505050565b600082601f8301126127a9576127a861268d565b5b81356127b9848260208601612752565b91505092915050565b600080600080608085870312156127dc576127db6122cc565b5b60006127ea87828801612522565b94505060206127fb87828801612522565b935050604061280c8782880161246d565b925050606085013567ffffffffffffffff81111561282d5761282c6122d1565b5b61283987828801612794565b91505092959194509250565b6000806040838503121561285c5761285b6122cc565b5b600061286a85828601612522565b925050602061287b85828601612522565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806128cc57607f821691505b6020821081036128df576128de612885565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000612941602c8361239c565b915061294c826128e5565b604082019050919050565b6000602082019050818103600083015261297081612934565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006129d360218361239c565b91506129de82612977565b604082019050919050565b60006020820190508181036000830152612a02816129c6565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000612a6560388361239c565b9150612a7082612a09565b604082019050919050565b60006020820190508181036000830152612a9481612a58565b9050919050565b7f496e73756666696369656e7420616d6f756e74206f66206e617469766520637560008201527f7272656e637920696e207468697320636f6e747261637420746f207472616e7360208201527f666572206f75742e20506c6561736520636f6e746163742074686520636f6e7460408201527f72616374206f776e657220746f20746f7020757020746865206e61746976652060608201527f63757272656e63792e0000000000000000000000000000000000000000000000608082015250565b6000612b6960898361239c565b9150612b7482612a9b565b60a082019050919050565b60006020820190508181036000830152612b9881612b5c565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000612bfb60318361239c565b9150612c0682612b9f565b604082019050919050565b60006020820190508181036000830152612c2a81612bee565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000612c8d602b8361239c565b9150612c9882612c31565b604082019050919050565b60006020820190508181036000830152612cbc81612c80565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000612d1f602c8361239c565b9150612d2a82612cc3565b604082019050919050565b60006020820190508181036000830152612d4e81612d12565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000612de060298361239c565b9150612deb82612d84565b604082019050919050565b60006020820190508181036000830152612e0f81612dd3565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000612e72602a8361239c565b9150612e7d82612e16565b604082019050919050565b60006020820190508181036000830152612ea181612e65565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee28261244c565b9150612eed8361244c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f2257612f21612ea8565b5b828201905092915050565b7f457863656564656420546f74616c20537570706c790000000000000000000000600082015250565b6000612f6360158361239c565b9150612f6e82612f2d565b602082019050919050565b60006020820190508181036000830152612f9281612f56565b9050919050565b7f457863656564656420496e646976696475616c20537570706c7920436f6e737460008201527f7261696e74730000000000000000000000000000000000000000000000000000602082015250565b6000612ff560268361239c565b915061300082612f99565b604082019050919050565b6000602082019050818103600083015261302481612fe8565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156130825780860481111561305e5761305d612ea8565b5b600185161561306d5780820291505b808102905061307b8561302b565b9450613042565b94509492505050565b60008261309b5760019050613157565b816130a95760009050613157565b81600181146130bf57600281146130c9576130f8565b6001915050613157565b60ff8411156130db576130da612ea8565b5b8360020a9150848211156130f2576130f1612ea8565b5b50613157565b5060208310610133831016604e8410600b841016171561312d5782820a90508381111561312857613127612ea8565b5b613157565b61313a8484846001613038565b9250905081840481111561315157613150612ea8565b5b81810290505b9392505050565b60006131698261244c565b91506131748361244c565b92506131a17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461308b565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131e38261244c565b91506131ee8361244c565b9250826131fe576131fd6131a9565b5b828204905092915050565b60006132148261244c565b915061321f8361244c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561325857613257612ea8565b5b828202905092915050565b7f57726f6e67204665650000000000000000000000000000000000000000000000600082015250565b600061329960098361239c565b91506132a482613263565b602082019050919050565b600060208201905081810360008301526132c88161328c565b9050919050565b60006132da8261244c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361330c5761330b612ea8565b5b600182019050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613373602f8361239c565b915061337e82613317565b604082019050919050565b600060208201905081810360008301526133a281613366565b9050919050565b600081905092915050565b60006133bf82612391565b6133c981856133a9565b93506133d98185602086016123ad565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b600061341b6005836133a9565b9150613426826133e5565b600582019050919050565b600061343d82856133b4565b915061344982846133b4565b91506134548261340e565b91508190509392505050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b60006134bc602c8361239c565b91506134c782613460565b604082019050919050565b600060208201905081810360008301526134eb816134af565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b600061354e60298361239c565b9150613559826134f2565b604082019050919050565b6000602082019050818103600083015261357d81613541565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135e060248361239c565b91506135eb82613584565b604082019050919050565b6000602082019050818103600083015261360f816135d3565b9050919050565b60006136218261244c565b915061362c8361244c565b92508282101561363f5761363e612ea8565b5b828203905092915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b600061368060198361239c565b915061368b8261364a565b602082019050919050565b600060208201905081810360008301526136af81613673565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061371260328361239c565b915061371d826136b6565b604082019050919050565b6000602082019050818103600083015261374181613705565b9050919050565b60006137538261244c565b915061375e8361244c565b92508261376e5761376d6131a9565b5b828206905092915050565b600081519050919050565b600082825260208201905092915050565b60006137a082613779565b6137aa8185613784565b93506137ba8185602086016123ad565b6137c3816123e0565b840191505092915050565b60006080820190506137e360008301876124e1565b6137f060208301866124e1565b6137fd6040830185612577565b818103606083015261380f8184613795565b905095945050505050565b60008151905061382981612302565b92915050565b600060208284031215613845576138446122cc565b5b60006138538482850161381a565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061389260208361239c565b915061389d8261385c565b602082019050919050565b600060208201905081810360008301526138c181613885565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006138fe601c8361239c565b9150613909826138c8565b602082019050919050565b6000602082019050818103600083015261392d816138f1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe68747470733a2f2f697066732e696f2f697066732f516d526d6750546942664773354d7751744d6f48467a44325239473770727468553167676b6339326d454b6235382fa26469706673582212205b9aa8a4eec391d877c02fed07b1c4c08e1ba066f1075d093cb7bb2d71f99d1a64736f6c634300080d0033