0x608060405234801561001057600080fd5b50610ad9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063c579d49011610050578063c579d490146100d9578063e0aa2797146100ec578063e914d4941461013557600080fd5b806326b09c291461007757806341c0e1b51461008c5780638cedca7114610094575b600080fd5b61008a610085366004610966565b610148565b005b61008a6102cb565b6100af73ccf3d848e08b94478ed8f46ffead3008faf581fd81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61008a6100e736600461098a565b6103b5565b6101256100fa366004610966565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205460ff1690565b60405190151581526020016100d0565b61008a610143366004610966565b61053d565b3373ffffffffffffffffffffffffffffffffffffffff1673ccf3d848e08b94478ed8f46ffead3008faf581fd73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e291906109cb565b73ffffffffffffffffffffffffffffffffffffffff161461022f576040517f19494c8a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811661027c576040517fc440e09400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b3373ffffffffffffffffffffffffffffffffffffffff1673ccf3d848e08b94478ed8f46ffead3008faf581fd73ffffffffffffffffffffffffffffffffffffffff1663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa158015610341573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036591906109cb565b73ffffffffffffffffffffffffffffffffffffffff16146103b2576040517fa6c827a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33ff5b3373ffffffffffffffffffffffffffffffffffffffff1673ccf3d848e08b94478ed8f46ffead3008faf581fd73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044f91906109cb565b73ffffffffffffffffffffffffffffffffffffffff161461049c576040517f19494c8a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff841614156105175760405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015610511573d6000803e3d6000fd5b50505050565b61053873ffffffffffffffffffffffffffffffffffffffff84168383610670565b505050565b3373ffffffffffffffffffffffffffffffffffffffff1673ccf3d848e08b94478ed8f46ffead3008faf581fd73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d791906109cb565b73ffffffffffffffffffffffffffffffffffffffff1614610624576040517f19494c8a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526105389286929160009161073b9185169084906107ed565b905080516000148061075c57508080602001905181019061075c91906109e8565b610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60606107fc8484600085610804565b949350505050565b606061080f85610908565b610845576040517f304619b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161086e9190610a36565b60006040518083038185875af1925050503d80600081146108ab576040519150601f19603f3d011682016040523d82523d6000602084013e6108b0565b606091505b509150915081156108c45791506107fc9050565b8051156108d45780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e49190610a52565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906107fc575050151592915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461096357600080fd5b50565b60006020828403121561097857600080fd5b813561098381610941565b9392505050565b60008060006060848603121561099f57600080fd5b83356109aa81610941565b925060208401356109ba81610941565b929592945050506040919091013590565b6000602082840312156109dd57600080fd5b815161098381610941565b6000602082840312156109fa57600080fd5b8151801515811461098357600080fd5b60005b83811015610a25578181015183820152602001610a0d565b838111156105115750506000910152565b60008251610a48818460208701610a0a565b9190910192915050565b6020815260008251806020840152610a71816040850160208701610a0a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220f4d36335cfa33d41c0e0389c3527b3f82feb1998b7f14f96458e7b661e8d6d9b64736f6c634300080a0033