608060405242600c55348015610013575f5ffd5b50336040518060400160405280600881526020017f4e465420546573740000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4e46540000000000000000000000000000000000000000000000000000000000815250815f908161008f9190610442565b50806001908161009f9190610442565b5050505f600a5f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361012b575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101229190610550565b60405180910390fd5b61013a8161014060201b60201c565b50610569565b5f600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061028057607f821691505b6020821081036102935761029261023c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102f57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102ba565b6102ff86836102ba565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61034361033e61033984610317565b610320565b610317565b9050919050565b5f819050919050565b61035c83610329565b6103706103688261034a565b8484546102c6565b825550505050565b5f5f905090565b610387610378565b610392818484610353565b505050565b5b818110156103b5576103aa5f8261037f565b600181019050610398565b5050565b601f8211156103fa576103cb81610299565b6103d4846102ab565b810160208510156103e3578190505b6103f76103ef856102ab565b830182610397565b50505b505050565b5f82821c905092915050565b5f61041a5f19846008026103ff565b1980831691505092915050565b5f610432838361040b565b9150826002028217905092915050565b61044b82610205565b67ffffffffffffffff8111156104645761046361020f565b5b61046e8254610269565b6104798282856103b9565b5f60209050601f8311600181146104aa575f8415610498578287015190505b6104a28582610427565b865550610509565b601f1984166104b886610299565b5f5b828110156104df578489015182556001820191506020850194506020810190506104ba565b868310156104fc57848901516104f8601f89168261040b565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61053a82610511565b9050919050565b61054a81610530565b82525050565b5f6020820190506105635f830184610541565b92915050565b6130a7806105765f395ff3fe608060405234801561000f575f5ffd5b50600436106101c2575f3560e01c80636352211e116100f7578063a22cb46511610095578063c87b56dd1161006f578063c87b56dd146104ca578063d877ea56146104fa578063e985e9c514610518578063f2fde38b14610548576101c2565b8063a22cb46514610462578063ad1def421461047e578063b88d4fde146104ae576101c2565b80638456cb59116100d15780638456cb59146103ec5780638da5cb5b146103f657806395d89b411461041457806399b956a014610432576101c2565b80636352211e1461038257806370a08231146103b2578063715018a6146103e2576101c2565b806326092b831161016457806342842e0e1161013e57806342842e0e1461030e5780634f6ccce71461032a578063531759a51461035a5780635c975abb14610364576101c2565b806326092b83146102ca5780632f745c59146102d45780633f4ba83a14610304576101c2565b8063095ea7b3116101a0578063095ea7b3146102445780630e5d075f1461026057806318160ddd1461029057806323b872dd146102ae576101c2565b806301ffc9a7146101c657806306fdde03146101f6578063081812fc14610214575b5f5ffd5b6101e060048036038101906101db91906126af565b610564565b6040516101ed91906126f4565b60405180910390f35b6101fe610575565b60405161020b919061277d565b60405180910390f35b61022e600480360381019061022991906127d0565b610604565b60405161023b919061283a565b60405180910390f35b61025e6004803603810190610259919061287d565b61061f565b005b61027a600480360381019061027591906128bb565b610635565b604051610287919061299d565b60405180910390f35b6102986106cb565b6040516102a591906129cc565b60405180910390f35b6102c860048036038101906102c391906129e5565b6106d7565b005b6102d26107d6565b005b6102ee60048036038101906102e9919061287d565b610a86565b6040516102fb91906129cc565b60405180910390f35b61030c610b2a565b005b610328600480360381019061032391906129e5565b610b3c565b005b610344600480360381019061033f91906127d0565b610b5b565b60405161035191906129cc565b60405180910390f35b610362610bcd565b005b61036c610bea565b60405161037991906126f4565b60405180910390f35b61039c600480360381019061039791906127d0565b610bff565b6040516103a9919061283a565b60405180910390f35b6103cc60048036038101906103c791906128bb565b610c10565b6040516103d991906129cc565b60405180910390f35b6103ea610cc6565b005b6103f4610cd9565b005b6103fe610ceb565b60405161040b919061283a565b60405180910390f35b61041c610d14565b604051610429919061277d565b60405180910390f35b61044c600480360381019061044791906128bb565b610da4565b604051610459919061283a565b60405180910390f35b61047c60048036038101906104779190612a5f565b610ddd565b005b610498600480360381019061049391906128bb565b610df3565b6040516104a591906126f4565b60405180910390f35b6104c860048036038101906104c39190612bc9565b610e10565b005b6104e460048036038101906104df91906127d0565b610e2d565b6040516104f1919061277d565b60405180910390f35b610502610e93565b60405161050f91906129cc565b60405180910390f35b610532600480360381019061052d9190612c49565b610e99565b60405161053f91906126f4565b60405180910390f35b610562600480360381019061055d91906128bb565b610f27565b005b5f61056e82610fab565b9050919050565b60605f805461058390612cb4565b80601f01602080910402602001604051908101604052809291908181526020018280546105af90612cb4565b80156105fa5780601f106105d1576101008083540402835291602001916105fa565b820191905f5260205f20905b8154815290600101906020018083116105dd57829003601f168201915b5050505050905090565b5f61060e82611024565b50610618826110aa565b9050919050565b610631828261062c6110e3565b6110ea565b5050565b6060600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001018054806020026020016040519081016040528092919081815260200182805480156106bf57602002820191905f5260205f20905b8154815260200190600101908083116106ab575b50505050509050919050565b5f600880549050905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610747575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161073e919061283a565b60405180910390fd5b5f61075a83836107556110e3565b6110fc565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146107d0578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016107c793929190612ce4565b60405180910390fd5b50505050565b6107df33611111565b61081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081590612d63565b60405180910390fd5b600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166109a95733600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101600c54908060018154018082558091505060019003905f5260205f20015f90919091909150556001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610a10565b600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101600c54908060018154018082558091505060019003905f5260205f20015f90919091909150555b5f600b5f815480929190610a2390612dae565b919050559050610a333382611163565b3373ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885600c54604051610a7b91906129cc565b60405180910390a250565b5f610a9083610c10565b8210610ad55782826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610acc929190612df5565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b610b32611180565b610b3a611207565b565b610b5683838360405180602001604052805f815250610e10565b505050565b5f610b646106cb565b8210610ba9575f826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610ba0929190612df5565b60405180910390fd5b60088281548110610bbd57610bbc612e1c565b5b905f5260205f2001549050919050565b62015180600c5f828254610be19190612e49565b92505081905550565b5f600a5f9054906101000a900460ff16905090565b5f610c0982611024565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c81575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610c78919061283a565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cce611180565b610cd75f611268565b565b610ce1611180565b610ce961132d565b565b5f600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610d2390612cb4565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4f90612cb4565b8015610d9a5780601f10610d7157610100808354040283529160200191610d9a565b820191905f5260205f20905b815481529060010190602001808311610d7d57829003601f168201915b5050505050905090565b600d602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081565b610def610de86110e3565b838361138f565b5050565b600e602052805f5260405f205f915054906101000a900460ff1681565b610e1b8484846106d7565b610e27848484846114f8565b50505050565b6060610e3882611024565b505f610e426116aa565b90505f815111610e605760405180602001604052805f815250610e8b565b80610e6a846116c0565b604051602001610e7b929190612eb6565b6040516020818303038152906040525b915050919050565b600c5481565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b610f2f611180565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f9f575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610f96919061283a565b60405180910390fd5b610fa881611268565b50565b5f7f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061101d575061101c8261178a565b5b9050919050565b5f5f61102f8361186b565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110a157826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161109891906129cc565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6110f783838360016118a4565b505050565b5f611108848484611a63565b90509392505050565b5f5f61111c83611a80565b90505f810361112f57600191505061115e565b5f620151808261113f9190612f06565b90505f62015180600c546111539190612f06565b905081811193505050505b919050565b61117c828260405180602001604052805f815250611b86565b5050565b6111886110e3565b73ffffffffffffffffffffffffffffffffffffffff166111a6610ceb565b73ffffffffffffffffffffffffffffffffffffffff1614611205576111c96110e3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016111fc919061283a565b60405180910390fd5b565b61120f611ba1565b5f600a5f6101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6112516110e3565b60405161125e919061283a565b60405180910390a1565b5f600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611335611be1565b6001600a5f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113786110e3565b604051611385919061283a565b60405180910390a1565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ff57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016113f6919061283a565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114eb91906126f4565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b11156116a4578273ffffffffffffffffffffffffffffffffffffffff1663150b7a0261153b6110e3565b8685856040518563ffffffff1660e01b815260040161155d9493929190612f88565b6020604051808303815f875af192505050801561159857506040513d601f19601f820116820180604052508101906115959190612fe6565b60015b611619573d805f81146115c6576040519150601f19603f3d011682016040523d82523d5f602084013e6115cb565b606091505b505f81510361161157836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611608919061283a565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146116a257836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611699919061283a565b60405180910390fd5b505b50505050565b606060405180602001604052805f815250905090565b60605f60016116ce84611c22565b0190505f8167ffffffffffffffff8111156116ec576116eb612aa5565b5b6040519080825280601f01601f19166020018201604052801561171e5781602001600182028036833780820191505090505b5090505f82602001820190505b60011561177f578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161177457611773612ed9565b5b0494505f850361172b575b819350505050919050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061185457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611864575061186382611d73565b5b9050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806118dc57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a0e575f6118eb84611024565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561195557508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561196857506119668184610e99565b155b156119aa57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016119a1919061283a565b60405180910390fd5b8115611a0c57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b5f611a6c611be1565b611a77848484611ddc565b90509392505050565b5f5f600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101805490501115611b7d57600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001016001600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060010180549050611b5c9190613011565b81548110611b6d57611b6c612e1c565b5b905f5260205f2001549050611b81565b5f90505b919050565b611b908383611ef6565b611b9c5f8484846114f8565b505050565b611ba9610bea565b611bdf576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611be9610bea565b15611c20576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611c7e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611c7457611c73612ed9565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611cbb576d04ee2d6d415b85acef81000000008381611cb157611cb0612ed9565b5b0492506020810190505b662386f26fc100008310611cea57662386f26fc100008381611ce057611cdf612ed9565b5b0492506010810190505b6305f5e1008310611d13576305f5e1008381611d0957611d08612ed9565b5b0492506008810190505b6127108310611d38576127108381611d2e57611d2d612ed9565b5b0492506004810190505b60648310611d5b5760648381611d5157611d50612ed9565b5b0492506002810190505b600a8310611d6a576001810190505b80915050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f611de9858585611fe9565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e2c57611e27846121f4565b611e6b565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e6a57611e698185612238565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611eac57611ea784612382565b611eeb565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611eea57611ee98585612442565b5b5b809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f66575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611f5d919061283a565b60405180910390fd5b5f611f7283835f6110fc565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611fe4575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611fdb919061283a565b60405180910390fd5b505050565b5f5f611ff48461186b565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612035576120348184866124c6565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120c0576120745f855f5f6118a4565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461213f57600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b60088054905060095f8381526020019081526020015f2081905550600881908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f61224283610c10565b90505f60075f8481526020019081526020015f20549050818114612319575f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205490508060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20819055508160075f8381526020019081526020015f2081905550505b60075f8481526020019081526020015f205f905560065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f905550505050565b5f60016008805490506123959190613011565b90505f60095f8481526020019081526020015f205490505f600883815481106123c1576123c0612e1c565b5b905f5260205f200154905080600883815481106123e1576123e0612e1c565b5b905f5260205f2001819055508160095f8381526020019081526020015f208190555060095f8581526020019081526020015f205f9055600880548061242957612428613044565b5b600190038181905f5260205f20015f9055905550505050565b5f600161244e84610c10565b6124589190613011565b90508160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20819055508060075f8481526020019081526020015f2081905550505050565b6124d1838383612589565b612584575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361254557806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161253c91906129cc565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161257b929190612df5565b60405180910390fd5b505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561264057508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061260157506126008484610e99565b5b8061263f57508273ffffffffffffffffffffffffffffffffffffffff16612627836110aa565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61268e8161265a565b8114612698575f5ffd5b50565b5f813590506126a981612685565b92915050565b5f602082840312156126c4576126c3612652565b5b5f6126d18482850161269b565b91505092915050565b5f8115159050919050565b6126ee816126da565b82525050565b5f6020820190506127075f8301846126e5565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61274f8261270d565b6127598185612717565b9350612769818560208601612727565b61277281612735565b840191505092915050565b5f6020820190508181035f8301526127958184612745565b905092915050565b5f819050919050565b6127af8161279d565b81146127b9575f5ffd5b50565b5f813590506127ca816127a6565b92915050565b5f602082840312156127e5576127e4612652565b5b5f6127f2848285016127bc565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612824826127fb565b9050919050565b6128348161281a565b82525050565b5f60208201905061284d5f83018461282b565b92915050565b61285c8161281a565b8114612866575f5ffd5b50565b5f8135905061287781612853565b92915050565b5f5f6040838503121561289357612892612652565b5b5f6128a085828601612869565b92505060206128b1858286016127bc565b9150509250929050565b5f602082840312156128d0576128cf612652565b5b5f6128dd84828501612869565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6129188161279d565b82525050565b5f612929838361290f565b60208301905092915050565b5f602082019050919050565b5f61294b826128e6565b61295581856128f0565b935061296083612900565b805f5b83811015612990578151612977888261291e565b975061298283612935565b925050600181019050612963565b5085935050505092915050565b5f6020820190508181035f8301526129b58184612941565b905092915050565b6129c68161279d565b82525050565b5f6020820190506129df5f8301846129bd565b92915050565b5f5f5f606084860312156129fc576129fb612652565b5b5f612a0986828701612869565b9350506020612a1a86828701612869565b9250506040612a2b868287016127bc565b9150509250925092565b612a3e816126da565b8114612a48575f5ffd5b50565b5f81359050612a5981612a35565b92915050565b5f5f60408385031215612a7557612a74612652565b5b5f612a8285828601612869565b9250506020612a9385828601612a4b565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612adb82612735565b810181811067ffffffffffffffff82111715612afa57612af9612aa5565b5b80604052505050565b5f612b0c612649565b9050612b188282612ad2565b919050565b5f67ffffffffffffffff821115612b3757612b36612aa5565b5b612b4082612735565b9050602081019050919050565b828183375f83830152505050565b5f612b6d612b6884612b1d565b612b03565b905082815260208101848484011115612b8957612b88612aa1565b5b612b94848285612b4d565b509392505050565b5f82601f830112612bb057612baf612a9d565b5b8135612bc0848260208601612b5b565b91505092915050565b5f5f5f5f60808587031215612be157612be0612652565b5b5f612bee87828801612869565b9450506020612bff87828801612869565b9350506040612c10878288016127bc565b925050606085013567ffffffffffffffff811115612c3157612c30612656565b5b612c3d87828801612b9c565b91505092959194509250565b5f5f60408385031215612c5f57612c5e612652565b5b5f612c6c85828601612869565b9250506020612c7d85828601612869565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612ccb57607f821691505b602082108103612cde57612cdd612c87565b5b50919050565b5f606082019050612cf75f83018661282b565b612d0460208301856129bd565b612d11604083018461282b565b949350505050565b7f596f752043616e204f6e6c7920474d204f6e63652041204461790000000000005f82015250565b5f612d4d601a83612717565b9150612d5882612d19565b602082019050919050565b5f6020820190508181035f830152612d7a81612d41565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612db88261279d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612dea57612de9612d81565b5b600182019050919050565b5f604082019050612e085f83018561282b565b612e1560208301846129bd565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612e538261279d565b9150612e5e8361279d565b9250828201905080821115612e7657612e75612d81565b5b92915050565b5f81905092915050565b5f612e908261270d565b612e9a8185612e7c565b9350612eaa818560208601612727565b80840191505092915050565b5f612ec18285612e86565b9150612ecd8284612e86565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f108261279d565b9150612f1b8361279d565b925082612f2b57612f2a612ed9565b5b828204905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f612f5a82612f36565b612f648185612f40565b9350612f74818560208601612727565b612f7d81612735565b840191505092915050565b5f608082019050612f9b5f83018761282b565b612fa8602083018661282b565b612fb560408301856129bd565b8181036060830152612fc78184612f50565b905095945050505050565b5f81519050612fe081612685565b92915050565b5f60208284031215612ffb57612ffa612652565b5b5f61300884828501612fd2565b91505092915050565b5f61301b8261279d565b91506130268361279d565b925082820390508181111561303e5761303d612d81565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea26469706673582212201953723d3e1f293db4b148cd31c3d834f01c42c3b0f3ff868fb16e0d0c105d1164736f6c634300081b0033