Loading
[ { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "_feeRecipient", "type": "address" }, { "internalType": "address", "name": "_mintFeeToken", "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": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "MetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "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": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" } ], "name": "eWA", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "feeRecipient", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": [], "name": "maxMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxPerWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintFeeToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nftToCreators", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "publicRound", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "utype", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256[]", "name": "_tokenId", "type": "uint256[]" }, { "internalType": "bytes", "name": "sig", "type": "bytes" } ], "name": "safeMintMany", "outputs": [], "stateMutability": "payable", "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": "string", "name": "newBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_feeRecipient", "type": "address" } ], "name": "setFeeRecipient", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxMint", "type": "uint256" } ], "name": "setMaxMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxPerWallet", "type": "uint256" } ], "name": "setMaxMintWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mintFee", "type": "uint256" } ], "name": "setMintFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_publicRound", "type": "uint256" } ], "name": "setPublicRoundTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_signer", "type": "address" } ], "name": "setSigner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_mintFeeToken", "type": "address" } ], "name": "setmintFeeToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "signer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "totalFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "walletToFreeMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "walletToMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60806040526000600f556040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250601690816200004f9190620005c9565b503480156200005d57600080fd5b50604051620065e9380380620065e983398181016040528101906200008391906200071a565b6040518060400160405280600d81526020017f4745434b4f20494e55204e4654000000000000000000000000000000000000008152506040518060400160405280600681526020017f4745434e465400000000000000000000000000000000000000000000000000008152508160009081620001009190620005c9565b508060019081620001129190620005c9565b50505062000135620001296200028160201b60201c565b6200028960201b60201c565b6200014b836200028960201b620020a21760201c565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060238152602001620065c66023913960159081620001f79190620005c9565b5061271060128190555060056013819055506706f05b59d3b20000600f819055506365bd037060148190555073b796a7eb4f7bda9c4bb2a8237858d3d9da8636a7600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000776565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003d157607f821691505b602082108103620003e757620003e662000389565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000412565b6200045d868362000412565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004aa620004a46200049e8462000475565b6200047f565b62000475565b9050919050565b6000819050919050565b620004c68362000489565b620004de620004d582620004b1565b8484546200041f565b825550505050565b600090565b620004f5620004e6565b62000502818484620004bb565b505050565b5b818110156200052a576200051e600082620004eb565b60018101905062000508565b5050565b601f82111562000579576200054381620003ed565b6200054e8462000402565b810160208510156200055e578190505b620005766200056d8562000402565b83018262000507565b50505b505050565b600082821c905092915050565b60006200059e600019846008026200057e565b1980831691505092915050565b6000620005b983836200058b565b9150826002028217905092915050565b620005d4826200034f565b67ffffffffffffffff811115620005f057620005ef6200035a565b5b620005fc8254620003b8565b620006098282856200052e565b600060209050601f8311600181146200064157600084156200062c578287015190505b620006388582620005ab565b865550620006a8565b601f1984166200065186620003ed565b60005b828110156200067b5784890151825560018201915060208501945060208101905062000654565b868310156200069b578489015162000697601f8916826200058b565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006e282620006b5565b9050919050565b620006f481620006d5565b81146200070057600080fd5b50565b6000815190506200071481620006e9565b92915050565b600080600060608486031215620007365762000735620006b0565b5b6000620007468682870162000703565b9350506020620007598682870162000703565b92505060406200076c8682870162000703565b9150509250925092565b615e4080620007866000396000f3fe60806040526004361061025c5760003560e01c80636352211e11610144578063be82ca3d116100b6578063e74b981b1161007a578063e74b981b14610913578063e8a3d4851461093c578063e983aacf14610967578063e985e9c514610990578063eddd0d9c146109cd578063f2fde38b146109f65761025c565b8063be82ca3d14610808578063bfbb589514610845578063c4c690331461086e578063c515434614610899578063c87b56dd146108d65761025c565b80637501f741116101085780637501f741146107195780638da5cb5b1461074457806395d89b411461076f578063a22cb4651461079a578063a236b96c146107c3578063b88d4fde146107df5761025c565b80636352211e146106345780636c0360eb146106715780636c19e7831461069c57806370a08231146106c5578063715018a6146107025761025c565b80632d417c92116101dd57806346904840116101a157806346904840146105265780634f6ccce714610551578063547520fe1461058e57806355f804b3146105b757806359a7715a146105e0578063632228121461060b5761025c565b80632d417c92146104415780632eacab9f1461046a5780632f745c591461049557806342842e0e146104d2578063453c2310146104fb5761025c565b806318160ddd1161022457806318160ddd1461035a5780631df4ccfc14610385578063238ac933146103b057806323b872dd146103db57806329a7c71e146104045761025c565b806301ffc9a71461026157806306fdde031461029e578063081812fc146102c9578063095ea7b31461030657806313966db51461032f575b600080fd5b34801561026d57600080fd5b5061028860048036038101906102839190613ccc565b610a1f565b6040516102959190613d14565b60405180910390f35b3480156102aa57600080fd5b506102b3610a31565b6040516102c09190613dbf565b60405180910390f35b3480156102d557600080fd5b506102f060048036038101906102eb9190613e17565b610ac3565b6040516102fd9190613e85565b60405180910390f35b34801561031257600080fd5b5061032d60048036038101906103289190613ecc565b610b09565b005b34801561033b57600080fd5b50610344610c20565b6040516103519190613f1b565b60405180910390f35b34801561036657600080fd5b5061036f610c26565b60405161037c9190613f1b565b60405180910390f35b34801561039157600080fd5b5061039a610c33565b6040516103a79190613f1b565b60405180910390f35b3480156103bc57600080fd5b506103c5610c39565b6040516103d29190613e85565b60405180910390f35b3480156103e757600080fd5b5061040260048036038101906103fd9190613f36565b610c5f565b005b34801561041057600080fd5b5061042b60048036038101906104269190613f89565b610cbf565b6040516104389190613f1b565b60405180910390f35b34801561044d57600080fd5b5061046860048036038101906104639190613e17565b610cd7565b005b34801561047657600080fd5b5061047f610ce9565b60405161048c9190613f1b565b60405180910390f35b3480156104a157600080fd5b506104bc60048036038101906104b79190613ecc565b610cef565b6040516104c99190613f1b565b60405180910390f35b3480156104de57600080fd5b506104f960048036038101906104f49190613f36565b610d94565b005b34801561050757600080fd5b50610510610db4565b60405161051d9190613f1b565b60405180910390f35b34801561053257600080fd5b5061053b610dba565b6040516105489190613e85565b60405180910390f35b34801561055d57600080fd5b5061057860048036038101906105739190613e17565b610de0565b6040516105859190613f1b565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190613e17565b610e51565b005b3480156105c357600080fd5b506105de60048036038101906105d991906140eb565b610e63565b005b3480156105ec57600080fd5b506105f5610e7e565b6040516106029190613f1b565b60405180910390f35b34801561061757600080fd5b50610632600480360381019061062d9190613e17565b610e84565b005b34801561064057600080fd5b5061065b60048036038101906106569190613e17565b610e96565b6040516106689190613e85565b60405180910390f35b34801561067d57600080fd5b50610686610f1c565b6040516106939190613dbf565b60405180910390f35b3480156106a857600080fd5b506106c360048036038101906106be9190613f89565b610faa565b005b3480156106d157600080fd5b506106ec60048036038101906106e79190613f89565b611065565b6040516106f99190613f1b565b60405180910390f35b34801561070e57600080fd5b5061071761111c565b005b34801561072557600080fd5b5061072e611130565b60405161073b9190613f1b565b60405180910390f35b34801561075057600080fd5b50610759611136565b6040516107669190613e85565b60405180910390f35b34801561077b57600080fd5b50610784611160565b6040516107919190613dbf565b60405180910390f35b3480156107a657600080fd5b506107c160048036038101906107bc9190614160565b6111f2565b005b6107dd60048036038101906107d891906142c3565b611208565b005b3480156107eb57600080fd5b506108066004803603810190610801919061441a565b611cd5565b005b34801561081457600080fd5b5061082f600480360381019061082a9190613f89565b611d37565b60405161083c9190613f1b565b60405180910390f35b34801561085157600080fd5b5061086c60048036038101906108679190613f89565b611d4f565b005b34801561087a57600080fd5b50610883611d9b565b60405161089091906144fc565b60405180910390f35b3480156108a557600080fd5b506108c060048036038101906108bb9190613e17565b611dc1565b6040516108cd9190613e85565b60405180910390f35b3480156108e257600080fd5b506108fd60048036038101906108f89190613e17565b611df4565b60405161090a9190613dbf565b60405180910390f35b34801561091f57600080fd5b5061093a60048036038101906109359190613f89565b611e06565b005b34801561094857600080fd5b50610951611e52565b60405161095e9190613dbf565b60405180910390f35b34801561097357600080fd5b5061098e60048036038101906109899190614517565b611e72565b005b34801561099c57600080fd5b506109b760048036038101906109b29190614517565b611f79565b6040516109c49190613d14565b60405180910390f35b3480156109d957600080fd5b506109f460048036038101906109ef9190613e17565b61200d565b005b348015610a0257600080fd5b50610a1d6004803603810190610a189190613f89565b61201f565b005b6000610a2a82612168565b9050919050565b606060008054610a4090614586565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6c90614586565b8015610ab95780601f10610a8e57610100808354040283529160200191610ab9565b820191906000526020600020905b815481529060010190602001808311610a9c57829003601f168201915b5050505050905090565b6000610ace826121c9565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610b1482610e96565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7b90614629565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ba3612214565b73ffffffffffffffffffffffffffffffffffffffff161480610bd25750610bd181610bcc612214565b611f79565b5b610c11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c08906146bb565b60405180910390fd5b610c1b838361221c565b505050565b600f5481565b6000600980549050905090565b60105481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c70610c6a612214565b826122d5565b610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca69061474d565b60405180910390fd5b610cba83838361236a565b505050565b60196020528060005260406000206000915090505481565b610cdf612663565b8060148190555050565b60145481565b6000610cfa83611065565b8210610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d32906147df565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610daf83838360405180602001604052806000815250611cd5565b505050565b60135481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610dea610c26565b8210610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290614871565b60405180910390fd5b60098281548110610e3f57610e3e614891565b5b90600052602060002001549050919050565b610e59612663565b8060128190555050565b610e6b612663565b8060159081610e7a9190614a62565b5050565b60115481565b610e8c612663565b8060138190555050565b600080610ea2836126e1565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0a90614b80565b60405180910390fd5b80915050919050565b60158054610f2990614586565b80601f0160208091040260200160405190810160405280929190818152602001828054610f5590614586565b8015610fa25780601f10610f7757610100808354040283529160200191610fa2565b820191906000526020600020905b815481529060010190602001808311610f8557829003601f168201915b505050505081565b610fb2612663565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101890614bec565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cc90614c7e565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611124612663565b61112e60006120a2565b565b60125481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461116f90614586565b80601f016020809104026020016040519081016040528092919081815260200182805461119b90614586565b80156111e85780601f106111bd576101008083540402835291602001916111e8565b820191906000526020600020905b8154815290600101906020018083116111cb57829003601f168201915b5050505050905090565b6112046111fd612214565b838361271e565b5050565b6000600f54856112189190614ccd565b90508351851461125d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125490614d81565b60405180910390fd5b60135485601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112ab9190614da1565b11156112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e390614e21565b60405180910390fd5b601254856011546112fd9190614da1565b111561133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590614e8d565b60405180910390fd5b60008614158061134f575060145442105b1561146a57600061138933883060405160200161136e93929190614f16565b6040516020818303038152906040528051906020012061288a565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114128286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506128ba565b73ffffffffffffffffffffffffffffffffffffffff1614611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f90614f9f565b60405180910390fd5b505b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611762576000861480611524575060008611801561152357508585601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115219190614da1565b115b5b15611640578034101561156c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115639061500b565b60405180910390fd5b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516115b49061505c565b60006040518083038185875af1925050503d80600081146115f1576040519150601f19603f3d011682016040523d82523d6000602084013e6115f6565b606091505b505090508061163a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611631906150bd565b60405180910390fd5b506116cf565b84601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168b9190614da1565b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b84601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171a9190614da1565b601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ba2565b60008614806117c657506000861180156117c557508585601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c39190614da1565b115b5b15611a845780600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231611812612214565b6040518263ffffffff1660e01b815260040161182e9190613e85565b602060405180830381865afa15801561184b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186f91906150f2565b10156118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a79061516b565b60405180910390fd5b80600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e6118f7612214565b306040518363ffffffff1660e01b815260040161191592919061518b565b602060405180830381865afa158015611932573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195691906150f2565b1015611997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198e90615200565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd6119dd612214565b30846040518463ffffffff1660e01b81526004016119fd93929190615220565b6020604051808303816000875af1158015611a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a40919061526c565b611a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a76906152e5565b60405180910390fd5b611b13565b84601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611acf9190614da1565b601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b84601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b5e9190614da1565b601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8060106000828254611bb49190614da1565b925050819055508460116000828254611bcd9190614da1565b925050819055506000606060005b878160ff161015611cc957868160ff1681518110611bfc57611bfb614891565b5b60200260200101519250611c2c878260ff1681518110611c1f57611c1e614891565b5b602002602001015161292f565b6016604051602001611c3f9291906153c4565b6040516020818303038152906040529150611c5a8a846129fd565b611c648383612a1b565b896017600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080611cc1906153f5565b915050611bdb565b50505050505050505050565b611ce6611ce0612214565b836122d5565b611d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1c9061474d565b60405180910390fd5b611d3184848484612abf565b50505050565b60186020528060005260406000206000915090505481565b611d57612663565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60176020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060611dff82612b1b565b9050919050565b611e0e612663565b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060604051806060016040528060368152602001615dd560369139905090565b611e7a612663565b6000471115611ecb578073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611ec9573d6000803e3d6000fd5b505b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611f069190613e85565b602060405180830381865afa158015611f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4791906150f2565b9050611f7482828573ffffffffffffffffffffffffffffffffffffffff16612c2d9092919063ffffffff16565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612015612663565b80600f8190555050565b612027612663565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208d90615490565b60405180910390fd5b61209f816120a2565b50565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806121c257506121c182612cb3565b5b9050919050565b6121d281612d2d565b612211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220890614b80565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661228f83610e96565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806122e183610e96565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061232357506123228185611f79565b5b8061236157508373ffffffffffffffffffffffffffffffffffffffff1661234984610ac3565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661238a82610e96565b73ffffffffffffffffffffffffffffffffffffffff16146123e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d790615522565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361244f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612446906155b4565b60405180910390fd5b61245c8383836001612d6e565b8273ffffffffffffffffffffffffffffffffffffffff1661247c82610e96565b73ffffffffffffffffffffffffffffffffffffffff16146124d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c990615522565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461265e8383836001612d80565b505050565b61266b612214565b73ffffffffffffffffffffffffffffffffffffffff16612689611136565b73ffffffffffffffffffffffffffffffffffffffff16146126df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d690615620565b60405180910390fd5b565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361278c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127839061568c565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161287d9190613d14565b60405180910390a3505050565b60008160405160200161289d9190615723565b604051602081830303815290604052805190602001209050919050565b6000806000806128c985612d86565b809350819450829550505050600186848484604051600081526020016040526040516128f89493929190615767565b6020604051602081039080840390855afa15801561291a573d6000803e3d6000fd5b50505060206040510351935050505092915050565b60606000600161293e84612dc9565b01905060008167ffffffffffffffff81111561295d5761295c613fc0565b5b6040519080825280601f01601f19166020018201604052801561298f5781602001600182028036833780820191505090505b509050600082602001820190505b6001156129f2578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816129e6576129e56157ac565b5b0494506000850361299d575b819350505050919050565b612a17828260405180602001604052806000815250612f1c565b5050565b612a2482612d2d565b612a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5a9061584d565b60405180910390fd5b80600b60008481526020019081526020016000209081612a839190614a62565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce782604051612ab39190613f1b565b60405180910390a15050565b612aca84848461236a565b612ad684848484612f77565b612b15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0c906158df565b60405180910390fd5b50505050565b6060612b26826121c9565b6000600b60008481526020019081526020016000208054612b4690614586565b80601f0160208091040260200160405190810160405280929190818152602001828054612b7290614586565b8015612bbf5780601f10612b9457610100808354040283529160200191612bbf565b820191906000526020600020905b815481529060010190602001808311612ba257829003601f168201915b505050505090506000612bd06130fe565b90506000815103612be5578192505050612c28565b600082511115612c1a578082604051602001612c029291906158ff565b60405160208183030381529060405292505050612c28565b612c2384613190565b925050505b919050565b612cae8363a9059cbb60e01b8484604051602401612c4c929190615923565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506131f8565b505050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612d265750612d25826132c0565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16612d4f836126e1565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b612d7a848484846133a2565b50505050565b50505050565b60008060006041845114612d9957600080fd5b60008060006020870151925060408701519150606087015160001a90508083839550955095505050509193909250565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612e27577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612e1d57612e1c6157ac565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612e64576d04ee2d6d415b85acef81000000008381612e5a57612e596157ac565b5b0492506020810190505b662386f26fc100008310612e9357662386f26fc100008381612e8957612e886157ac565b5b0492506010810190505b6305f5e1008310612ebc576305f5e1008381612eb257612eb16157ac565b5b0492506008810190505b6127108310612ee1576127108381612ed757612ed66157ac565b5b0492506004810190505b60648310612f045760648381612efa57612ef96157ac565b5b0492506002810190505b600a8310612f13576001810190505b80915050919050565b612f268383613500565b612f336000848484612f77565b612f72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f69906158df565b60405180910390fd5b505050565b6000612f988473ffffffffffffffffffffffffffffffffffffffff1661371d565b156130f1578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612fc1612214565b8786866040518563ffffffff1660e01b8152600401612fe394939291906159a1565b6020604051808303816000875af192505050801561301f57506040513d601f19601f8201168201806040525081019061301c9190615a02565b60015b6130a1573d806000811461304f576040519150601f19603f3d011682016040523d82523d6000602084013e613054565b606091505b506000815103613099576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613090906158df565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506130f6565b600190505b949350505050565b60606015805461310d90614586565b80601f016020809104026020016040519081016040528092919081815260200182805461313990614586565b80156131865780601f1061315b57610100808354040283529160200191613186565b820191906000526020600020905b81548152906001019060200180831161316957829003601f168201915b5050505050905090565b606061319b826121c9565b60006131a56130fe565b905060008151116131c557604051806020016040528060008152506131f0565b806131cf8461292f565b6040516020016131e09291906158ff565b6040516020818303038152906040525b915050919050565b600061325a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166137409092919063ffffffff16565b905060008151148061327c57508080602001905181019061327b919061526c565b5b6132bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132b290615aa1565b60405180910390fd5b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061338b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061339b575061339a82613758565b5b9050919050565b6133ae848484846137c2565b60018111156133f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e990615b33565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361343957613434816137c8565b613478565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614613477576134768582613811565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036134ba576134b58161397e565b6134f9565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146134f8576134f78482613a4f565b5b5b5050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361356f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161356690615b9f565b60405180910390fd5b61357881612d2d565b156135b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135af90615c0b565b60405180910390fd5b6135c6600083836001612d6e565b6135cf81612d2d565b1561360f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161360690615c0b565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4613719600083836001612d80565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606061374f8484600085613ace565b90509392505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161381e84611065565b6138289190615c2b565b905060006008600084815260200190815260200160002054905081811461390d576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816008600083815260200190815260200160002081905550505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016009805490506139929190615c2b565b90506000600a60008481526020019081526020016000205490506000600983815481106139c2576139c1614891565b5b9060005260206000200154905080600983815481106139e4576139e3614891565b5b906000526020600020018190555081600a600083815260200190815260200160002081905550600a6000858152602001908152602001600020600090556009805480613a3357613a32615c5f565b5b6001900381819060005260206000200160009055905550505050565b6000613a5a83611065565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b606082471015613b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b0a90615d00565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051613b3c9190615d51565b60006040518083038185875af1925050503d8060008114613b79576040519150601f19603f3d011682016040523d82523d6000602084013e613b7e565b606091505b5091509150613b8f87838387613b9b565b92505050949350505050565b60608315613bfd576000835103613bf557613bb58561371d565b613bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613beb90615db4565b60405180910390fd5b5b829050613c08565b613c078383613c10565b5b949350505050565b600082511115613c235781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c579190613dbf565b60405180910390fd5b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613ca981613c74565b8114613cb457600080fd5b50565b600081359050613cc681613ca0565b92915050565b600060208284031215613ce257613ce1613c6a565b5b6000613cf084828501613cb7565b91505092915050565b60008115159050919050565b613d0e81613cf9565b82525050565b6000602082019050613d296000830184613d05565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d69578082015181840152602081019050613d4e565b60008484015250505050565b6000601f19601f8301169050919050565b6000613d9182613d2f565b613d9b8185613d3a565b9350613dab818560208601613d4b565b613db481613d75565b840191505092915050565b60006020820190508181036000830152613dd98184613d86565b905092915050565b6000819050919050565b613df481613de1565b8114613dff57600080fd5b50565b600081359050613e1181613deb565b92915050565b600060208284031215613e2d57613e2c613c6a565b5b6000613e3b84828501613e02565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613e6f82613e44565b9050919050565b613e7f81613e64565b82525050565b6000602082019050613e9a6000830184613e76565b92915050565b613ea981613e64565b8114613eb457600080fd5b50565b600081359050613ec681613ea0565b92915050565b60008060408385031215613ee357613ee2613c6a565b5b6000613ef185828601613eb7565b9250506020613f0285828601613e02565b9150509250929050565b613f1581613de1565b82525050565b6000602082019050613f306000830184613f0c565b92915050565b600080600060608486031215613f4f57613f4e613c6a565b5b6000613f5d86828701613eb7565b9350506020613f6e86828701613eb7565b9250506040613f7f86828701613e02565b9150509250925092565b600060208284031215613f9f57613f9e613c6a565b5b6000613fad84828501613eb7565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613ff882613d75565b810181811067ffffffffffffffff8211171561401757614016613fc0565b5b80604052505050565b600061402a613c60565b90506140368282613fef565b919050565b600067ffffffffffffffff82111561405657614055613fc0565b5b61405f82613d75565b9050602081019050919050565b82818337600083830152505050565b600061408e6140898461403b565b614020565b9050828152602081018484840111156140aa576140a9613fbb565b5b6140b584828561406c565b509392505050565b600082601f8301126140d2576140d1613fb6565b5b81356140e284826020860161407b565b91505092915050565b60006020828403121561410157614100613c6a565b5b600082013567ffffffffffffffff81111561411f5761411e613c6f565b5b61412b848285016140bd565b91505092915050565b61413d81613cf9565b811461414857600080fd5b50565b60008135905061415a81614134565b92915050565b6000806040838503121561417757614176613c6a565b5b600061418585828601613eb7565b92505060206141968582860161414b565b9150509250929050565b600067ffffffffffffffff8211156141bb576141ba613fc0565b5b602082029050602081019050919050565b600080fd5b60006141e46141df846141a0565b614020565b90508083825260208201905060208402830185811115614207576142066141cc565b5b835b81811015614230578061421c8882613e02565b845260208401935050602081019050614209565b5050509392505050565b600082601f83011261424f5761424e613fb6565b5b813561425f8482602086016141d1565b91505092915050565b600080fd5b60008083601f84011261428357614282613fb6565b5b8235905067ffffffffffffffff8111156142a05761429f614268565b5b6020830191508360018202830111156142bc576142bb6141cc565b5b9250929050565b60008060008060008060a087890312156142e0576142df613c6a565b5b60006142ee89828a01613eb7565b96505060206142ff89828a01613e02565b955050604061431089828a01613e02565b945050606087013567ffffffffffffffff81111561433157614330613c6f565b5b61433d89828a0161423a565b935050608087013567ffffffffffffffff81111561435e5761435d613c6f565b5b61436a89828a0161426d565b92509250509295509295509295565b600067ffffffffffffffff82111561439457614393613fc0565b5b61439d82613d75565b9050602081019050919050565b60006143bd6143b884614379565b614020565b9050828152602081018484840111156143d9576143d8613fbb565b5b6143e484828561406c565b509392505050565b600082601f83011261440157614400613fb6565b5b81356144118482602086016143aa565b91505092915050565b6000806000806080858703121561443457614433613c6a565b5b600061444287828801613eb7565b945050602061445387828801613eb7565b935050604061446487828801613e02565b925050606085013567ffffffffffffffff81111561448557614484613c6f565b5b614491878288016143ec565b91505092959194509250565b6000819050919050565b60006144c26144bd6144b884613e44565b61449d565b613e44565b9050919050565b60006144d4826144a7565b9050919050565b60006144e6826144c9565b9050919050565b6144f6816144db565b82525050565b600060208201905061451160008301846144ed565b92915050565b6000806040838503121561452e5761452d613c6a565b5b600061453c85828601613eb7565b925050602061454d85828601613eb7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061459e57607f821691505b6020821081036145b1576145b0614557565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000614613602183613d3a565b915061461e826145b7565b604082019050919050565b6000602082019050818103600083015261464281614606565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b60006146a5603d83613d3a565b91506146b082614649565b604082019050919050565b600060208201905081810360008301526146d481614698565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000614737602d83613d3a565b9150614742826146db565b604082019050919050565b600060208201905081810360008301526147668161472a565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b60006147c9602b83613d3a565b91506147d48261476d565b604082019050919050565b600060208201905081810360008301526147f8816147bc565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b600061485b602c83613d3a565b9150614866826147ff565b604082019050919050565b6000602082019050818103600083015261488a8161484e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026149227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826148e5565b61492c86836148e5565b95508019841693508086168417925050509392505050565b600061495f61495a61495584613de1565b61449d565b613de1565b9050919050565b6000819050919050565b61497983614944565b61498d61498582614966565b8484546148f2565b825550505050565b600090565b6149a2614995565b6149ad818484614970565b505050565b5b818110156149d1576149c660008261499a565b6001810190506149b3565b5050565b601f821115614a16576149e7816148c0565b6149f0846148d5565b810160208510156149ff578190505b614a13614a0b856148d5565b8301826149b2565b50505b505050565b600082821c905092915050565b6000614a3960001984600802614a1b565b1980831691505092915050565b6000614a528383614a28565b9150826002028217905092915050565b614a6b82613d2f565b67ffffffffffffffff811115614a8457614a83613fc0565b5b614a8e8254614586565b614a998282856149d5565b600060209050601f831160018114614acc5760008415614aba578287015190505b614ac48582614a46565b865550614b2c565b601f198416614ada866148c0565b60005b82811015614b0257848901518255600182019150602085019450602081019050614add565b86831015614b1f5784890151614b1b601f891682614a28565b8355505b6001600288020188555050505b505050505050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000614b6a601883613d3a565b9150614b7582614b34565b602082019050919050565b60006020820190508181036000830152614b9981614b5d565b9050919050565b7f5f7369676e6572206973207a65726f2061646472657373000000000000000000600082015250565b6000614bd6601783613d3a565b9150614be182614ba0565b602082019050919050565b60006020820190508181036000830152614c0581614bc9565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000614c68602983613d3a565b9150614c7382614c0c565b604082019050919050565b60006020820190508181036000830152614c9781614c5b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614cd882613de1565b9150614ce383613de1565b9250828202614cf181613de1565b91508282048414831517614d0857614d07614c9e565b5b5092915050565b7f416d6f756e7420616e6420616d6f756e74206f6620746f6b656e206964206e6f60008201527f74206d6174636800000000000000000000000000000000000000000000000000602082015250565b6000614d6b602783613d3a565b9150614d7682614d0f565b604082019050919050565b60006020820190508181036000830152614d9a81614d5e565b9050919050565b6000614dac82613de1565b9150614db783613de1565b9250828201905080821115614dcf57614dce614c9e565b5b92915050565b7f4d6178206d696e742077616c6c65740000000000000000000000000000000000600082015250565b6000614e0b600f83613d3a565b9150614e1682614dd5565b602082019050919050565b60006020820190508181036000830152614e3a81614dfe565b9050919050565b7f4d6178206d696e74000000000000000000000000000000000000000000000000600082015250565b6000614e77600883613d3a565b9150614e8282614e41565b602082019050919050565b60006020820190508181036000830152614ea681614e6a565b9050919050565b60008160601b9050919050565b6000614ec582614ead565b9050919050565b6000614ed782614eba565b9050919050565b614eef614eea82613e64565b614ecc565b82525050565b6000819050919050565b614f10614f0b82613de1565b614ef5565b82525050565b6000614f228286614ede565b601482019150614f328285614eff565b602082019150614f428284614ede565b601482019150819050949350505050565b7f77726f6e67207369676e61747572650000000000000000000000000000000000600082015250565b6000614f89600f83613d3a565b9150614f9482614f53565b602082019050919050565b60006020820190508181036000830152614fb881614f7c565b9050919050565b7f496e73756666696369656e740000000000000000000000000000000000000000600082015250565b6000614ff5600c83613d3a565b915061500082614fbf565b602082019050919050565b6000602082019050818103600083015261502481614fe8565b9050919050565b600081905092915050565b50565b600061504660008361502b565b915061505182615036565b600082019050919050565b600061506782615039565b9150819050919050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b60006150a7600f83613d3a565b91506150b282615071565b602082019050919050565b600060208201905081810360008301526150d68161509a565b9050919050565b6000815190506150ec81613deb565b92915050565b60006020828403121561510857615107613c6a565b5b6000615116848285016150dd565b91505092915050565b7f496e73756666696369656e742042616c616e6365000000000000000000000000600082015250565b6000615155601483613d3a565b91506151608261511f565b602082019050919050565b6000602082019050818103600083015261518481615148565b9050919050565b60006040820190506151a06000830185613e76565b6151ad6020830184613e76565b9392505050565b7f496e73756666696369656e7420416c6c6f77616e636500000000000000000000600082015250565b60006151ea601683613d3a565b91506151f5826151b4565b602082019050919050565b60006020820190508181036000830152615219816151dd565b9050919050565b60006060820190506152356000830186613e76565b6152426020830185613e76565b61524f6040830184613f0c565b949350505050565b60008151905061526681614134565b92915050565b60006020828403121561528257615281613c6a565b5b600061529084828501615257565b91505092915050565b7f7472616e73666572206661696c65640000000000000000000000000000000000600082015250565b60006152cf600f83613d3a565b91506152da82615299565b602082019050919050565b600060208201905081810360008301526152fe816152c2565b9050919050565b600081905092915050565b600061531b82613d2f565b6153258185615305565b9350615335818560208601613d4b565b80840191505092915050565b6000815461534e81614586565b6153588186615305565b945060018216600081146153735760018114615388576153bb565b60ff19831686528115158202860193506153bb565b615391856148c0565b60005b838110156153b357815481890152600182019150602081019050615394565b838801955050505b50505092915050565b60006153d08285615310565b91506153dc8284615341565b91508190509392505050565b600060ff82169050919050565b6000615400826153e8565b915060ff820361541357615412614c9e565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061547a602683613d3a565b91506154858261541e565b604082019050919050565b600060208201905081810360008301526154a98161546d565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b600061550c602583613d3a565b9150615517826154b0565b604082019050919050565b6000602082019050818103600083015261553b816154ff565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061559e602483613d3a565b91506155a982615542565b604082019050919050565b600060208201905081810360008301526155cd81615591565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061560a602083613d3a565b9150615615826155d4565b602082019050919050565b60006020820190508181036000830152615639816155fd565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000615676601983613d3a565b915061568182615640565b602082019050919050565b600060208201905081810360008301526156a581615669565b9050919050565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b60006156e2601c83615305565b91506156ed826156ac565b601c82019050919050565b6000819050919050565b6000819050919050565b61571d615718826156f8565b615702565b82525050565b600061572e826156d5565b915061573a828461570c565b60208201915081905092915050565b615752816156f8565b82525050565b615761816153e8565b82525050565b600060808201905061577c6000830187615749565b6157896020830186615758565b6157966040830185615749565b6157a36060830184615749565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000615837602e83613d3a565b9150615842826157db565b604082019050919050565b600060208201905081810360008301526158668161582a565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006158c9603283613d3a565b91506158d48261586d565b604082019050919050565b600060208201905081810360008301526158f8816158bc565b9050919050565b600061590b8285615310565b91506159178284615310565b91508190509392505050565b60006040820190506159386000830185613e76565b6159456020830184613f0c565b9392505050565b600081519050919050565b600082825260208201905092915050565b60006159738261594c565b61597d8185615957565b935061598d818560208601613d4b565b61599681613d75565b840191505092915050565b60006080820190506159b66000830187613e76565b6159c36020830186613e76565b6159d06040830185613f0c565b81810360608301526159e28184615968565b905095945050505050565b6000815190506159fc81613ca0565b92915050565b600060208284031215615a1857615a17613c6a565b5b6000615a26848285016159ed565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000615a8b602a83613d3a565b9150615a9682615a2f565b604082019050919050565b60006020820190508181036000830152615aba81615a7e565b9050919050565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b6000615b1d603583613d3a565b9150615b2882615ac1565b604082019050919050565b60006020820190508181036000830152615b4c81615b10565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000615b89602083613d3a565b9150615b9482615b53565b602082019050919050565b60006020820190508181036000830152615bb881615b7c565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615bf5601c83613d3a565b9150615c0082615bbf565b602082019050919050565b60006020820190508181036000830152615c2481615be8565b9050919050565b6000615c3682613de1565b9150615c4183613de1565b9250828203905081811115615c5957615c58614c9e565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000615cea602683613d3a565b9150615cf582615c8e565b604082019050919050565b60006020820190508181036000830152615d1981615cdd565b9050919050565b6000615d2b8261594c565b615d35818561502b565b9350615d45818560208601613d4b565b80840191505092915050565b6000615d5d8284615d20565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000615d9e601d83613d3a565b9150615da982615d68565b602082019050919050565b60006020820190508181036000830152615dcd81615d91565b905091905056fe68747470733a2f2f6e66742d6a736f6e2e6765636b6f696e752e7669702f6a736f6e2f6e6674636f6c6c656374696f6e732e6a736f6ea2646970667358221220d9aca7cab11ba6cd29f8d148ef96aad694a4fce1ccc49674207d5ac132f8210464736f6c6343000812003368747470733a2f2f6e66742d6a736f6e2e6765636b6f696e752e7669702f6a736f6e2f000000000000000000000000d6974f8298a9b49158fca39986c1b4d75995b77f0000000000000000000000003b85c4670a3bb329dc31397dc808c5ddc75805870000000000000000000000000000000000000000000000000000000000000000