0x608060405234801562000010575f80fd5b506040516200182c3803806200182c83398181016040528101906200003691906200030c565b6040518060400160405280601081526020017f5768697465204269746520546f6b656e000000000000000000000000000000008152506040518060400160405280600381526020017f575442000000000000000000000000000000000000000000000000000000000081525060968260049081620000b59190620005a0565b508160059081620000c79190620005a0565b503360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200011a81336200012460201b60201c565b5050505062000795565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620001b6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001ad90620006e2565b60405180910390fd5b620001c95f8284620002a260201b60201c565b8160025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200021791906200072f565b92505081905550815f808282546200023091906200072f565b925050819055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200029691906200077a565b60405180910390a35050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620002d682620002ab565b9050919050565b620002e881620002ca565b8114620002f3575f80fd5b50565b5f815190506200030681620002dd565b92915050565b5f60208284031215620003245762000323620002a7565b5b5f6200033384828501620002f6565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620003b857607f821691505b602082108103620003ce57620003cd62000373565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003f5565b6200043e8683620003f5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000488620004826200047c8462000456565b6200045f565b62000456565b9050919050565b5f819050919050565b620004a38362000468565b620004bb620004b2826200048f565b84845462000401565b825550505050565b5f90565b620004d1620004c3565b620004de81848462000498565b505050565b5b818110156200050557620004f95f82620004c7565b600181019050620004e4565b5050565b601f82111562000554576200051e81620003d4565b6200052984620003e6565b8101602085101562000539578190505b620005516200054885620003e6565b830182620004e3565b50505b505050565b5f82821c905092915050565b5f620005765f198460080262000559565b1980831691505092915050565b5f62000590838362000565565b9150826002028217905092915050565b620005ab826200033c565b67ffffffffffffffff811115620005c757620005c662000346565b5b620005d38254620003a0565b620005e082828562000509565b5f60209050601f83116001811462000616575f841562000601578287015190505b6200060d858262000583565b8655506200067c565b601f1984166200062686620003d4565b5f5b828110156200064f5784890151825560018201915060208501945060208101905062000628565b868310156200066f57848901516200066b601f89168262000565565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f6e6f7420616e206f776e657221000000000000000000000000000000000000005f82015250565b5f620006ca600d8362000684565b9150620006d78262000694565b602082019050919050565b5f6020820190508181035f830152620006fb81620006bc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200073b8262000456565b9150620007488362000456565b925082820190508082111562000763576200076262000702565b5b92915050565b620007748162000456565b82525050565b5f6020820190506200078f5f83018462000769565b92915050565b61108980620007a35f395ff3fe608060405234801561000f575f80fd5b50600436106100a7575f3560e01c806370a082311161006f57806370a082311461013d57806394bf804d1461016d57806395d89b41146101895780639dc29fac146101a7578063a9059cbb146101c3578063dd62ed3e146101df576100a7565b806306fdde03146100ab578063095ea7b3146100c957806318160ddd146100e557806323b872dd14610103578063313ce5671461011f575b5f80fd5b6100b361020f565b6040516100c09190610c1d565b60405180910390f35b6100e360048036038101906100de9190610cce565b61029f565b005b6100ed6102ae565b6040516100fa9190610d1b565b60405180910390f35b61011d60048036038101906101189190610d34565b6102b6565b005b610127610569565b6040516101349190610d1b565b60405180910390f35b61015760048036038101906101529190610d84565b610571565b6040516101649190610d1b565b60405180910390f35b61018760048036038101906101829190610daf565b6105b7565b005b610191610724565b60405161019e9190610c1d565b60405180910390f35b6101c160048036038101906101bc9190610cce565b6107b4565b005b6101dd60048036038101906101d89190610cce565b6108bc565b005b6101f960048036038101906101f49190610ded565b610a25565b6040516102069190610d1b565b60405180910390f35b60606004805461021e90610e58565b80601f016020809104026020016040519081016040528092919081815260200182805461024a90610e58565b80156102955780601f1061026c57610100808354040283529160200191610295565b820191905f5260205f20905b81548152906001019060200180831161027857829003601f168201915b5050505050905090565b6102aa338383610aa7565b5050565b5f8054905090565b8281806102c283610571565b1015610303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102fa90610ed2565b60405180910390fd5b61030e858585610b8e565b8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156103c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c090610f3a565b60405180910390fd5b8260035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104509190610f85565b925050819055508260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104a39190610f85565b925050819055508260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546104f69190610fb8565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161055a9190610d1b565b60405180910390a35050505050565b5f6012905090565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063d90611035565b60405180910390fd5b6106515f8284610b8e565b8160025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461069d9190610fb8565b92505081905550815f808282546106b49190610fb8565b925050819055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107189190610d1b565b60405180910390a35050565b60606005805461073390610e58565b80601f016020809104026020016040519081016040528092919081815260200182805461075f90610e58565b80156107aa5780601f10610781576101008083540402835291602001916107aa565b820191905f5260205f20905b81548152906001019060200180831161078d57829003601f168201915b5050505050905090565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a90611035565b60405180910390fd5b61084e825f83610b8e565b8060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461089a9190610f85565b92505081905550805f808282546108b19190610f85565b925050819055505050565b3381806108c883610571565b1015610909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090090610ed2565b60405180910390fd5b610914338585610b8e565b8260025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109609190610f85565b925050819055508260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109b39190610fb8565b925050819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610a179190610d1b565b60405180910390a350505050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f6e11fb1b7f119e3f2fa29896ef5fdf8b8a2d0d4df6fe90ba8668e7d8b2ffa25e83604051610b819190610d1b565b60405180910390a3505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610bca578082015181840152602081019050610baf565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610bef82610b93565b610bf98185610b9d565b9350610c09818560208601610bad565b610c1281610bd5565b840191505092915050565b5f6020820190508181035f830152610c358184610be5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c6a82610c41565b9050919050565b610c7a81610c60565b8114610c84575f80fd5b50565b5f81359050610c9581610c71565b92915050565b5f819050919050565b610cad81610c9b565b8114610cb7575f80fd5b50565b5f81359050610cc881610ca4565b92915050565b5f8060408385031215610ce457610ce3610c3d565b5b5f610cf185828601610c87565b9250506020610d0285828601610cba565b9150509250929050565b610d1581610c9b565b82525050565b5f602082019050610d2e5f830184610d0c565b92915050565b5f805f60608486031215610d4b57610d4a610c3d565b5b5f610d5886828701610c87565b9350506020610d6986828701610c87565b9250506040610d7a86828701610cba565b9150509250925092565b5f60208284031215610d9957610d98610c3d565b5b5f610da684828501610c87565b91505092915050565b5f8060408385031215610dc557610dc4610c3d565b5b5f610dd285828601610cba565b9250506020610de385828601610c87565b9150509250929050565b5f8060408385031215610e0357610e02610c3d565b5b5f610e1085828601610c87565b9250506020610e2185828601610c87565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610e6f57607f821691505b602082108103610e8257610e81610e2b565b5b50919050565b7f6e6f7420656e6f75676820746f6b656e732100000000000000000000000000005f82015250565b5f610ebc601283610b9d565b9150610ec782610e88565b602082019050919050565b5f6020820190508181035f830152610ee981610eb0565b9050919050565b7f636865636b20616c6c6f77616e636521000000000000000000000000000000005f82015250565b5f610f24601083610b9d565b9150610f2f82610ef0565b602082019050919050565b5f6020820190508181035f830152610f5181610f18565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f8f82610c9b565b9150610f9a83610c9b565b9250828203905081811115610fb257610fb1610f58565b5b92915050565b5f610fc282610c9b565b9150610fcd83610c9b565b9250828201905080821115610fe557610fe4610f58565b5b92915050565b7f6e6f7420616e206f776e657221000000000000000000000000000000000000005f82015250565b5f61101f600d83610b9d565b915061102a82610feb565b602082019050919050565b5f6020820190508181035f83015261104c81611013565b905091905056fea26469706673582212202071a4d35a523190f274ef75217c7e6f752931b373dc7066ee1f8f79f178368064736f6c634300081400330000000000000000000000006d4f82e7134fe0543246abe1c41ece07eb9487eb