60806040525f60025573c328a59e7321747aebbc49fd28d1b32c1af8d3b260035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60055f6101000a81548160ff02191690831515021790555034801562000081575f80fd5b5060405162000fc838038062000fc88339818101604052810190620000a7919062000264565b815f9081620000b791906200051e565b508060019081620000c991906200051e565b506509184e72a000600481905550505062000602565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200014082620000f8565b810181811067ffffffffffffffff8211171562000162576200016162000108565b5b80604052505050565b5f62000176620000df565b905062000184828262000135565b919050565b5f67ffffffffffffffff821115620001a657620001a562000108565b5b620001b182620000f8565b9050602081019050919050565b5f5b83811015620001dd578082015181840152602081019050620001c0565b5f8484015250505050565b5f620001fe620001f88462000189565b6200016b565b9050828152602081018484840111156200021d576200021c620000f4565b5b6200022a848285620001be565b509392505050565b5f82601f830112620002495762000248620000f0565b5b81516200025b848260208601620001e8565b91505092915050565b5f80604083850312156200027d576200027c620000e8565b5b5f83015167ffffffffffffffff8111156200029d576200029c620000ec565b5b620002ab8582860162000232565b925050602083015167ffffffffffffffff811115620002cf57620002ce620000ec565b5b620002dd8582860162000232565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200033657607f821691505b6020821081036200034c576200034b620002f1565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000373565b620003bc868362000373565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200040662000400620003fa84620003d4565b620003dd565b620003d4565b9050919050565b5f819050919050565b6200042183620003e6565b6200043962000430826200040d565b8484546200037f565b825550505050565b5f90565b6200044f62000441565b6200045c81848462000416565b505050565b5b818110156200048357620004775f8262000445565b60018101905062000462565b5050565b601f821115620004d2576200049c8162000352565b620004a78462000364565b81016020851015620004b7578190505b620004cf620004c68562000364565b83018262000461565b50505b505050565b5f82821c905092915050565b5f620004f45f1984600802620004d7565b1980831691505092915050565b5f6200050e8383620004e3565b9150826002028217905092915050565b6200052982620002e7565b67ffffffffffffffff81111562000545576200054462000108565b5b6200055182546200031e565b6200055e82828562000487565b5f60209050601f83116001811462000594575f84156200057f578287015190505b6200058b858262000501565b865550620005fa565b601f198416620005a48662000352565b5f5b82811015620005cd57848901518255600182019150602085019450602081019050620005a6565b86831015620005ed5784890151620005e9601f891682620004e3565b8355505b6001600288020188555050505b505050505050565b6109b880620006105f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c806344df8e701161006457806344df8e701461010b5780636a6278421461011557806370a082311461013157806395d89b4114610161578063ea66696c1461017f57610091565b806306fdde031461009557806318160ddd146100b35780632d5ecff1146100d1578063313ce567146100ed575b5f80fd5b61009d61019b565b6040516100aa91906105be565b60405180910390f35b6100bb61022a565b6040516100c891906105f6565b60405180910390f35b6100eb60048036038101906100e691906107e4565b610230565b005b6100f56102f4565b6040516101029190610859565b60405180910390f35b6101136102fc565b005b61012f600480360381019061012a9190610872565b610318565b005b61014b60048036038101906101469190610872565b610385565b60405161015891906105f6565b60405180910390f35b610169610401565b60405161017691906105be565b60405180910390f35b610199600480360381019061019491906107e4565b610491565b005b60605f80546101a9906108ca565b80601f01602080910402602001604051908101604052809291908181526020018280546101d5906108ca565b80156102205780601f106101f757610100808354040283529160200191610220565b820191905f5260205f20905b81548152906001019060200180831161020357829003601f168201915b5050505050905090565b60045481565b806002819055505f5b82518110156102ef57828181518110610255576102546108fa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516102da91906105f6565b60405180910390a38080600101915050610239565b505050565b5f6001905090565b600160055f6101000a81548160ff021916908315150217905550565b8073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef64e8d4a5100060405161037a9190610969565b60405180910390a350565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806103ec575060055f9054906101000a900460ff165b6103f8576002546103fa565b5f5b9050919050565b606060018054610410906108ca565b80601f016020809104026020016040519081016040528092919081815260200182805461043c906108ca565b80156104875780601f1061045e57610100808354040283529160200191610487565b820191905f5260205f20905b81548152906001019060200180831161046a57829003601f168201915b5050505050905090565b806002819055505f5b825181101561052f578281815181106104b6576104b56108fa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161051a91906105f6565b60405180910390a3808060010191505061049a565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561056b578082015181840152602081019050610550565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61059082610534565b61059a818561053e565b93506105aa81856020860161054e565b6105b381610576565b840191505092915050565b5f6020820190508181035f8301526105d68184610586565b905092915050565b5f819050919050565b6105f0816105de565b82525050565b5f6020820190506106095f8301846105e7565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61065a82610576565b810181811067ffffffffffffffff8211171561067957610678610624565b5b80604052505050565b5f61068b61060f565b90506106978282610651565b919050565b5f67ffffffffffffffff8211156106b6576106b5610624565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106f4826106cb565b9050919050565b610704816106ea565b811461070e575f80fd5b50565b5f8135905061071f816106fb565b92915050565b5f6107376107328461069c565b610682565b9050808382526020820190506020840283018581111561075a576107596106c7565b5b835b81811015610783578061076f8882610711565b84526020840193505060208101905061075c565b5050509392505050565b5f82601f8301126107a1576107a0610620565b5b81356107b1848260208601610725565b91505092915050565b6107c3816105de565b81146107cd575f80fd5b50565b5f813590506107de816107ba565b92915050565b5f80604083850312156107fa576107f9610618565b5b5f83013567ffffffffffffffff8111156108175761081661061c565b5b6108238582860161078d565b9250506020610834858286016107d0565b9150509250929050565b5f60ff82169050919050565b6108538161083e565b82525050565b5f60208201905061086c5f83018461084a565b92915050565b5f6020828403121561088757610886610618565b5b5f61089484828501610711565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806108e157607f821691505b6020821081036108f4576108f361089d565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f61095361094e61094984610927565b610930565b6105de565b9050919050565b61096381610939565b82525050565b5f60208201905061097c5f83018461095a565b9291505056fea2646970667358221220d90e8dc7d80cc4374c1059be9991e56b9151dfb11e53f92a2bb88483e1937dfe64736f6c63430008180033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002c23205048494c2052657761726420546f6b656e2028576562736974653a207068696c746f6b656e2e6e6574290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002147657420245048494c20726577617264206174207068696c746f6b656e2e6e657400000000000000000000000000000000000000000000000000000000000000