"0x608060405234801561001057600080fd5b5060043610610048576000357c010000000000000000000000000000000000000000000000000000000090048063715609b21461004d575b600080fd5b61008f6004803603602081101561006357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000816040516100e0906102a0565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015610132573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff166365fae35e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156101d057600080fd5b505af11580156101e4573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16639c52a7f1306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561028357600080fd5b505af1158015610297573d6000803e3d6000fd5b50505050919050565b6113dd806102ae8339019056fe608060405234801561001057600080fd5b506040516020806113dd833981018060405261002f91908101906100ce565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610129565b60006100c682516100f7565b905092915050565b6000602082840312156100e057600080fd5b60006100ee848285016100ba565b91505092915050565b600061010282610109565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6112a5806101386000396000f3fe608060405234801561001057600080fd5b50600436106100d1576000357c010000000000000000000000000000000000000000000000000000000090048063626cb3c51161008e578063626cb3c51461018257806365fae35e146101a05780639c52a7f1146101bc578063bf353dbb146101d8578063d9638d3614610208578063e9b674b914610239576100d1565b80631a0b287e146100d657806329ae8114146100f257806336569e771461010e5780633b6631951461012c57806344e2a5a8146101485780635001f3b514610164575b600080fd5b6100f060048036036100eb9190810190610f44565b610255565b005b61010c60048036036101079190810190610f93565b610378565b005b610116610486565b60405161012391906110c2565b60405180910390f35b61014660048036036101419190810190610edf565b6104ac565b005b610162600480360361015d9190810190610edf565b6105f0565b005b61016c6108fd565b60405161017991906110dd565b60405180910390f35b61018a610903565b6040516101979190611070565b60405180910390f35b6101ba60048036036101b59190810190610eb6565b610909565b005b6101d660048036036101d19190810190610eb6565b610a2a565b005b6101f260048036036101ed9190810190610eb6565b610b4b565b6040516101ff91906110dd565b60405180910390f35b610222600480360361021d9190810190610edf565b610b63565b60405161023092919061112a565b60405180910390f35b610253600480360361024e9190810190610f08565b610b99565b005b60008060006004359250602435915034905081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916846000366040516102d7939291906110f8565b60405180910390a460016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561032c57600080fd5b7f6475747900000000000000000000000000000000000000000000000000000000851415610370578360016000888152602001908152602001600020600001819055505b505050505050565b60008060006004359250602435915034905081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916846000366040516103fa939291906110f8565b60405180910390a460016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561044f57600080fd5b7f626173650000000000000000000000000000000000000000000000000000000085141561047f57836004819055505b5050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060006004359250602435915034905081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405161052e939291906110f8565b60405180910390a460016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561058357600080fd5b6000600160008681526020019081526020016000209050600081600001541415156105ad57600080fd5b6b033b2e3c9fd0803ce80000008160000181905550428160010160006101000a81548165ffffffffffff021916908365ffffffffffff1602179055505050505050565b60008060006004359250602435915034905081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191684600036604051610672939291906110f8565b60405180910390a46001600085815260200190815260200160002060010160009054906101000a900465ffffffffffff1665ffffffffffff1642101515156106b957600080fd5b6106c1610e00565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9638d36866040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016107389190611070565b6040805180830381600087803b15801561075157600080fd5b505af1158015610765573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107899190810190610fcf565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a6a64d8660035461085161084761083d6107f8600454600160008f815260200190815260200160002060000154610ca7565b600160008e815260200190815260200160002060010160009054906101000a900465ffffffffffff1665ffffffffffff1642036b033b2e3c9fd0803ce8000000610cc3565b8760200151610d8b565b8660200151610dd6565b6040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161088b9392919061108b565b600060405180830381600087803b1580156108a557600080fd5b505af11580156108b9573d6000803e3d6000fd5b50505050426001600087815260200190815260200160002060010160006101000a81548165ffffffffffff021916908365ffffffffffff1602179055505050505050565b60045481565b60035481565b60008060006004359250602435915034905081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405161098b939291906110f8565b60405180910390a460016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415156109e057600080fd5b60016000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b60008060006004359250602435915034905081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191684600036604051610aac939291906110f8565b60405180910390a460016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515610b0157600080fd5b60008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050565b60006020528060005260406000206000915090505481565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900465ffffffffffff16905082565b60008060006004359250602435915034905081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191684600036604051610c1b939291906110f8565b60405180910390a460016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515610c7057600080fd5b7f766f770000000000000000000000000000000000000000000000000000000000851415610ca057836003819055505b5050505050565b60008183019050828110151515610cbd57600080fd5b92915050565b60008360008114610d6b576002840660008114610ce257859250610ce6565b8392505b50600283046002850494505b8415610d655785860286878204141515610d0b57600080fd5b81810181811015610d1b57600080fd5b85810497506002870615610d58578785028589820414158915151615610d4057600080fd5b83810181811015610d5057600080fd5b878104965050505b5050600285049450610cf2565b50610d83565b8360008114610d7d5760009250610d81565b8392505b505b509392505050565b600081830290506000821480610dab5750828282811515610da857fe5b04145b1515610db657600080fd5b6b033b2e3c9fd0803ce800000081811515610dcd57fe5b04905092915050565b6000818303905060008312158015610def575060008212155b1515610dfa57600080fd5b92915050565b604080519081016040528060008152602001600081525090565b6000610e2682356111e1565b905092915050565b6000610e3a82356111f3565b905092915050565b600060408284031215610e5457600080fd5b610e5e6040611153565b90506000610e6e84828501610ea2565b6000830152506020610e8284828501610ea2565b60208301525092915050565b6000610e9a823561121d565b905092915050565b6000610eae825161121d565b905092915050565b600060208284031215610ec857600080fd5b6000610ed684828501610e1a565b91505092915050565b600060208284031215610ef157600080fd5b6000610eff84828501610e2e565b91505092915050565b60008060408385031215610f1b57600080fd5b6000610f2985828601610e2e565b9250506020610f3a85828601610e2e565b9150509250929050565b600080600060608486031215610f5957600080fd5b6000610f6786828701610e2e565b9350506020610f7886828701610e2e565b9250506040610f8986828701610e8e565b9150509250925092565b60008060408385031215610fa657600080fd5b6000610fb485828601610e2e565b9250506020610fc585828601610e8e565b9150509250929050565b600060408284031215610fe157600080fd5b6000610fef84828501610e42565b91505092915050565b61100181611191565b82525050565b60006110138385611180565b935061102083858461124b565b6110298361125a565b840190509392505050565b61103d81611227565b82525050565b61104c8161119b565b82525050565b61105b816111c5565b82525050565b61106a816111cf565b82525050565b60006020820190506110856000830184610ff8565b92915050565b60006060820190506110a06000830186610ff8565b6110ad6020830185610ff8565b6110ba6040830184611043565b949350505050565b60006020820190506110d76000830184611034565b92915050565b60006020820190506110f26000830184611052565b92915050565b600060408201905061110d6000830186611052565b8181036020830152611120818486611007565b9050949350505050565b600060408201905061113f6000830185611052565b61114c6020830184611061565b9392505050565b6000604051905081810181811067ffffffffffffffff8211171561117657600080fd5b8060405250919050565b600082825260208201905092915050565b6000819050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600065ffffffffffff82169050919050565b60006111ec826111fd565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061123282611239565b9050919050565b6000611244826111a5565b9050919050565b82818337600083830152505050565b6000601f19601f830116905091905056fea265627a7a72305820a7154fa338a332465a56a30626cd526a8fc8a1e901d41f0a55d189c6d51bcae86c6578706572696d656e74616cf50037a165627a7a72305820da55bf8c5fefe38f7e14587ed33f77456b86a679077e4b2548893ce65ef833880029"