60a060405266038d7ea4c6800060095573c22a79eba640940abb6df0f7982cc119578e11de600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806101a0016040528061016481526020016163fb6101649139600f908161008d9190610693565b50620493e060105f6101000a81548163ffffffff021916908363ffffffff1602179055507f66756e2d706f6c79676f6e2d616d6f792d3100000000000000000000000000005f1b60115561014460125f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561010c575f80fd5b5060405161655f38038061655f833981810160405281019061012e91906108ac565b33805f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168585815f90816101639190610693565b5080600190816101739190610693565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610219576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610210906109ff565b60405180910390fd5b8160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461029c5761029b8161032d60201b60201c565b5b5050508560168190555083601890816102b59190610693565b5082601990816102c59190610693565b5084601781905550600160145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505050505050610a85565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361039b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039290610a67565b60405180910390fd5b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127860405160405180910390a350565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104d457607f821691505b6020821081036104e7576104e6610490565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261050e565b610553868361050e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61059761059261058d8461056b565b610574565b61056b565b9050919050565b5f819050919050565b6105b08361057d565b6105c46105bc8261059e565b84845461051a565b825550505050565b5f90565b6105d86105cc565b6105e38184846105a7565b505050565b5b81811015610606576105fb5f826105d0565b6001810190506105e9565b5050565b601f82111561064b5761061c816104ed565b610625846104ff565b81016020851015610634578190505b610648610640856104ff565b8301826105e8565b50505b505050565b5f82821c905092915050565b5f61066b5f1984600802610650565b1980831691505092915050565b5f610683838361065c565b9150826002028217905092915050565b61069c82610459565b67ffffffffffffffff8111156106b5576106b4610463565b5b6106bf82546104bd565b6106ca82828561060a565b5f60209050601f8311600181146106fb575f84156106e9578287015190505b6106f38582610678565b86555061075a565b601f198416610709866104ed565b5f5b828110156107305784890151825560018201915060208501945060208101905061070b565b8683101561074d5784890151610749601f89168261065c565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b61077c8161056b565b8114610786575f80fd5b50565b5f8151905061079781610773565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b6107be826107a5565b810181811067ffffffffffffffff821117156107dd576107dc610463565b5b80604052505050565b5f6107ef610762565b90506107fb82826107b5565b919050565b5f67ffffffffffffffff82111561081a57610819610463565b5b610823826107a5565b9050602081019050919050565b8281835e5f83830152505050565b5f61085061084b84610800565b6107e6565b90508281526020810184848401111561086c5761086b6107a1565b5b610877848285610830565b509392505050565b5f82601f8301126108935761089261079d565b5b81516108a384826020860161083e565b91505092915050565b5f805f805f8060c087890312156108c6576108c561076b565b5b5f6108d389828a01610789565b96505060206108e489828a01610789565b955050604087015167ffffffffffffffff8111156109055761090461076f565b5b61091189828a0161087f565b945050606087015167ffffffffffffffff8111156109325761093161076f565b5b61093e89828a0161087f565b935050608087015167ffffffffffffffff81111561095f5761095e61076f565b5b61096b89828a0161087f565b92505060a087015167ffffffffffffffff81111561098c5761098b61076f565b5b61099889828a0161087f565b9150509295509295509295565b5f82825260208201905092915050565b7f43616e6e6f7420736574206f776e657220746f207a65726f00000000000000005f82015250565b5f6109e96018836109a5565b91506109f4826109b5565b602082019050919050565b5f6020820190508181035f830152610a16816109dd565b9050919050565b7f43616e6e6f74207472616e7366657220746f2073656c660000000000000000005f82015250565b5f610a516017836109a5565b9150610a5c82610a1d565b602082019050919050565b5f6020820190508181035f830152610a7e81610a45565b9050919050565b608051615957610aa45f395f8181610b7701526137d501526159575ff3fe60806040526004361061025b575f3560e01c806379ba509711610143578063a22cb465116100b5578063d5abeb0111610079578063d5abeb01146108c1578063e05ce1bb146108eb578063e21e99e214610913578063e985e9c51461094f578063f2fde38b1461098b578063ffad1a1d146109b35761025b565b8063a22cb465146107e5578063aa9d89051461080d578063b88d4fde14610835578063c0f694911461085d578063c87b56dd146108855761025b565b8063926427441161010757806392642744146106dd578063931e2e491461070557806395d89b411461072f5780639a4c483d146107595780639ea55bb0146107815780639ef8e635146107a95761025b565b806379ba50971461060f578063846c67ec146106255780638d91b620146106615780638da5cb5b1461068b5780638e218783146106b55761025b565b806346559e2f116101dc5780635bca2016116101a05780635bca2016146104ff5780635f5cd4791461051b5780636352211e1461054357806369e154041461057f5780636c83bbfa146105a957806370a08231146105d35761025b565b806346559e2f1461041d5780634b0795a8146104595780634d2e03a01461048357806351cff8d9146104ad5780635a0d82ff146104d55761025b565b806309c1ba2e1161022357806309c1ba2e146103515780630ca761751461037b57806312065fe0146103a357806323b872dd146103cd57806342842e0e146103f55761025b565b806301ffc9a71461025f57806303b4f88b1461029b57806306fdde03146102c3578063081812fc146102ed578063095ea7b314610329575b5f80fd5b34801561026a575f80fd5b5061028560048036038101906102809190614170565b6109ef565b60405161029291906141b5565b60405180910390f35b3480156102a6575f80fd5b506102c160048036038101906102bc9190614201565b610a00565b005b3480156102ce575f80fd5b506102d7610a9c565b6040516102e4919061429c565b60405180910390f35b3480156102f8575f80fd5b50610313600480360381019061030e9190614201565b610b2b565b60405161032091906142fb565b60405180910390f35b348015610334575f80fd5b5061034f600480360381019061034a919061433e565b610b46565b005b34801561035c575f80fd5b50610365610b5c565b604051610372919061439e565b60405180910390f35b348015610386575f80fd5b506103a1600480360381019061039c9190614516565b610b75565b005b3480156103ae575f80fd5b506103b7610c37565b6040516103c491906145ad565b60405180910390f35b3480156103d8575f80fd5b506103f360048036038101906103ee91906145c6565b610c3e565b005b348015610400575f80fd5b5061041b600480360381019061041691906145c6565b610d3d565b005b348015610428575f80fd5b50610443600480360381019061043e9190614616565b610d5c565b60405161045091906141b5565b60405180910390f35b348015610464575f80fd5b5061046d610d79565b60405161047a9190614693565b60405180910390f35b34801561048e575f80fd5b50610497610e05565b6040516104a4919061429c565b60405180910390f35b3480156104b8575f80fd5b506104d360048036038101906104ce91906146ee565b610e91565b005b3480156104e0575f80fd5b506104e9610f8c565b6040516104f691906147d0565b60405180910390f35b61051960048036038101906105149190614201565b61103f565b005b348015610526575f80fd5b50610541600480360381019061053c9190614201565b611108565b005b34801561054e575f80fd5b5061056960048036038101906105649190614201565b6111a2565b60405161057691906142fb565b60405180910390f35b34801561058a575f80fd5b506105936111b3565b6040516105a091906145ad565b60405180910390f35b3480156105b4575f80fd5b506105bd6111b9565b6040516105ca919061429c565b60405180910390f35b3480156105de575f80fd5b506105f960048036038101906105f49190614616565b611245565b60405161060691906145ad565b60405180910390f35b34801561061a575f80fd5b506106236112fb565b005b348015610630575f80fd5b5061064b600480360381019061064691906147f0565b61148c565b60405161065891906142fb565b60405180910390f35b34801561066c575f80fd5b506106756114bc565b604051610682919061429c565b60405180910390f35b348015610696575f80fd5b5061069f611548565b6040516106ac91906142fb565b60405180910390f35b3480156106c0575f80fd5b506106db60048036038101906106d691906148b9565b611570565b005b3480156106e8575f80fd5b5061070360048036038101906106fe9190614201565b611613565b005b348015610710575f80fd5b50610719611779565b60405161072691906145ad565b60405180910390f35b34801561073a575f80fd5b5061074361177f565b604051610750919061429c565b60405180910390f35b348015610764575f80fd5b5061077f600480360381019061077a91906148b9565b61180f565b005b34801561078c575f80fd5b506107a760048036038101906107a29190614201565b6118b2565b005b3480156107b4575f80fd5b506107cf60048036038101906107ca9190614616565b61195f565b6040516107dc919061490f565b60405180910390f35b3480156107f0575f80fd5b5061080b60048036038101906108069190614952565b611974565b005b348015610818575f80fd5b50610833600480360381019061082e919061433e565b61198a565b005b348015610840575f80fd5b5061085b60048036038101906108569190614990565b611a2a565b005b348015610868575f80fd5b50610883600480360381019061087e9190614a3a565b611a47565b005b348015610890575f80fd5b506108ab60048036038101906108a69190614201565b611b02565b6040516108b8919061429c565b60405180910390f35b3480156108cc575f80fd5b506108d5611b14565b6040516108e291906145ad565b60405180910390f35b3480156108f6575f80fd5b50610911600480360381019061090c9190614201565b611b1a565b005b34801561091e575f80fd5b50610939600480360381019061093491906147f0565b611bb4565b60405161094691906145ad565b60405180910390f35b34801561095a575f80fd5b5061097560048036038101906109709190614a65565b611bc9565b60405161098291906141b5565b60405180910390f35b348015610996575f80fd5b506109b160048036038101906109ac9190614616565b611c57565b005b3480156109be575f80fd5b506109d960048036038101906109d49190614201565b611c6b565b6040516109e691906142fb565b60405180910390f35b5f6109f982611c9b565b9050919050565b6001151560145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8790614aed565b60405180910390fd5b610a9981611cfb565b50565b60605f8054610aaa90614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad690614b38565b8015610b215780601f10610af857610100808354040283529160200191610b21565b820191905f5260205f20905b815481529060010190602001808311610b0457829003601f168201915b5050505050905090565b5f610b3582611e6c565b50610b3f82611ef2565b9050919050565b610b588282610b53611f2b565b611f32565b5050565b60125f9054906101000a900467ffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bfa576040517fc6829f8300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c05838383611f44565b827f85e1543bf2f84fe80c6badbce3648c8539ad1df4d2b3d822938ca0538be727e660405160405180910390a2505050565b5f47905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cae575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610ca591906142fb565b60405180910390fd5b5f610cc18383610cbc611f2b565b612116565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d37578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610d2e93929190614b68565b60405180910390fd5b50505050565b610d5783838360405180602001604052805f815250611a2a565b505050565b6014602052805f5260405f205f915054906101000a900460ff1681565b600a8054610d8690614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054610db290614b38565b8015610dfd5780601f10610dd457610100808354040283529160200191610dfd565b820191905f5260205f20905b815481529060010190602001808311610de057829003601f168201915b505050505081565b60138054610e1290614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3e90614b38565b8015610e895780601f10610e6057610100808354040283529160200191610e89565b820191905f5260205f20905b815481529060010190602001808311610e6c57829003601f168201915b505050505081565b610e99612321565b5f4790505f8111610edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed690614be7565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610f0490614c32565b5f6040518083038185875af1925050503d805f8114610f3e576040519150601f19603f3d011682016040523d82523d5f602084013e610f43565b606091505b5050905080610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e90614c90565b60405180910390fd5b505050565b60605f601a8054905067ffffffffffffffff811115610fae57610fad6143f2565b5b604051908082528060200260200182016040528015610fdc5781602001602082028036833780820191505090505b5090505f5b601a8054905081101561103757601a818154811061100257611001614cae565b5b905f5260205f20015482828151811061101e5761101d614cae565b5b6020026020010181815250508080600101915050610fe1565b508091505090565b803373ffffffffffffffffffffffffffffffffffffffff16611060826123b2565b73ffffffffffffffffffffffffffffffffffffffff16146110b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ad90614d25565b60405180910390fd5b6009543410156110fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f290614d8d565b60405180910390fd5b61110482611cfb565b5050565b6001151560145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f90614aed565b60405180910390fd5b8060168190555050565b5f6111ac82611e6c565b9050919050565b60095481565b601880546111c690614b38565b80601f01602080910402602001604051908101604052809291908181526020018280546111f290614b38565b801561123d5780601f106112145761010080835404028352916020019161123d565b820191905f5260205f20905b81548152906001019060200180831161122057829003601f168201915b505050505081565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112b6575f6040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016112ad91906142fb565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138190614df5565b60405180910390fd5b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503360075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600c602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601980546114c990614b38565b80601f01602080910402602001604051908101604052809291908181526020018280546114f590614b38565b80156115405780601f1061151757610100808354040283529160200191611540565b820191905f5260205f20905b81548152906001019060200180831161152357829003601f168201915b505050505081565b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6001151560145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790614aed565b60405180910390fd5b806019908161160f9190614fb0565b5050565b803373ffffffffffffffffffffffffffffffffffffffff1660155f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a9906150ef565b60405180910390fd5b6017544210156116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee90615157565b60405180910390fd5b60165482111561173c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611733906151bf565b60405180910390fd5b61174633836123eb565b61174f82611cfb565b601a82908060018154018082558091505060019003905f5260205f20015f90919091909150555050565b60175481565b60606001805461178e90614b38565b80601f01602080910402602001604051908101604052809291908181526020018280546117ba90614b38565b80156118055780601f106117dc57610100808354040283529160200191611805565b820191905f5260205f20905b8154815290600101906020018083116117e857829003601f168201915b5050505050905090565b6001151560145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615151461189f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189690614aed565b60405180910390fd5b80601890816118ae9190614fb0565b5050565b6001151560145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514611942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193990614aed565b60405180910390fd5b670de0b6b3a764000081611956919061520a565b60098190555050565b600b602052805f5260405f205f915090505481565b61198661197f611f2b565b8383612408565b5050565b611992612321565b6016548111156119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ce906151bf565b60405180910390fd5b8160155f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611a35848484610c3e565b611a4184848484612571565b50505050565b6001151560145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace90614aed565b60405180910390fd5b8060125f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b6060611b0d82612723565b9050919050565b60165481565b6001151560145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151514611baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba190614aed565b60405180910390fd5b8060178190555050565b600d602052805f5260405f205f915090505481565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b611c5f612321565b611c688161282e565b50565b6015602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611cf45750611cf38261295a565b5b9050919050565b5f600267ffffffffffffffff811115611d1757611d166143f2565b5b604051908082528060200260200182016040528015611d4a57816020015b6060815260200190600190039081611d355790505b509050611d5682612a3b565b815f81518110611d6957611d68614cae565b5b6020026020010181905250611d953073ffffffffffffffffffffffffffffffffffffffff166014612b05565b81600181518110611da957611da8614cae565b5b60200260200101819052505f611dbe82612d43565b905080600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555082600d5f8381526020019081526020015f208190555033600c5f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b5f80611e77836123b2565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ee957826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611ee091906145ad565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b611f3f8383836001612e48565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff16600c5f8581526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611fe457826040517fd068bf5b000000000000000000000000000000000000000000000000000000008152600401611fdb919061490f565b60405180910390fd5b5f8290505f600d5f8681526020019081526020015f205490506120078183613007565b5f600c5f8781526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600b5f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9055600c5f8781526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600d5f8781526020019081526020015f205f905583600a90816120d191906152a3565b50857f160ed0aaffbef6885155188b91459cb5a97d5daadccf7561d8c46deea6641b5084878760405161210693929190615372565b60405180910390a2505050505050565b5f80612121846123b2565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461216257612161818486613061565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146121ed576121a15f855f80612e48565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461226c57600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a790615406565b60405180910390fd5b565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b612404828260405180602001604052805f815250613124565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361247857816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161246f91906142fb565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161256491906141b5565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561271d578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026125b4611f2b565b8685856040518563ffffffff1660e01b81526004016125d69493929190615424565b6020604051808303815f875af192505050801561261157506040513d601f19601f8201168201806040525081019061260e9190615482565b60015b612692573d805f811461263f576040519150601f19603f3d011682016040523d82523d5f602084013e612644565b606091505b505f81510361268a57836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161268191906142fb565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461271b57836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161271291906142fb565b60405180910390fd5b505b50505050565b606061272e82611e6c565b505f60065f8481526020019081526020015f20805461274c90614b38565b80601f016020809104026020016040519081016040528092919081815260200182805461277890614b38565b80156127c35780601f1061279a576101008083540402835291602001916127c3565b820191905f5260205f20905b8154815290600101906020018083116127a657829003601f168201915b505050505090505f6127d361313f565b90505f8151036127e7578192505050612829565b5f8251111561281b5780826040516020016128039291906154e7565b60405160208183030381529060405292505050612829565b61282484613155565b925050505b919050565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361289c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289390615554565b60405180910390fd5b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127860405160405180910390a350565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612a2457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612a345750612a33826131bb565b5b9050919050565b60605f6001612a4984613224565b0190505f8167ffffffffffffffff811115612a6757612a666143f2565b5b6040519080825280601f01601f191660200182016040528015612a995781602001600182028036833780820191505090505b5090505f82602001820190505b600115612afa578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612aef57612aee615572565b5b0494505f8503612aa6575b819350505050919050565b60605f8390505f6002846002612b1b919061520a565b612b25919061559f565b67ffffffffffffffff811115612b3e57612b3d6143f2565b5b6040519080825280601f01601f191660200182016040528015612b705781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f81518110612ba757612ba6614cae565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612c0a57612c09614cae565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f6001856002612c48919061520a565b612c52919061559f565b90505b6001811115612cf1577f3031323334353637383961626364656600000000000000000000000000000000600f841660108110612c9457612c93614cae565b5b1a60f81b828281518110612cab57612caa614cae565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600483901c925080612cea906155d2565b9050612c55565b505f8214612d385784846040517fe22e27eb000000000000000000000000000000000000000000000000000000008152600401612d2f9291906155f9565b60405180910390fd5b809250505092915050565b5f612d4c614063565b612de7600f8054612d5c90614b38565b80601f0160208091040260200160405190810160405280929190818152602001828054612d8890614b38565b8015612dd35780601f10612daa57610100808354040283529160200191612dd3565b820191905f5260205f20905b815481529060010190602001808311612db657829003601f168201915b50505050508261337590919063ffffffff16565b5f83511115612e0457612e03838261338590919063ffffffff16565b5b612e40612e10826133cc565b60125f9054906101000a900467ffffffffffffffff1660105f9054906101000a900463ffffffff166011546137d1565b915050919050565b8080612e8057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612fb2575f612e8f84611e6c565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612ef957508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015612f0c5750612f0a8184611bc9565b155b15612f4e57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401612f4591906142fb565b60405180910390fd5b8115612fb057838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b8060065f8481526020019081526020015f2090816130259190614fb0565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce78260405161305591906145ad565b60405180910390a15050565b61306c8383836138b0565b61311f575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036130e057806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016130d791906145ad565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401613116929190615620565b60405180910390fd5b505050565b61312e8383613970565b61313a5f848484612571565b505050565b606060405180602001604052805f815250905090565b606061316082611e6c565b505f61316a61313f565b90505f8151116131885760405180602001604052805f8152506131b3565b8061319284612a3b565b6040516020016131a39291906154e7565b6040516020818303038152906040525b915050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613280577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161327657613275615572565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106132bd576d04ee2d6d415b85acef810000000083816132b3576132b2615572565b5b0492506020810190505b662386f26fc1000083106132ec57662386f26fc1000083816132e2576132e1615572565b5b0492506010810190505b6305f5e1008310613315576305f5e100838161330b5761330a615572565b5b0492506008810190505b612710831061333a5761271083816133305761332f615572565b5b0492506004810190505b6064831061335d576064838161335357613352615572565b5b0492506002810190505b600a831061336c576001810190505b80915050919050565b613381825f8084613a63565b5050565b5f8151036133bf576040517ffe936cb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808260a001819052505050565b60605f6133da610100613b09565b90506134246040518060400160405280600c81526020017f636f64654c6f636174696f6e000000000000000000000000000000000000000081525082613b2e90919063ffffffff16565b61344c835f0151600281111561343d5761343c615647565b5b82613b5690919063ffffffff16565b6134946040518060400160405280600881526020017f6c616e677561676500000000000000000000000000000000000000000000000081525082613b2e90919063ffffffff16565b6134bc83604001515f8111156134ad576134ac615647565b5b82613b5690919063ffffffff16565b6135046040518060400160405280600681526020017f736f75726365000000000000000000000000000000000000000000000000000081525082613b2e90919063ffffffff16565b61351b836060015182613b2e90919063ffffffff16565b5f8360a001515111156135cf576135706040518060400160405280600481526020017f617267730000000000000000000000000000000000000000000000000000000081525082613b2e90919063ffffffff16565b61357981613ba5565b5f5b8360a00151518110156135c4576135b98460a0015182815181106135a2576135a1614cae565b5b602002602001015183613b2e90919063ffffffff16565b80600101905061357b565b506135ce81613bcd565b5b5f836080015151111561370e575f60028111156135ef576135ee615647565b5b8360200151600281111561360657613605615647565b5b0361363d576040517fa80d31f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6136856040518060400160405280600f81526020017f736563726574734c6f636174696f6e000000000000000000000000000000000081525082613b2e90919063ffffffff16565b6136ae8360200151600281111561369f5761369e615647565b5b82613b5690919063ffffffff16565b6136f66040518060400160405280600781526020017f736563726574730000000000000000000000000000000000000000000000000081525082613b2e90919063ffffffff16565b61370d836080015182613bf590919063ffffffff16565b5b5f8360c001515111156137c2576137636040518060400160405280600981526020017f627974657341726773000000000000000000000000000000000000000000000081525082613b2e90919063ffffffff16565b61376c81613ba5565b5f5b8360c00151518110156137b7576137ac8460c00151828151811061379557613794614cae565b5b602002602001015183613bf590919063ffffffff16565b80600101905061376e565b506137c181613bcd565b5b805f01515f0151915050919050565b5f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663461d27628688600188886040518663ffffffff1660e01b81526004016138359594939291906156ae565b6020604051808303815f875af1158015613851573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613875919061571a565b9050807f1131472297a800fee664d1d89cfa8f7676ff07189ecc53f80bbb5f4969099db860405160405180910390a280915050949350505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561396757508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061392857506139278484611bc9565b5b8061396657508273ffffffffffffffffffffffffffffffffffffffff1661394e83611ef2565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036139e0575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016139d791906142fb565b60405180910390fd5b5f6139ec83835f612116565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613a5e575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401613a5591906142fb565b60405180910390fd5b505050565b5f815103613a9d576040517f22ce3edd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82845f01906002811115613ab457613ab3615647565b5b90816002811115613ac857613ac7615647565b5b815250508184604001905f811115613ae357613ae2615647565b5b90815f811115613af657613af5615647565b5b8152505080846060018190525050505050565b613b116140d2565b613b1e815f015183613c1d565b505f816020018181525050919050565b613b3b8260038351613c93565b613b5181835f0151613e3390919063ffffffff16565b505050565b613b7760026005600660ff16901b17835f0151613e4f90919063ffffffff16565b50613ba18282604051602001613b8d91906145ad565b604051602081830303815290604052613bf5565b5050565b613bb0816004613eb6565b600181602001818151613bc3919061559f565b9150818152505050565b613bd8816007613eb6565b600181602001818151613beb9190615745565b9150818152505050565b613c028260028351613c93565b613c1881835f0151613e3390919063ffffffff16565b505050565b613c256140f1565b5f602083613c339190615778565b14613c5f57602082613c459190615778565b6020613c519190615745565b82613c5c919061559f565b91505b818360200181815250506040518084525f815282810160200181811015613c84575f80fd5b80604052505082905092915050565b60178167ffffffffffffffff1611613ccd57613cc78160058460ff16901b60ff1617845f0151613e4f90919063ffffffff16565b50613e2e565b60ff8167ffffffffffffffff1611613d2957613cff601860058460ff16901b17845f0151613e4f90919063ffffffff16565b50613d238167ffffffffffffffff166001855f0151613edb9092919063ffffffff16565b50613e2d565b61ffff8167ffffffffffffffff1611613d8657613d5c601960058460ff16901b17845f0151613e4f90919063ffffffff16565b50613d808167ffffffffffffffff166002855f0151613edb9092919063ffffffff16565b50613e2c565b63ffffffff8167ffffffffffffffff1611613de557613dbb601a60058460ff16901b17845f0151613e4f90919063ffffffff16565b50613ddf8167ffffffffffffffff166004855f0151613edb9092919063ffffffff16565b50613e2b565b613e05601b60058460ff16901b17845f0151613e4f90919063ffffffff16565b50613e298167ffffffffffffffff166008855f0151613edb9092919063ffffffff16565b505b5b5b5b505050565b613e3b6140f1565b613e4783838451613f64565b905092915050565b613e576140f1565b5f835f01515190505f600182613e6d919061559f565b905084602001518210613e9157613e9085600283613e8b919061520a565b614041565b5b84516020838201018581538151831115613ea9578282525b5050849250505092915050565b613ed6601f60058360ff16901b17835f0151613e4f90919063ffffffff16565b505050565b613ee36140f1565b5f845f01515190505f8184613ef8919061559f565b90508560200151811115613f1d57613f1c86600283613f17919061520a565b614041565b5b5f600185610100613f2e91906158d7565b613f389190615745565b905086518281018783198251161781528151841115613f55578382525b50508693505050509392505050565b613f6c6140f1565b8251821115613f79575f80fd5b5f845f01515190505f8382613f8e919061559f565b90508560200151811115613fb357613fb286600283613fad919061520a565b614041565b5b5f8087518051856020830101935080851115613fcd578482525b60208901925050505b602086106140145780518252602082613fef919061559f565b9150602081613ffe919061559f565b905060208661400d9190615745565b9550613fd6565b5f6001876020036101000a0390508019825116818451168181178552505050879450505050509392505050565b5f825f015190506140528383613c1d565b5061405d8382613e33565b50505050565b6040518060e001604052805f600281111561408157614080615647565b5b81526020015f600281111561409957614098615647565b5b81526020015f808111156140b0576140af615647565b5b8152602001606081526020016060815260200160608152602001606081525090565b60405180604001604052806140e56140f1565b81526020015f81525090565b6040518060400160405280606081526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61414f8161411b565b8114614159575f80fd5b50565b5f8135905061416a81614146565b92915050565b5f6020828403121561418557614184614113565b5b5f6141928482850161415c565b91505092915050565b5f8115159050919050565b6141af8161419b565b82525050565b5f6020820190506141c85f8301846141a6565b92915050565b5f819050919050565b6141e0816141ce565b81146141ea575f80fd5b50565b5f813590506141fb816141d7565b92915050565b5f6020828403121561421657614215614113565b5b5f614223848285016141ed565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61426e8261422c565b6142788185614236565b9350614288818560208601614246565b61429181614254565b840191505092915050565b5f6020820190508181035f8301526142b48184614264565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6142e5826142bc565b9050919050565b6142f5816142db565b82525050565b5f60208201905061430e5f8301846142ec565b92915050565b61431d816142db565b8114614327575f80fd5b50565b5f8135905061433881614314565b92915050565b5f806040838503121561435457614353614113565b5b5f6143618582860161432a565b9250506020614372858286016141ed565b9150509250929050565b5f67ffffffffffffffff82169050919050565b6143988161437c565b82525050565b5f6020820190506143b15f83018461438f565b92915050565b5f819050919050565b6143c9816143b7565b81146143d3575f80fd5b50565b5f813590506143e4816143c0565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61442882614254565b810181811067ffffffffffffffff82111715614447576144466143f2565b5b80604052505050565b5f61445961410a565b9050614465828261441f565b919050565b5f67ffffffffffffffff821115614484576144836143f2565b5b61448d82614254565b9050602081019050919050565b828183375f83830152505050565b5f6144ba6144b58461446a565b614450565b9050828152602081018484840111156144d6576144d56143ee565b5b6144e184828561449a565b509392505050565b5f82601f8301126144fd576144fc6143ea565b5b813561450d8482602086016144a8565b91505092915050565b5f805f6060848603121561452d5761452c614113565b5b5f61453a868287016143d6565b935050602084013567ffffffffffffffff81111561455b5761455a614117565b5b614567868287016144e9565b925050604084013567ffffffffffffffff81111561458857614587614117565b5b614594868287016144e9565b9150509250925092565b6145a7816141ce565b82525050565b5f6020820190506145c05f83018461459e565b92915050565b5f805f606084860312156145dd576145dc614113565b5b5f6145ea8682870161432a565b93505060206145fb8682870161432a565b925050604061460c868287016141ed565b9150509250925092565b5f6020828403121561462b5761462a614113565b5b5f6146388482850161432a565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f61466582614641565b61466f818561464b565b935061467f818560208601614246565b61468881614254565b840191505092915050565b5f6020820190508181035f8301526146ab818461465b565b905092915050565b5f6146bd826142bc565b9050919050565b6146cd816146b3565b81146146d7575f80fd5b50565b5f813590506146e8816146c4565b92915050565b5f6020828403121561470357614702614113565b5b5f614710848285016146da565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61474b816141ce565b82525050565b5f61475c8383614742565b60208301905092915050565b5f602082019050919050565b5f61477e82614719565b6147888185614723565b935061479383614733565b805f5b838110156147c35781516147aa8882614751565b97506147b583614768565b925050600181019050614796565b5085935050505092915050565b5f6020820190508181035f8301526147e88184614774565b905092915050565b5f6020828403121561480557614804614113565b5b5f614812848285016143d6565b91505092915050565b5f67ffffffffffffffff821115614835576148346143f2565b5b61483e82614254565b9050602081019050919050565b5f61485d6148588461481b565b614450565b905082815260208101848484011115614879576148786143ee565b5b61488484828561449a565b509392505050565b5f82601f8301126148a05761489f6143ea565b5b81356148b084826020860161484b565b91505092915050565b5f602082840312156148ce576148cd614113565b5b5f82013567ffffffffffffffff8111156148eb576148ea614117565b5b6148f78482850161488c565b91505092915050565b614909816143b7565b82525050565b5f6020820190506149225f830184614900565b92915050565b6149318161419b565b811461493b575f80fd5b50565b5f8135905061494c81614928565b92915050565b5f806040838503121561496857614967614113565b5b5f6149758582860161432a565b92505060206149868582860161493e565b9150509250929050565b5f805f80608085870312156149a8576149a7614113565b5b5f6149b58782880161432a565b94505060206149c68782880161432a565b93505060406149d7878288016141ed565b925050606085013567ffffffffffffffff8111156149f8576149f7614117565b5b614a04878288016144e9565b91505092959194509250565b614a198161437c565b8114614a23575f80fd5b50565b5f81359050614a3481614a10565b92915050565b5f60208284031215614a4f57614a4e614113565b5b5f614a5c84828501614a26565b91505092915050565b5f8060408385031215614a7b57614a7a614113565b5b5f614a888582860161432a565b9250506020614a998582860161432a565b9150509250929050565b7f496e73756666696369656e74207065726d697373696f6e7300000000000000005f82015250565b5f614ad7601883614236565b9150614ae282614aa3565b602082019050919050565b5f6020820190508181035f830152614b0481614acb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680614b4f57607f821691505b602082108103614b6257614b61614b0b565b5b50919050565b5f606082019050614b7b5f8301866142ec565b614b88602083018561459e565b614b9560408301846142ec565b949350505050565b7f4e6f2045544820617661696c61626c6520746f207769746864726177000000005f82015250565b5f614bd1601c83614236565b9150614bdc82614b9d565b602082019050919050565b5f6020820190508181035f830152614bfe81614bc5565b9050919050565b5f81905092915050565b50565b5f614c1d5f83614c05565b9150614c2882614c0f565b5f82019050919050565b5f614c3c82614c12565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f614c7a601483614236565b9150614c8582614c46565b602082019050919050565b5f6020820190508181035f830152614ca781614c6e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f614d0f601783614236565b9150614d1a82614cdb565b602082019050919050565b5f6020820190508181035f830152614d3c81614d03565b9050919050565b7f496e73756666696369656e7420666565000000000000000000000000000000005f82015250565b5f614d77601083614236565b9150614d8282614d43565b602082019050919050565b5f6020820190508181035f830152614da481614d6b565b9050919050565b7f4d7573742062652070726f706f736564206f776e6572000000000000000000005f82015250565b5f614ddf601683614236565b9150614dea82614dab565b602082019050919050565b5f6020820190508181035f830152614e0c81614dd3565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614e6f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614e34565b614e798683614e34565b95508019841693508086168417925050509392505050565b5f819050919050565b5f614eb4614eaf614eaa846141ce565b614e91565b6141ce565b9050919050565b5f819050919050565b614ecd83614e9a565b614ee1614ed982614ebb565b848454614e40565b825550505050565b5f90565b614ef5614ee9565b614f00818484614ec4565b505050565b5b81811015614f2357614f185f82614eed565b600181019050614f06565b5050565b601f821115614f6857614f3981614e13565b614f4284614e25565b81016020851015614f51578190505b614f65614f5d85614e25565b830182614f05565b50505b505050565b5f82821c905092915050565b5f614f885f1984600802614f6d565b1980831691505092915050565b5f614fa08383614f79565b9150826002028217905092915050565b614fb98261422c565b67ffffffffffffffff811115614fd257614fd16143f2565b5b614fdc8254614b38565b614fe7828285614f27565b5f60209050601f831160018114615018575f8415615006578287015190505b6150108582614f95565b865550615077565b601f19841661502686614e13565b5f5b8281101561504d57848901518255600182019150602085019450602081019050615028565b8683101561506a5784890151615066601f891682614f79565b8355505b6001600288020188555050505b505050505050565b7f6e6f7420617574686f72697a65642079657420706c65617365207472792061675f8201527f61696e206c617465720000000000000000000000000000000000000000000000602082015250565b5f6150d9602983614236565b91506150e48261507f565b604082019050919050565b5f6020820190508181035f830152615106816150cd565b9050919050565b7f4d696e74696e67206e6f742073746172746564207965740000000000000000005f82015250565b5f615141601783614236565b915061514c8261510d565b602082019050919050565b5f6020820190508181035f83015261516e81615135565b9050919050565b7f4d617820737570706c79207265616368656400000000000000000000000000005f82015250565b5f6151a9601283614236565b91506151b482615175565b602082019050919050565b5f6020820190508181035f8301526151d68161519d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f615214826141ce565b915061521f836141ce565b925082820261522d816141ce565b91508282048414831517615244576152436151dd565b5b5092915050565b5f819050815f5260205f209050919050565b601f82111561529e5761526f8161524b565b61527884614e25565b81016020851015615287578190505b61529b61529385614e25565b830182614f05565b50505b505050565b6152ac82614641565b67ffffffffffffffff8111156152c5576152c46143f2565b5b6152cf8254614b38565b6152da82828561525d565b5f60209050601f83116001811461530b575f84156152f9578287015190505b6153038582614f95565b86555061536a565b601f1984166153198661524b565b5f5b828110156153405784890151825560018201915060208501945060208101905061531b565b8683101561535d5784890151615359601f891682614f79565b8355505b6001600288020188555050505b505050505050565b5f6060820190508181035f83015261538a8186614264565b9050818103602083015261539e818561465b565b905081810360408301526153b2818461465b565b9050949350505050565b7f4f6e6c792063616c6c61626c65206279206f776e6572000000000000000000005f82015250565b5f6153f0601683614236565b91506153fb826153bc565b602082019050919050565b5f6020820190508181035f83015261541d816153e4565b9050919050565b5f6080820190506154375f8301876142ec565b61544460208301866142ec565b615451604083018561459e565b8181036060830152615463818461465b565b905095945050505050565b5f8151905061547c81614146565b92915050565b5f6020828403121561549757615496614113565b5b5f6154a48482850161546e565b91505092915050565b5f81905092915050565b5f6154c18261422c565b6154cb81856154ad565b93506154db818560208601614246565b80840191505092915050565b5f6154f282856154b7565b91506154fe82846154b7565b91508190509392505050565b7f43616e6e6f74207472616e7366657220746f2073656c660000000000000000005f82015250565b5f61553e601783614236565b91506155498261550a565b602082019050919050565b5f6020820190508181035f83015261556b81615532565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6155a9826141ce565b91506155b4836141ce565b92508282019050808211156155cc576155cb6151dd565b5b92915050565b5f6155dc826141ce565b91505f82036155ee576155ed6151dd565b5b600182039050919050565b5f60408201905061560c5f83018561459e565b615619602083018461459e565b9392505050565b5f6040820190506156335f8301856142ec565b615640602083018461459e565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f61ffff82169050919050565b61568a81615674565b82525050565b5f63ffffffff82169050919050565b6156a881615690565b82525050565b5f60a0820190506156c15f83018861438f565b81810360208301526156d3818761465b565b90506156e26040830186615681565b6156ef606083018561569f565b6156fc6080830184614900565b9695505050505050565b5f81519050615714816143c0565b92915050565b5f6020828403121561572f5761572e614113565b5b5f61573c84828501615706565b91505092915050565b5f61574f826141ce565b915061575a836141ce565b9250828203905081811115615772576157716151dd565b5b92915050565b5f615782826141ce565b915061578d836141ce565b92508261579d5761579c615572565b5b828206905092915050565b5f8160011c9050919050565b5f808291508390505b60018511156157fd578086048111156157d9576157d86151dd565b5b60018516156157e85780820291505b80810290506157f6856157a8565b94506157bd565b94509492505050565b5f8261581557600190506158d0565b81615822575f90506158d0565b8160018114615838576002811461584257615871565b60019150506158d0565b60ff841115615854576158536151dd565b5b8360020a91508482111561586b5761586a6151dd565b5b506158d0565b5060208310610133831016604e8410600b84101617156158a65782820a9050838111156158a1576158a06151dd565b5b6158d0565b6158b384848460016157b4565b925090508184048111156158ca576158c96151dd565b5b81810290505b9392505050565b5f6158e1826141ce565b91506158ec836141ce565b92506159197fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484615806565b90509291505056fea2646970667358221220b9a23af33f94f13972944703d8aaf7c7808922c411054f35f26307e78c543db064736f6c63430008190033636f6e7374206368617261637465724964203d20617267735b305d3b636f6e737420746f6b656e41646472657373203d20617267735b315d3b636f6e737420617069526573706f6e7365203d2061776169742046756e6374696f6e732e6d616b654874747052657175657374287b75726c3a206068747470733a2f2f75746f7069616e6d61737365732d6d656174646174612e777362726f6b65722e6d652f6e66746d657461646174613f746f6b656e616464723d247b746f6b656e416464726573737d266e667469643d247b63686172616374657249647d607d293b69662028617069526573706f6e73652e6572726f7229207b7468726f77204572726f72284a534f4e2e737472696e6769667928617069526573706f6e736529293b7d636f6e7374207b2064617461207d203d20617069526573706f6e73653b72657475726e2046756e6374696f6e732e656e636f6465537472696e6728646174612e75726c293b00000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000006717153000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d63507452594476687379693633374c485172414246794b32535164426e4b753931536a556370536a58577a410000000000000000000000000000000000000000000000000000000000000000000000000000000000003769706673efbc9a2f2f516d596561786b4c4155336869583554423131743334513839794b5031334a36455a57536b7253396f46724e5a68000000000000000000000000000000000000000000000000000000000000000000000000000000000f54657374206461206d6569206e69750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000454444d4e00000000000000000000000000000000000000000000000000000000