0x608060405234801561001057600080fd5b50615c4180620000216000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80637b634b01116100f9578063af79b2a611610097578063b7ae7e3911610071578063b7ae7e39146104e8578063c6dbdf6114610504578063dd62ed3e14610522578063f887ea4014610552576101a9565b8063af79b2a61461046c578063b4d8b8c81461049c578063b6b55f25146104b8576101a9565b80639d3c8cc4116100d35780639d3c8cc4146103e2578063a6f19c8414610400578063a8aa1b311461041e578063a9059cbb1461043c576101a9565b80637b634b011461036457806391c75a2e1461039457806395d89b41146103c4576101a9565b8063313ce56711610166578063432075461161014057806343207546146102ca57806361a84ef0146102fa57806370a08231146103185780637a57a98414610348576101a9565b8063313ce56714610298578063380d0c08146102b65780633bd1adec146102c0576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101fc578063228cb7331461021a57806323b872dd146102385780632e1a7d4d14610268575b600080fd5b6101b6610570565b6040516101c39190614282565b60405180910390f35b6101e660048036038101906101e1919061434c565b610611565b6040516101f391906143a7565b60405180910390f35b610204610634565b60405161021191906143d1565b60405180910390f35b61022261064c565b60405161022f919061444b565b60405180910390f35b610252600480360381019061024d9190614466565b610672565b60405161025f91906143a7565b60405180910390f35b610282600480360381019061027d91906144b9565b6106a1565b60405161028f91906143d1565b60405180910390f35b6102a0610880565b6040516102ad9190614502565b60405180910390f35b6102be610889565b005b6102c8610cf8565b005b6102e460048036038101906102df91906144b9565b610d80565b6040516102f191906143d1565b60405180910390f35b610302610f35565b60405161030f91906143d1565b60405180910390f35b610332600480360381019061032d919061451d565b610ffd565b60405161033f91906143d1565b60405180910390f35b610362600480360381019061035d9190614576565b611054565b005b61037e600480360381019061037991906145b6565b61112b565b60405161038b91906143d1565b60405180910390f35b6103ae60048036038101906103a991906144b9565b6112d5565b6040516103bb91906143d1565b60405180910390f35b6103cc61130e565b6040516103d99190614282565b60405180910390f35b6103ea6113af565b6040516103f7919061444b565b60405180910390f35b6104086113d5565b6040516104159190614617565b60405180910390f35b6104266113fb565b6040516104339190614653565b60405180910390f35b6104566004803603810190610451919061434c565b611421565b60405161046391906143a7565b60405180910390f35b6104866004803603810190610481919061451d565b611444565b60405161049391906143d1565b60405180910390f35b6104b660048036038101906104b19190614a8d565b61148b565b005b6104d260048036038101906104cd91906144b9565b61164c565b6040516104df91906143d1565b60405180910390f35b61050260048036038101906104fd9190614b6e565b611826565b005b61050c611b33565b604051610519919061444b565b60405180910390f35b61053c60048036038101906105379190614bae565b611b57565b60405161054991906143d1565b60405180910390f35b61055a611bec565b6040516105679190614c0f565b60405180910390f35b6060600061057c611c12565b905080600301805461058d90614c59565b80601f01602080910402602001604051908101604052809291908181526020018280546105b990614c59565b80156106065780601f106105db57610100808354040283529160200191610606565b820191906000526020600020905b8154815290600101906020018083116105e957829003601f168201915b505050505091505090565b60008061061c611c3a565b9050610629818585611c42565b600191505092915050565b60008061063f611c12565b9050806002015491505090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061067d611c3a565b905061068a858285611c54565b610695858585611ce8565b60019150509392505050565b60006106ab611ddc565b6106ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e190614cd6565b60405180910390fd5b6000821161072d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072490614d42565b60405180910390fd5b6000610737610634565b90506000610743611c3a565b905061074f8185611e37565b600061075b8584611eb9565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016107b8929190614d71565b6020604051808303816000875af11580156107d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fb9190614daf565b61083a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083190614e28565b60405180910390fd5b7ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56882828760405161086d93929190614e48565b60405180910390a1809350505050919050565b60006012905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610926929190614d71565b6020604051808303816000875af1158015610945573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109699190614daf565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610a09929190614d71565b6020604051808303816000875af1158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c9190614daf565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610aec929190614d71565b6020604051808303816000875af1158015610b0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2f9190614daf565b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610bcf929190614d71565b6020604051808303816000875af1158015610bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c129190614daf565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610cb2929190614d71565b6020604051808303816000875af1158015610cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf59190614daf565b50565b600073ffffffffffffffffffffffffffffffffffffffff16610d186121a0565b73ffffffffffffffffffffffffffffffffffffffff1614610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6590614ecb565b60405180910390fd5b610d7e610d79611c3a565b6121c9565b565b6000610d8a611ddc565b610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090614cd6565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd610e0f611c3a565b30856040518463ffffffff1660e01b8152600401610e2f93929190614eeb565b6020604051808303816000875af1158015610e4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e729190614daf565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25836040518263ffffffff1660e01b8152600401610ece91906143d1565b600060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050506000610f0b83612256565b90506000610f1882612285565b9050610f2b610f25611c3a565b82612306565b8092505050919050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f939190614f22565b602060405180830381865afa158015610fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd49190614f52565b90506000610fe0612388565b9050610ff68183610ff19190614fae565b61242a565b9250505090565b600080611008611c12565b90508060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915050919050565b61105c6121a0565b73ffffffffffffffffffffffffffffffffffffffff1661107a611c3a565b73ffffffffffffffffffffffffffffffffffffffff16146110d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c79061502e565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611135611ddc565b611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b90614cd6565b60405180910390fd5b61117f606480612503565b50506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111de9190614f22565b602060405180830381865afa1580156111fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121f9190614f52565b9050600061122c82612897565b905081858261123b919061504e565b101561127c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611273906150dc565b60405180910390fd5b818482611289919061504e565b11156112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c190615148565b60405180910390fd5b809250505092915050565b6000806112e0610634565b905060006112ec612a86565b90508184826112fb919061504e565b6113059190615197565b92505050919050565b6060600061131a611c12565b905080600401805461132b90614c59565b80601f016020809104026020016040519081016040528092919081815260200182805461135790614c59565b80156113a45780601f10611379576101008083540402835291602001916113a4565b820191906000526020600020905b81548152906001019060200180831161138757829003601f168201915b505050505091505090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061142c611c3a565b9050611439818585611ce8565b600191505092915050565b60008061144f610634565b9050600061145c84610ffd565b90506000611468612a86565b9050828282611477919061504e565b6114819190615197565b9350505050919050565b6000611495612ac9565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156114e35750825b9050600060018367ffffffffffffffff16148015611518575060003073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015611526575080155b1561155d576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156115ad5760018560000160086101000a81548160ff0219169083151502179055505b6115b5612af1565b6115bf8b8b612afb565b6115c889612b38565b6115d28888612b83565b6115db86612c11565b6115e3610889565b831561163f5760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516116369190615217565b60405180910390a15b5050505050505050505050565b6000611656611ddc565b611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c90614cd6565b60405180910390fd5b600082116116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf90614d42565b60405180910390fd5b60006116e2611c3a565b905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8230866040518463ffffffff1660e01b815260040161174193929190614eeb565b6020604051808303816000875af1158015611760573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117849190614daf565b6117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba90614e28565b60405180910390fd5b60006117ce84612e32565b90506117e16117db611c3a565b82612306565b7f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1582858360405161181493929190614e48565b60405180910390a18092505050919050565b61182e611ddc565b61186d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186490614cd6565b60405180910390fd5b811561191f576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118d09190614f22565b602060405180830381865afa1580156118ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119119190614f52565b905061191c81612897565b50505b80801561197b5750600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611a3d57611988612e74565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119e59190614f22565b602060405180830381865afa158015611a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a269190614f52565b905060008114611a3b57611a3981612ef8565b505b505b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611a999190614f22565b602060405180830381865afa158015611ab6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ada9190614f52565b9050611ae581612fdf565b50507fe28fc2e419a96cb2e6a0e057d8ce7fc6a5d98e152ca5819d79b1b4d15c3cf6d1611b10612a86565b611b18610634565b604051611b26929190615232565b60405180910390a1505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611b62611c12565b90508060010160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00905090565b600033905090565b611c4f838383600161302a565b505050565b6000611c608484611b57565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611ce25781811015611cd2578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401611cc993929190614e48565b60405180910390fd5b611ce18484848403600061302a565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d5a5760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611d519190614f22565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dcc5760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611dc39190614f22565b60405180910390fd5b611dd7838383613210565b505050565b600060086000611dea611c3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ea95760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611ea09190614f22565b60405180910390fd5b611eb582600083613210565b5050565b600080828460008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611f179190614f22565b602060405180830381865afa158015611f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f589190614f52565b611f62919061504e565b611f6c9190615197565b905060008385600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611fcd9190614f22565b602060405180830381865afa158015611fea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200e9190614f52565b612018919061504e565b6120229190615197565b90506000806120318787612503565b9150915081846120419190614fae565b945061205781846120529190614fae565b612897565b856120629190614fae565b9450600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612196576120c2612e74565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161211f9190614f22565b602060405180830381865afa15801561213c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121609190614f52565b90506000878983612171919061504e565b61217b9190615197565b905061218681612ef8565b876121919190614fae565b965050505b5050505092915050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354905090565b60006121d36121a0565b9050817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103558173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060006122648461344f565b91509150612271816136a4565b8261227c9190614fae565b92505050919050565b600080612290610634565b9050600081036122c7576122a261376d565b670de0b6b3a7640000846122b6919061504e565b6122c09190615197565b9150612300565b60006122d1612a86565b905083816122df919061525b565b6122e7610634565b856122f2919061504e565b6122fc9190615197565b9250505b50919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123785760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161236f9190614f22565b60405180910390fd5b61238460008383613210565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16628cc262306040518263ffffffff1660e01b81526004016123e49190614f22565b602060405180830381865afa158015612401573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124259190614f52565b905090565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639881fcb48460076040518363ffffffff1660e01b815260040161248b929190615439565b600060405180830381865afa1580156124a8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906124d1919061552c565b905080600182516124e2919061525b565b815181106124f3576124f2615575565b5b6020026020010151915050919050565b60008060008385600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125659190614f22565b602060405180830381865afa158015612582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a69190614f52565b6125b0919061504e565b6125ba9190615197565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040161261791906143d1565b600060405180830381600087803b15801561263157600080fd5b505af1158015612645573d6000803e3d6000fd5b50505050600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634386e63c60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560149054906101000a900460ff16876040518563ffffffff1660e01b81526004016126fe94939291906155a4565b6040805180830381865afa15801561271a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273e91906155e9565b9150915060006103e86103e784612755919061504e565b61275f9190615197565b905060006103e86103e784612774919061504e565b61277e9190615197565b9050600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dede6c460008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560149054906101000a900460ff168b898930426040518963ffffffff1660e01b815260040161283d989796959493929190615629565b60408051808303816000875af115801561285b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287f91906155e9565b91509150819850809750505050505050509250929050565b600080600167ffffffffffffffff8111156128b5576128b4614678565b5b6040519080825280602002602001820160405280156128ee57816020015b6128db6141a3565b8152602001906001900390816128d35790505b5090506040518060600160405280600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600560149054906101000a900460ff1615158152508160008151811061299f5761299e615575565b5b60200260200101819052506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d8856129f4876136a4565b8530426040518663ffffffff1660e01b8152600401612a17959493929190615787565b6000604051808303816000875af1158015612a36573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190612a5f919061552c565b905080600181518110612a7557612a74615575565b5b602002602001015192505050919050565b600080600080612a94613777565b925092509250612aa38161242a565b612aac836136a4565b84612ab79190614fae565b612ac19190614fae565b935050505090565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b612af961390c565b565b612b0361390c565b6000612b0d611c12565b905082816003019081612b209190615983565b5081816004019081612b329190615983565b50505050565b612b4061390c565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612b8b61390c565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b612c1961390c565b8060000151600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060200151600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060400151600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606001516006819055508060800151600560146101000a81548160ff02191690831515021790555060005b8160a0015151811015612e2e5760008260a001518281518110612d3a57612d39615575565b5b60200260200101519050600781908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff0219169083151502179055505050508080600101915050612d14565b5050565b6000806000612e4084612fdf565b91509150612e6b612e50826136a4565b8386612e5c919061525b565b612e669190614fae565b612285565b92505050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612ede57600080fd5b505af1158015612ef2573d6000803e3d6000fd5b50505050565b600080612f048361242a565b90506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d88584600730426040518663ffffffff1660e01b8152600401612f6c959493929190615a55565b6000604051808303816000875af1158015612f8b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190612fb4919061552c565b90508060078054905081518110612fce57612fcd615575565b5b602002602001015192505050919050565b6000806000831461301c57612ff38361394c565b9150612ffe826139b8565b9050613015828461300f919061525b565b82613b6f565b5050613025565b60009150600090505b915091565b6000613034611c12565b9050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036130a85760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161309f9190614f22565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361311a5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016131119190614f22565b60405180910390fd5b828160010160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508115613209578373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161320091906143d1565b60405180910390a35b5050505050565b600061321a611c12565b9050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361327057818160020160008282546132649190614fae565b92505081905550613349565b60008160000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156132ff578481846040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016132f693929190614e48565b60405180910390fd5b8281038260000160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613394578181600201600082825403925050819055506133e4565b818160000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161344191906143d1565b60405180910390a350505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016134d09190614f22565b602060405180830381865afa1580156134ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135119190614f52565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016135929190614f22565b602060405180830381865afa1580156135af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135d39190614f52565b90506000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613644573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136689190614f52565b9050808387613677919061504e565b6136819190615197565b9450808287613690919061504e565b61369a9190615197565b9350505050915091565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f140a35a83600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401613725929190615aaf565b602060405180830381865afa158015613742573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137669190614f52565b9050919050565b6000600654905090565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016137d69190614f22565b602060405180830381865afa1580156137f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138179190614f52565b90506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016138769190614f22565b602060405180830381865afa158015613893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138b79190614f52565b90506000806138c4613e4f565b915091506000806138d3613f08565b9150915083866138e39190614fae565b985082856138f19190614fae565b975080826138ff9190614fae565b9650505050505050909192565b61391461401b565b61394a576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60008061395761376d565b905060006139648261403b565b9050600080613971614102565b9150915080848484613983919061504e565b61398d9190615197565b6139979190614fae565b81876139a3919061504e565b6139ad9190615197565b945050505050919050565b600080fd5b6139c56141a3565b8152602001906001900390816139bd579050509050604051806060016040528060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600560149054906101000a900460ff16151581525081600081518110613a8857613a87615575565b5b60200260200101819052506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f41766d885613add8761403b565b8530426040518663ffffffff1660e01b8152600401613b00959493929190615787565b6000604051808303816000875af1158015613b1f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190613b48919061552c565b905080600181518110613b5e57613b5d615575565b5b602002602001015192505050919050565b6000806000600560149054906101000a900460ff169050600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166398a0fb3c60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868b8b6040518663ffffffff1660e01b8152600401613c2e959493929190615ad8565b606060405180830381865afa158015613c4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c6f9190615b2b565b509150915060006103e86103e784613c87919061504e565b613c919190615197565b905060006103e86103e784613ca6919061504e565b613cb09190615197565b90506000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635a47ddc360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b8b8b8b8b30426040518a63ffffffff1660e01b8152600401613d6499989796959493929190615b7e565b6060604051808303816000875af1158015613d83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613da79190615b2b565b925092509250829950819850600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b8152600401613e0e91906143d1565b600060405180830381600087803b158015613e2857600080fd5b505af1158015613e3c573d6000803e3d6000fd5b5050505050505050505050509250929050565b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613eaf9190614f22565b602060405180830381865afa158015613ecc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ef09190614f52565b9050613efb8161344f565b8093508194505050509091565b600080600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603613f6e576000915060009050614017565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613fc99190614f22565b602060405180830381865afa158015613fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061400a9190614f52565b9150614014612388565b90505b9091565b6000614025612ac9565b60000160089054906101000a900460ff16905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f140a35a8360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016140ba929190615aaf565b602060405180830381865afa1580156140d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140fb9190614f52565b9050919050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015614172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141969190615b2b565b5080925081935050509091565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561422c578082015181840152602081019050614211565b60008484015250505050565b6000601f19601f8301169050919050565b6000614254826141f2565b61425e81856141fd565b935061426e81856020860161420e565b61427781614238565b840191505092915050565b6000602082019050818103600083015261429c8184614249565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006142e3826142b8565b9050919050565b6142f3816142d8565b81146142fe57600080fd5b50565b600081359050614310816142ea565b92915050565b6000819050919050565b61432981614316565b811461433457600080fd5b50565b60008135905061434681614320565b92915050565b60008060408385031215614363576143626142ae565b5b600061437185828601614301565b925050602061438285828601614337565b9150509250929050565b60008115159050919050565b6143a18161438c565b82525050565b60006020820190506143bc6000830184614398565b92915050565b6143cb81614316565b82525050565b60006020820190506143e660008301846143c2565b92915050565b6000819050919050565b600061441161440c614407846142b8565b6143ec565b6142b8565b9050919050565b6000614423826143f6565b9050919050565b600061443582614418565b9050919050565b6144458161442a565b82525050565b6000602082019050614460600083018461443c565b92915050565b60008060006060848603121561447f5761447e6142ae565b5b600061448d86828701614301565b935050602061449e86828701614301565b92505060406144af86828701614337565b9150509250925092565b6000602082840312156144cf576144ce6142ae565b5b60006144dd84828501614337565b91505092915050565b600060ff82169050919050565b6144fc816144e6565b82525050565b600060208201905061451760008301846144f3565b92915050565b600060208284031215614533576145326142ae565b5b600061454184828501614301565b91505092915050565b6145538161438c565b811461455e57600080fd5b50565b6000813590506145708161454a565b92915050565b6000806040838503121561458d5761458c6142ae565b5b600061459b85828601614301565b92505060206145ac85828601614561565b9150509250929050565b600080604083850312156145cd576145cc6142ae565b5b60006145db85828601614337565b92505060206145ec85828601614337565b9150509250929050565b600061460182614418565b9050919050565b614611816145f6565b82525050565b600060208201905061462c6000830184614608565b92915050565b600061463d82614418565b9050919050565b61464d81614632565b82525050565b60006020820190506146686000830184614644565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6146b082614238565b810181811067ffffffffffffffff821117156146cf576146ce614678565b5b80604052505050565b60006146e26142a4565b90506146ee82826146a7565b919050565b600067ffffffffffffffff82111561470e5761470d614678565b5b61471782614238565b9050602081019050919050565b82818337600083830152505050565b6000614746614741846146f3565b6146d8565b90508281526020810184848401111561476257614761614673565b5b61476d848285614724565b509392505050565b600082601f83011261478a5761478961466e565b5b813561479a848260208601614733565b91505092915050565b60006147ae826142d8565b9050919050565b6147be816147a3565b81146147c957600080fd5b50565b6000813590506147db816147b5565b92915050565b600080fd5b600080fd5b60006147f6826142d8565b9050919050565b614806816147eb565b811461481157600080fd5b50565b600081359050614823816147fd565b92915050565b6000614834826142d8565b9050919050565b61484481614829565b811461484f57600080fd5b50565b6000813590506148618161483b565b92915050565b6000614872826142d8565b9050919050565b61488281614867565b811461488d57600080fd5b50565b60008135905061489f81614879565b92915050565b600067ffffffffffffffff8211156148c0576148bf614678565b5b602082029050602081019050919050565b600080fd5b6000606082840312156148ec576148eb6147e1565b5b6148f660606146d8565b9050600061490684828501614301565b600083015250602061491a84828501614301565b602083015250604061492e84828501614561565b60408301525092915050565b600061494d614948846148a5565b6146d8565b905080838252602082019050606084028301858111156149705761496f6148d1565b5b835b81811015614999578061498588826148d6565b845260208401935050606081019050614972565b5050509392505050565b600082601f8301126149b8576149b761466e565b5b81356149c884826020860161493a565b91505092915050565b600060c082840312156149e7576149e66147e1565b5b6149f160c06146d8565b90506000614a0184828501614814565b6000830152506020614a1584828501614852565b6020830152506040614a2984828501614890565b6040830152506060614a3d84828501614337565b6060830152506080614a5184828501614561565b60808301525060a082013567ffffffffffffffff811115614a7557614a746147e6565b5b614a81848285016149a3565b60a08301525092915050565b60008060008060008060c08789031215614aaa57614aa96142ae565b5b600087013567ffffffffffffffff811115614ac857614ac76142b3565b5b614ad489828a01614775565b965050602087013567ffffffffffffffff811115614af557614af46142b3565b5b614b0189828a01614775565b9550506040614b1289828a016147cc565b9450506060614b2389828a016147cc565b9350506080614b3489828a016147cc565b92505060a087013567ffffffffffffffff811115614b5557614b546142b3565b5b614b6189828a016149d1565b9150509295509295509295565b60008060408385031215614b8557614b846142ae565b5b6000614b9385828601614561565b9250506020614ba485828601614561565b9150509250929050565b60008060408385031215614bc557614bc46142ae565b5b6000614bd385828601614301565b9250506020614be485828601614301565b9150509250929050565b6000614bf982614418565b9050919050565b614c0981614bee565b82525050565b6000602082019050614c246000830184614c00565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614c7157607f821691505b602082108103614c8457614c83614c2a565b5b50919050565b7f4e6f745573657200000000000000000000000000000000000000000000000000600082015250565b6000614cc06007836141fd565b9150614ccb82614c8a565b602082019050919050565b60006020820190508181036000830152614cef81614cb3565b9050919050565b7f5a65726f20616d6f756e74000000000000000000000000000000000000000000600082015250565b6000614d2c600b836141fd565b9150614d3782614cf6565b602082019050919050565b60006020820190508181036000830152614d5b81614d1f565b9050919050565b614d6b816142d8565b82525050565b6000604082019050614d866000830185614d62565b614d9360208301846143c2565b9392505050565b600081519050614da98161454a565b92915050565b600060208284031215614dc557614dc46142ae565b5b6000614dd384828501614d9a565b91505092915050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b6000614e12600f836141fd565b9150614e1d82614ddc565b602082019050919050565b60006020820190508181036000830152614e4181614e05565b9050919050565b6000606082019050614e5d6000830186614d62565b614e6a60208301856143c2565b614e7760408301846143c2565b949350505050565b7f6f776e657220616c726561647920736574000000000000000000000000000000600082015250565b6000614eb56011836141fd565b9150614ec082614e7f565b602082019050919050565b60006020820190508181036000830152614ee481614ea8565b9050919050565b6000606082019050614f006000830186614d62565b614f0d6020830185614d62565b614f1a60408301846143c2565b949350505050565b6000602082019050614f376000830184614d62565b92915050565b600081519050614f4c81614320565b92915050565b600060208284031215614f6857614f676142ae565b5b6000614f7684828501614f3d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614fb982614316565b9150614fc483614316565b9250828201905080821115614fdc57614fdb614f7f565b5b92915050565b7f4e4f545f415554484f52495a4544000000000000000000000000000000000000600082015250565b6000615018600e836141fd565b915061502382614fe2565b602082019050919050565b600060208201905081810360008301526150478161500b565b9050919050565b600061505982614316565b915061506483614316565b925082820261507281614316565b9150828204841483151761508957615088614f7f565b5b5092915050565b7f6d696e696d616c20707269636500000000000000000000000000000000000000600082015250565b60006150c6600d836141fd565b91506150d182615090565b602082019050919050565b600060208201905081810360008301526150f5816150b9565b9050919050565b7f6d6178696d616c20707269636500000000000000000000000000000000000000600082015250565b6000615132600d836141fd565b915061513d826150fc565b602082019050919050565b6000602082019050818103600083015261516181615125565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006151a282614316565b91506151ad83614316565b9250826151bd576151bc615168565b5b828204905092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b60006152016151fc6151f7846151c8565b6143ec565b6151d2565b9050919050565b615211816151e6565b82525050565b600060208201905061522c6000830184615208565b92915050565b600060408201905061524760008301856143c2565b61525460208301846143c2565b9392505050565b600061526682614316565b915061527183614316565b925082820390508181111561528957615288614f7f565b5b92915050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008160001c9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006153006152fb836152c0565b6152cd565b9050919050565b615310816142d8565b82525050565b60008160a01c9050919050565b600060ff82169050919050565b600061534361533e83615316565b615323565b9050919050565b6153538161438c565b82525050565b60608201600080830154905061536e816152ed565b61537b6000860182615307565b506001830154905061538c816152ed565b6153996020860182615307565b506153a381615330565b6153b0604086018261534a565b5050505050565b60006153c38383615359565b60608301905092915050565b6000600282019050919050565b60006153e78261528f565b6153f1818561529a565b93506153fc836152ab565b8060005b8381101561542c578161541388826153b7565b975061541e836153cf565b925050600181019050615400565b5085935050505092915050565b600060408201905061544e60008301856143c2565b818103602083015261546081846153dc565b90509392505050565b600067ffffffffffffffff82111561548457615483614678565b5b602082029050602081019050919050565b60006154a86154a384615469565b6146d8565b905080838252602082019050602084028301858111156154cb576154ca6148d1565b5b835b818110156154f457806154e08882614f3d565b8452602084019350506020810190506154cd565b5050509392505050565b600082601f8301126155135761551261466e565b5b8151615523848260208601615495565b91505092915050565b600060208284031215615542576155416142ae565b5b600082015167ffffffffffffffff8111156155605761555f6142b3565b5b61556c848285016154fe565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006080820190506155b96000830187614d62565b6155c66020830186614d62565b6155d36040830185614398565b6155e060608301846143c2565b95945050505050565b60008060408385031215615600576155ff6142ae565b5b600061560e85828601614f3d565b925050602061561f85828601614f3d565b9150509250929050565b60006101008201905061563f600083018b614d62565b61564c602083018a614d62565b6156596040830189614398565b61566660608301886143c2565b61567360808301876143c2565b61568060a08301866143c2565b61568d60c0830185614d62565b61569a60e08301846143c2565b9998505050505050505050565b600081519050919050565b6000819050602082019050919050565b6060820160008201516156d86000850182615307565b5060208201516156eb6020850182615307565b5060408201516156fe604085018261534a565b50505050565b600061571083836156c2565b60608301905092915050565b6000602082019050919050565b6000615734826156a7565b61573e818561529a565b9350615749836156b2565b8060005b8381101561577a5781516157618882615704565b975061576c8361571c565b92505060018101905061574d565b5085935050505092915050565b600060a08201905061579c60008301886143c2565b6157a960208301876143c2565b81810360408301526157bb8186615729565b90506157ca6060830185614d62565b6157d760808301846143c2565b9695505050505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026158437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82615806565b61584d8683615806565b95508019841693508086168417925050509392505050565b600061588061587b61587684614316565b6143ec565b614316565b9050919050565b6000819050919050565b61589a83615865565b6158ae6158a682615887565b848454615813565b825550505050565b600090565b6158c36158b6565b6158ce818484615891565b505050565b5b818110156158f2576158e76000826158bb565b6001810190506158d4565b5050565b601f82111561593757615908816157e1565b615911846157f6565b81016020851015615920578190505b61593461592c856157f6565b8301826158d3565b50505b505050565b600082821c905092915050565b600061595a6000198460080261593c565b1980831691505092915050565b60006159738383615949565b9150826002028217905092915050565b61598c826141f2565b67ffffffffffffffff8111156159a5576159a4614678565b5b6159af8254614c59565b6159ba8282856158f6565b600060209050601f8311600181146159ed57600084156159db578287015190505b6159e58582615967565b865550615a4d565b601f1984166159fb866157e1565b60005b82811015615a23578489015182556001820191506020850194506020810190506159fe565b86831015615a405784890151615a3c601f891682615949565b8355505b6001600288020188555050505b505050505050565b600060a082019050615a6a60008301886143c2565b615a7760208301876143c2565b8181036040830152615a8981866153dc565b9050615a986060830185614d62565b615aa560808301846143c2565b9695505050505050565b6000604082019050615ac460008301856143c2565b615ad16020830184614d62565b9392505050565b600060a082019050615aed6000830188614d62565b615afa6020830187614d62565b615b076040830186614398565b615b1460608301856143c2565b615b2160808301846143c2565b9695505050505050565b600080600060608486031215615b4457615b436142ae565b5b6000615b5286828701614f3d565b9350506020615b6386828701614f3d565b9250506040615b7486828701614f3d565b9150509250925092565b600061012082019050615b94600083018c614d62565b615ba1602083018b614d62565b615bae604083018a614398565b615bbb60608301896143c2565b615bc860808301886143c2565b615bd560a08301876143c2565b615be260c08301866143c2565b615bef60e0830185614d62565b615bfd6101008301846143c2565b9a995050505050505050505056fea26469706673582212205fe5c8afd84d77ad78b394220ffbb5ef65eddc0d4e7db9ad3979ce991d6b17b464736f6c63430008180033