0x60c06040523480156200001157600080fd5b506040516200171f3803806200171f833981810160405281019062000037919062000111565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505062000158565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000d982620000ac565b9050919050565b620000eb81620000cc565b8114620000f757600080fd5b50565b6000815190506200010b81620000e0565b92915050565b600080604083850312156200012b576200012a620000a7565b5b60006200013b85828601620000fa565b92505060206200014e85828601620000fa565b9150509250929050565b60805160a0516115936200018c600039600061018a01526000818161026001528181610397015261098801526115936000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80634b189ae414610067578063a0a8045e14610097578063ad5c4648146100b5578063ce2986ff146100d3578063e334e12b14610103578063fd67de8014610133575b600080fd5b610081600480360381019061007c9190610be2565b610163565b60405161008e9190610c3b565b60405180910390f35b61009f61017f565b6040516100ac9190610c3b565b60405180910390f35b6100bd61025e565b6040516100ca9190610c65565b60405180910390f35b6100ed60048036038101906100e89190610dd9565b610282565b6040516100fa9190610ef3565b60405180910390f35b61011d60048036038101906101189190610dd9565b610623565b60405161012a9190611002565b60405180910390f35b61014d60048036038101906101489190611050565b610848565b60405161015a9190610c3b565b60405180910390f35b6000610177838361017261017f565b610848565b905092915050565b6000806000806000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bcfd032d73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6103486040518363ffffffff1660e01b81526004016101f99291906110a3565b60a06040518083038186803b15801561021157600080fd5b505afa158015610225573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102499190611159565b94509450945094509450839550505050505090565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060008273ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156102cc57600080fd5b505afa1580156102e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030491906111e9565b90506000845167ffffffffffffffff81111561032357610322610c96565b5b6040519080825280602002602001820160405280156103515781602001602082028036833780820191505090505b5090506000805b86518110156104e357600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1663e6a439057f00000000000000000000000000000000000000000000000000000000000000008a85815181106103c9576103c8611216565b5b60200260200101516040518363ffffffff1660e01b81526004016103ee9291906110a3565b60206040518083038186803b15801561040657600080fd5b505afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e91906111e9565b73ffffffffffffffffffffffffffffffffffffffff16146104d05786818151811061046c5761046b611216565b5b602002602001015183828151811061048757610486611216565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081806104cc90611274565b9250505b80806104db90611274565b915050610358565b5060008167ffffffffffffffff811115610500576104ff610c96565b5b60405190808252806020026020018201604052801561052e5781602001602082028036833780820191505090505b5090506000805b845181101561061457600073ffffffffffffffffffffffffffffffffffffffff1685828151811061056957610568611216565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16146106015784818151811061059f5761059e611216565b5b60200260200101518383806105b390611274565b9450815181106105c6576105c5611216565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b808061060c90611274565b915050610535565b50819550505050505092915050565b6060600061062f61017f565b90506000845167ffffffffffffffff81111561064e5761064d610c96565b5b60405190808252806020026020018201604052801561067c5781602001602082028036833780820191505090505b5090506000805b8651811015610714576106b18782815181106106a2576106a1611216565b5b60200260200101518786610848565b8382815181106106c4576106c3611216565b5b60200260200101818152505060008382815181106106e5576106e4611216565b5b6020026020010151146107015781806106fd90611274565b9250505b808061070c90611274565b915050610683565b5060008167ffffffffffffffff81111561073157610730610c96565b5b60405190808252806020026020018201604052801561076a57816020015b610757610b40565b81526020019060019003908161074f5790505b5090506000805b885181101561083957600085828151811061078f5761078e611216565b5b6020026020010151146108265760405180604001604052808a83815181106107ba576107b9611216565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020018683815181106107f0576107ef611216565b5b602002602001015181525083838061080790611274565b94508151811061081a57610819611216565b5b60200260200101819052505b808061083190611274565b915050610771565b50819550505050505092915050565b6000808473ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016108849190610c65565b60206040518083038186803b15801561089c57600080fd5b505afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d491906112bd565b905060008114156108e9576000915050610acc565b6000600267ffffffffffffffff81111561090657610905610c96565b5b6040519080825280602002602001820160405280156109345781602001602082028036833780820191505090505b509050858160008151811061094c5761094b611216565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106109bb576109ba611216565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008573ffffffffffffffffffffffffffffffffffffffff1663d06ca61f84846040518363ffffffff1660e01b8152600401610a329291906112ea565b60006040518083038186803b158015610a4a57600080fd5b505afa158015610a5e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610a8791906113dd565b600181518110610a9a57610a99611216565b5b602002602001015190506305f5e100610abc8683610ad390919063ffffffff16565b610ac69190611455565b93505050505b9392505050565b600080821480610afb575082828385610aec9190611486565b925082610af99190611455565b145b610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b319061153d565b60405180910390fd5b92915050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610baf82610b84565b9050919050565b610bbf81610ba4565b8114610bca57600080fd5b50565b600081359050610bdc81610bb6565b92915050565b60008060408385031215610bf957610bf8610b7a565b5b6000610c0785828601610bcd565b9250506020610c1885828601610bcd565b9150509250929050565b6000819050919050565b610c3581610c22565b82525050565b6000602082019050610c506000830184610c2c565b92915050565b610c5f81610ba4565b82525050565b6000602082019050610c7a6000830184610c56565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610cce82610c85565b810181811067ffffffffffffffff82111715610ced57610cec610c96565b5b80604052505050565b6000610d00610b70565b9050610d0c8282610cc5565b919050565b600067ffffffffffffffff821115610d2c57610d2b610c96565b5b602082029050602081019050919050565b600080fd5b6000610d55610d5084610d11565b610cf6565b90508083825260208201905060208402830185811115610d7857610d77610d3d565b5b835b81811015610da15780610d8d8882610bcd565b845260208401935050602081019050610d7a565b5050509392505050565b600082601f830112610dc057610dbf610c80565b5b8135610dd0848260208601610d42565b91505092915050565b60008060408385031215610df057610def610b7a565b5b600083013567ffffffffffffffff811115610e0e57610e0d610b7f565b5b610e1a85828601610dab565b9250506020610e2b85828601610bcd565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610e6a81610ba4565b82525050565b6000610e7c8383610e61565b60208301905092915050565b6000602082019050919050565b6000610ea082610e35565b610eaa8185610e40565b9350610eb583610e51565b8060005b83811015610ee6578151610ecd8882610e70565b9750610ed883610e88565b925050600181019050610eb9565b5085935050505092915050565b60006020820190508181036000830152610f0d8184610e95565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610f4a81610c22565b82525050565b604082016000820151610f666000850182610e61565b506020820151610f796020850182610f41565b50505050565b6000610f8b8383610f50565b60408301905092915050565b6000602082019050919050565b6000610faf82610f15565b610fb98185610f20565b9350610fc483610f31565b8060005b83811015610ff5578151610fdc8882610f7f565b9750610fe783610f97565b925050600181019050610fc8565b5085935050505092915050565b6000602082019050818103600083015261101c8184610fa4565b905092915050565b61102d81610c22565b811461103857600080fd5b50565b60008135905061104a81611024565b92915050565b60008060006060848603121561106957611068610b7a565b5b600061107786828701610bcd565b935050602061108886828701610bcd565b92505060406110998682870161103b565b9150509250925092565b60006040820190506110b86000830185610c56565b6110c56020830184610c56565b9392505050565b600069ffffffffffffffffffff82169050919050565b6110eb816110cc565b81146110f657600080fd5b50565b600081519050611108816110e2565b92915050565b6000819050919050565b6111218161110e565b811461112c57600080fd5b50565b60008151905061113e81611118565b92915050565b60008151905061115381611024565b92915050565b600080600080600060a0868803121561117557611174610b7a565b5b6000611183888289016110f9565b95505060206111948882890161112f565b94505060406111a588828901611144565b93505060606111b688828901611144565b92505060806111c7888289016110f9565b9150509295509295909350565b6000815190506111e381610bb6565b92915050565b6000602082840312156111ff576111fe610b7a565b5b600061120d848285016111d4565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061127f82610c22565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156112b2576112b1611245565b5b600182019050919050565b6000602082840312156112d3576112d2610b7a565b5b60006112e184828501611144565b91505092915050565b60006040820190506112ff6000830185610c2c565b81810360208301526113118184610e95565b90509392505050565b600067ffffffffffffffff82111561133557611334610c96565b5b602082029050602081019050919050565b60006113596113548461131a565b610cf6565b9050808382526020820190506020840283018581111561137c5761137b610d3d565b5b835b818110156113a557806113918882611144565b84526020840193505060208101905061137e565b5050509392505050565b600082601f8301126113c4576113c3610c80565b5b81516113d4848260208601611346565b91505092915050565b6000602082840312156113f3576113f2610b7a565b5b600082015167ffffffffffffffff81111561141157611410610b7f565b5b61141d848285016113af565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061146082610c22565b915061146b83610c22565b92508261147b5761147a611426565b5b828204905092915050565b600061149182610c22565b915061149c83610c22565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156114d5576114d4611245565b5b828202905092915050565b600082825260208201905092915050565b7f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000600082015250565b60006115276014836114e0565b9150611532826114f1565b602082019050919050565b600060208201905081810360008301526115568161151a565b905091905056fea26469706673582212204dd2904bb989d090782bf3f241958a62ad0932cd2f0477d18de939cce4f6ba3064736f6c63430008090033000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000047fb2585d2c56fe188d0e6ec628a38b74fceeedf