0x60a06040523480156200001157600080fd5b5060405162001a5d38038062001a5d833981810160405281019062000037919062000201565b620000576200004b6200009260201b60201c565b6200009a60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505062000233565b600033905090565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055620000d081620000d360201b60201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001c9826200019c565b9050919050565b620001db81620001bc565b8114620001e757600080fd5b50565b600081519050620001fb81620001d0565b92915050565b6000602082840312156200021a576200021962000197565b5b60006200022a84828501620001ea565b91505092915050565b608051611807620002566000396000818161051001526105af01526118076000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063e30c39781161005b578063e30c3978146100ef578063f2fde38b1461010d578063f6e51f5d14610129578063fc0c546a1461014557610088565b8063715018a61461008d57806379ba5097146100975780637ecebe00146100a15780638da5cb5b146100d1575b600080fd5b610095610163565b005b61009f610177565b005b6100bb60048036038101906100b69190610d73565b610204565b6040516100c89190610db9565b60405180910390f35b6100d961021c565b6040516100e69190610de3565b60405180910390f35b6100f7610245565b6040516101049190610de3565b60405180910390f35b61012760048036038101906101229190610d73565b61026f565b005b610143600480360381019061013e9190610e99565b61031c565b005b61014d6105ad565b60405161015a9190610de3565b60405180910390f35b61016b6105d1565b610175600061064f565b565b6000610181610680565b90508073ffffffffffffffffffffffffffffffffffffffff166101a2610245565b73ffffffffffffffffffffffffffffffffffffffff16146101f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ef90610fa9565b60405180910390fd5b6102018161064f565b50565b60026020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6102776105d1565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff166102d761021c565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b42851161035e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035590611015565b60405180910390fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484146103df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d690611081565b60405180910390fd5b60006103e961021c565b3388600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061043b906110d0565b9190505589604051602001610454959493929190611181565b604051602081830303815290604052805190602001209050600061047782610688565b90506000610492868686856106be909392919063ffffffff16565b905061049c61021c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610509576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105009061122c565b60405180910390fd5b610554338a7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166106e99092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d58a60405161059a9190610db9565b60405180910390a2505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6105d9610680565b73ffffffffffffffffffffffffffffffffffffffff166105f761021c565b73ffffffffffffffffffffffffffffffffffffffff161461064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064490611298565b60405180910390fd5b565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561067d8161076f565b50565b600033905090565b60007f19457468657265756d205369676e6564204d6573736167653a0a33320000000060005281601c52603c6000209050919050565b60008060006106cf87878787610833565b915091506106dc81610915565b8192505050949350505050565b61076a8363a9059cbb60e01b84846040516024016107089291906112b8565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610a7b565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c111561086e57600060039150915061090c565b60006001878787876040516000815260200160405260405161089394939291906112ff565b6020604051602081039080840390855afa1580156108b5573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109035760006001925092505061090c565b80600092509250505b94509492505050565b6000600481111561092957610928611344565b5b81600481111561093c5761093b611344565b5b0315610a78576001600481111561095657610955611344565b5b81600481111561096957610968611344565b5b036109a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a0906113bf565b60405180910390fd5b600260048111156109bd576109bc611344565b5b8160048111156109d0576109cf611344565b5b03610a10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a079061142b565b60405180910390fd5b60036004811115610a2457610a23611344565b5b816004811115610a3757610a36611344565b5b03610a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6e906114bd565b60405180910390fd5b5b50565b6000610add826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610b439092919063ffffffff16565b9050600081511480610aff575080806020019051810190610afe9190611515565b5b610b3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b35906115b4565b60405180910390fd5b505050565b6060610b528484600085610b5b565b90509392505050565b606082471015610ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9790611646565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610bc991906116d7565b60006040518083038185875af1925050503d8060008114610c06576040519150601f19603f3d011682016040523d82523d6000602084013e610c0b565b606091505b5091509150610c1c87838387610c28565b92505050949350505050565b60608315610c8a576000835103610c8257610c4285610c9d565b610c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c789061173a565b60405180910390fd5b5b829050610c95565b610c948383610cc0565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115610cd35781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0791906117af565b60405180910390fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d4082610d15565b9050919050565b610d5081610d35565b8114610d5b57600080fd5b50565b600081359050610d6d81610d47565b92915050565b600060208284031215610d8957610d88610d10565b5b6000610d9784828501610d5e565b91505092915050565b6000819050919050565b610db381610da0565b82525050565b6000602082019050610dce6000830184610daa565b92915050565b610ddd81610d35565b82525050565b6000602082019050610df86000830184610dd4565b92915050565b610e0781610da0565b8114610e1257600080fd5b50565b600081359050610e2481610dfe565b92915050565b600060ff82169050919050565b610e4081610e2a565b8114610e4b57600080fd5b50565b600081359050610e5d81610e37565b92915050565b6000819050919050565b610e7681610e63565b8114610e8157600080fd5b50565b600081359050610e9381610e6d565b92915050565b60008060008060008060c08789031215610eb657610eb5610d10565b5b6000610ec489828a01610e15565b9650506020610ed589828a01610e15565b9550506040610ee689828a01610e15565b9450506060610ef789828a01610e4e565b9350506080610f0889828a01610e84565b92505060a0610f1989828a01610e84565b9150509295509295509295565b600082825260208201905092915050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b6000610f93602983610f26565b9150610f9e82610f37565b604082019050919050565b60006020820190508181036000830152610fc281610f86565b9050919050565b7f446561646c696e65206973206578706972656400000000000000000000000000600082015250565b6000610fff601383610f26565b915061100a82610fc9565b602082019050919050565b6000602082019050818103600083015261102e81610ff2565b9050919050565b7f496e76616c6964206e6f6e636500000000000000000000000000000000000000600082015250565b600061106b600d83610f26565b915061107682611035565b602082019050919050565b6000602082019050818103600083015261109a8161105e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006110db82610da0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361110d5761110c6110a1565b5b600182019050919050565b60008160601b9050919050565b600061113082611118565b9050919050565b600061114282611125565b9050919050565b61115a61115582610d35565b611137565b82525050565b6000819050919050565b61117b61117682610da0565b611160565b82525050565b600061118d8288611149565b60148201915061119d8287611149565b6014820191506111ad828661116a565b6020820191506111bd828561116a565b6020820191506111cd828461116a565b6020820191508190509695505050505050565b7f4e6f742076616c6964206f776e65720000000000000000000000000000000000600082015250565b6000611216600f83610f26565b9150611221826111e0565b602082019050919050565b6000602082019050818103600083015261124581611209565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611282602083610f26565b915061128d8261124c565b602082019050919050565b600060208201905081810360008301526112b181611275565b9050919050565b60006040820190506112cd6000830185610dd4565b6112da6020830184610daa565b9392505050565b6112ea81610e63565b82525050565b6112f981610e2a565b82525050565b600060808201905061131460008301876112e1565b61132160208301866112f0565b61132e60408301856112e1565b61133b60608301846112e1565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b60006113a9601883610f26565b91506113b482611373565b602082019050919050565b600060208201905081810360008301526113d88161139c565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000611415601f83610f26565b9150611420826113df565b602082019050919050565b6000602082019050818103600083015261144481611408565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b60006114a7602283610f26565b91506114b28261144b565b604082019050919050565b600060208201905081810360008301526114d68161149a565b9050919050565b60008115159050919050565b6114f2816114dd565b81146114fd57600080fd5b50565b60008151905061150f816114e9565b92915050565b60006020828403121561152b5761152a610d10565b5b600061153984828501611500565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b600061159e602a83610f26565b91506115a982611542565b604082019050919050565b600060208201905081810360008301526115cd81611591565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000611630602683610f26565b915061163b826115d4565b604082019050919050565b6000602082019050818103600083015261165f81611623565b9050919050565b600081519050919050565b600081905092915050565b60005b8381101561169a57808201518184015260208101905061167f565b60008484015250505050565b60006116b182611666565b6116bb8185611671565b93506116cb81856020860161167c565b80840191505092915050565b60006116e382846116a6565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000611724601d83610f26565b915061172f826116ee565b602082019050919050565b6000602082019050818103600083015261175381611717565b9050919050565b600081519050919050565b6000601f19601f8301169050919050565b60006117818261175a565b61178b8185610f26565b935061179b81856020860161167c565b6117a481611765565b840191505092915050565b600060208201905081810360008301526117c98184611776565b90509291505056fea26469706673582212207371af20cecc9a89aed6f4ecfb2757522001dd3701401671c6aff06c747638c164736f6c63430008130033000000000000000000000000ab5abda08e5f80fcb8b13765c46398616ada37bd