608060405234801561000f575f80fd5b506108638061001d5f395ff3fe60806040526004361061002c575f3560e01c80634a0687ef1461003757806375b30be61461005f5761002d565b5b610035610087565b005b348015610042575f80fd5b5061005d600480360381019061005891906103b4565b610099565b005b34801561006a575f80fd5b506100856004803603810190610080919061054e565b610190565b005b6100976100926101bb565b6101e3565b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100fe576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1661011d6101bb565b73ffffffffffffffffffffffffffffffffffffffff161461016a576040517f5daa87a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5550565b61019b858585610202565b6101b4828260405180602001604052805f8152506102da565b5050505050565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54905090565b365f80375f80365f845af43d5f803e805f81146101fe573d5ff35b3d5ffd5b8273ffffffffffffffffffffffffffffffffffffffff1663d412d344306040518263ffffffff1660e01b815260040161023b919061060c565b5f604051808303815f87803b158015610252575f80fd5b505af1158015610264573d5f803e3d5ffd5b505050503073ffffffffffffffffffffffffffffffffffffffff166342fe09805f601285856040518563ffffffff1660e01b81526004016102a8949392919061073f565b5f604051808303815f87803b1580156102bf575f80fd5b505af11580156102d1573d5f803e3d5ffd5b50505050505050565b3073ffffffffffffffffffffffffffffffffffffffff1663c68d42838484846040518463ffffffff1660e01b8152600401610317939291906107f1565b5f604051808303815f87803b15801561032e575f80fd5b505af1158015610340573d5f803e3d5ffd5b50505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103838261035a565b9050919050565b61039381610379565b811461039d575f80fd5b50565b5f813590506103ae8161038a565b92915050565b5f602082840312156103c9576103c8610352565b5b5f6103d6848285016103a0565b91505092915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61042d826103e7565b810181811067ffffffffffffffff8211171561044c5761044b6103f7565b5b80604052505050565b5f61045e610349565b905061046a8282610424565b919050565b5f67ffffffffffffffff821115610489576104886103f7565b5b610492826103e7565b9050602081019050919050565b828183375f83830152505050565b5f6104bf6104ba8461046f565b610455565b9050828152602081018484840111156104db576104da6103e3565b5b6104e684828561049f565b509392505050565b5f82601f830112610502576105016103df565b5b81356105128482602086016104ad565b91505092915050565b5f819050919050565b61052d8161051b565b8114610537575f80fd5b50565b5f8135905061054881610524565b92915050565b5f805f805f60a0868803121561056757610566610352565b5b5f610574888289016103a0565b955050602086013567ffffffffffffffff81111561059557610594610356565b5b6105a1888289016104ee565b945050604086013567ffffffffffffffff8111156105c2576105c1610356565b5b6105ce888289016104ee565b93505060606105df888289016103a0565b92505060806105f08882890161053a565b9150509295509295909350565b61060681610379565b82525050565b5f60208201905061061f5f8301846105fd565b92915050565b5f819050919050565b5f61064861064361063e8461035a565b610625565b61035a565b9050919050565b5f6106598261062e565b9050919050565b5f61066a8261064f565b9050919050565b61067a81610660565b82525050565b5f819050919050565b5f60ff82169050919050565b5f6106af6106aa6106a584610680565b610625565b610689565b9050919050565b6106bf81610695565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156106fc5780820151818401526020810190506106e1565b5f8484015250505050565b5f610711826106c5565b61071b81856106cf565b935061072b8185602086016106df565b610734816103e7565b840191505092915050565b5f6080820190506107525f830187610671565b61075f60208301866106b6565b81810360408301526107718185610707565b905081810360608301526107858184610707565b905095945050505050565b6107998161051b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f6107c38261079f565b6107cd81856107a9565b93506107dd8185602086016106df565b6107e6816103e7565b840191505092915050565b5f6060820190506108045f8301866105fd565b6108116020830185610790565b818103604083015261082381846107b9565b905094935050505056fea2646970667358221220426d2a610499caf65837793a6d181713be0c2085bd4f450281ec8602c8dfafea64736f6c63430008160033