608060405234801562000010575f80fd5b5060405162001ac838038062001ac883398181016040528101906200003691906200028c565b6040518060400160405280600a81526020017f5465737420546f6b656e000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f54543100000000000000000000000000000000000000000000000000000000008152508160039081620000b3919062000517565b508060049081620000c5919062000517565b505050620000da3382620000e160201b60201c565b506200070c565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001499062000659565b60405180910390fd5b620001655f83836200024660201b60201c565b8060025f828254620001789190620006a6565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002279190620006f1565b60405180910390a3620002425f83836200024b60201b60201c565b5050565b505050565b505050565b5f80fd5b5f819050919050565b620002688162000254565b811462000273575f80fd5b50565b5f8151905062000286816200025d565b92915050565b5f60208284031215620002a457620002a362000250565b5b5f620002b38482850162000276565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200033857607f821691505b6020821081036200034e576200034d620002f3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000375565b620003be868362000375565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620003ff620003f9620003f38462000254565b620003d6565b62000254565b9050919050565b5f819050919050565b6200041a83620003df565b62000432620004298262000406565b84845462000381565b825550505050565b5f90565b620004486200043a565b620004558184846200040f565b505050565b5b818110156200047c57620004705f826200043e565b6001810190506200045b565b5050565b601f821115620004cb57620004958162000354565b620004a08462000366565b81016020851015620004b0578190505b620004c8620004bf8562000366565b8301826200045a565b50505b505050565b5f82821c905092915050565b5f620004ed5f1984600802620004d0565b1980831691505092915050565b5f620005078383620004dc565b9150826002028217905092915050565b6200052282620002bc565b67ffffffffffffffff8111156200053e576200053d620002c6565b5b6200054a825462000320565b6200055782828562000480565b5f60209050601f8311600181146200058d575f841562000578578287015190505b620005848582620004fa565b865550620005f3565b601f1984166200059d8662000354565b5f5b82811015620005c6578489015182556001820191506020850194506020810190506200059f565b86831015620005e65784890151620005e2601f891682620004dc565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000641601f83620005fb565b91506200064e826200060b565b602082019050919050565b5f6020820190508181035f830152620006728162000633565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620006b28262000254565b9150620006bf8362000254565b9250828201905080821115620006da57620006d962000679565b5b92915050565b620006eb8162000254565b82525050565b5f602082019050620007065f830184620006e0565b92915050565b6113ae806200071a5f395ff3fe608060405234801561000f575f80fd5b50600436106100b2575f3560e01c806340c10f191161006f57806340c10f19146101a057806370a08231146101bc57806395d89b41146101ec578063a457c2d71461020a578063a9059cbb1461023a578063dd62ed3e1461026a576100b2565b806306fdde03146100b6578063095ea7b3146100d457806318160ddd1461010457806323b872dd14610122578063313ce567146101525780633950935114610170575b5f80fd5b6100be61029a565b6040516100cb9190610c60565b60405180910390f35b6100ee60048036038101906100e99190610d11565b61032a565b6040516100fb9190610d69565b60405180910390f35b61010c61034c565b6040516101199190610d91565b60405180910390f35b61013c60048036038101906101379190610daa565b610355565b6040516101499190610d69565b60405180910390f35b61015a610383565b6040516101679190610e15565b60405180910390f35b61018a60048036038101906101859190610d11565b61038b565b6040516101979190610d69565b60405180910390f35b6101ba60048036038101906101b59190610d11565b6103c1565b005b6101d660048036038101906101d19190610e2e565b6103cf565b6040516101e39190610d91565b60405180910390f35b6101f4610414565b6040516102019190610c60565b60405180910390f35b610224600480360381019061021f9190610d11565b6104a4565b6040516102319190610d69565b60405180910390f35b610254600480360381019061024f9190610d11565b610519565b6040516102619190610d69565b60405180910390f35b610284600480360381019061027f9190610e59565b61053b565b6040516102919190610d91565b60405180910390f35b6060600380546102a990610ec4565b80601f01602080910402602001604051908101604052809291908181526020018280546102d590610ec4565b80156103205780601f106102f757610100808354040283529160200191610320565b820191905f5260205f20905b81548152906001019060200180831161030357829003601f168201915b5050505050905090565b5f806103346105bd565b90506103418185856105c4565b600191505092915050565b5f600254905090565b5f8061035f6105bd565b905061036c858285610787565b610377858585610812565b60019150509392505050565b5f6012905090565b5f806103956105bd565b90506103b68185856103a7858961053b565b6103b19190610f21565b6105c4565b600191505092915050565b6103cb8282610a7e565b5050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606004805461042390610ec4565b80601f016020809104026020016040519081016040528092919081815260200182805461044f90610ec4565b801561049a5780601f106104715761010080835404028352916020019161049a565b820191905f5260205f20905b81548152906001019060200180831161047d57829003601f168201915b5050505050905090565b5f806104ae6105bd565b90505f6104bb828661053b565b905083811015610500576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f790610fc4565b60405180910390fd5b61050d82868684036105c4565b60019250505092915050565b5f806105236105bd565b9050610530818585610812565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062990611052565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610697906110e0565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161077a9190610d91565b60405180910390a3505050565b5f610792848461053b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461080c57818110156107fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f590611148565b60405180910390fd5b61080b84848484036105c4565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610880576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610877906111d6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e590611264565b60405180910390fd5b6108f9838383610bcc565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561097c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610973906112f2565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a659190610d91565b60405180910390a3610a78848484610bd1565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae39061135a565b60405180910390fd5b610af75f8383610bcc565b8060025f828254610b089190610f21565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bb59190610d91565b60405180910390a3610bc85f8383610bd1565b5050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610c0d578082015181840152602081019050610bf2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610c3282610bd6565b610c3c8185610be0565b9350610c4c818560208601610bf0565b610c5581610c18565b840191505092915050565b5f6020820190508181035f830152610c788184610c28565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610cad82610c84565b9050919050565b610cbd81610ca3565b8114610cc7575f80fd5b50565b5f81359050610cd881610cb4565b92915050565b5f819050919050565b610cf081610cde565b8114610cfa575f80fd5b50565b5f81359050610d0b81610ce7565b92915050565b5f8060408385031215610d2757610d26610c80565b5b5f610d3485828601610cca565b9250506020610d4585828601610cfd565b9150509250929050565b5f8115159050919050565b610d6381610d4f565b82525050565b5f602082019050610d7c5f830184610d5a565b92915050565b610d8b81610cde565b82525050565b5f602082019050610da45f830184610d82565b92915050565b5f805f60608486031215610dc157610dc0610c80565b5b5f610dce86828701610cca565b9350506020610ddf86828701610cca565b9250506040610df086828701610cfd565b9150509250925092565b5f60ff82169050919050565b610e0f81610dfa565b82525050565b5f602082019050610e285f830184610e06565b92915050565b5f60208284031215610e4357610e42610c80565b5b5f610e5084828501610cca565b91505092915050565b5f8060408385031215610e6f57610e6e610c80565b5b5f610e7c85828601610cca565b9250506020610e8d85828601610cca565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610edb57607f821691505b602082108103610eee57610eed610e97565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f2b82610cde565b9150610f3683610cde565b9250828201905080821115610f4e57610f4d610ef4565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f610fae602583610be0565b9150610fb982610f54565b604082019050919050565b5f6020820190508181035f830152610fdb81610fa2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61103c602483610be0565b915061104782610fe2565b604082019050919050565b5f6020820190508181035f83015261106981611030565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6110ca602283610be0565b91506110d582611070565b604082019050919050565b5f6020820190508181035f8301526110f7816110be565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611132601d83610be0565b915061113d826110fe565b602082019050919050565b5f6020820190508181035f83015261115f81611126565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6111c0602583610be0565b91506111cb82611166565b604082019050919050565b5f6020820190508181035f8301526111ed816111b4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61124e602383610be0565b9150611259826111f4565b604082019050919050565b5f6020820190508181035f83015261127b81611242565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6112dc602683610be0565b91506112e782611282565b604082019050919050565b5f6020820190508181035f830152611309816112d0565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f611344601f83610be0565b915061134f82611310565b602082019050919050565b5f6020820190508181035f83015261137181611338565b905091905056fea264697066735822122019ed443e7f983669147e1d3a9ff66669a5ccfef74cd180d23cc33ac2d8db70be64736f6c634300081800330000000000000000000000000000000000000000000583b8b02231b86c680000