LyoKICogIFRhc2sgTWFuYWdlcgogKgogKiAgQ29weXJpZ2h0IDE5OTktMjAwMSBCcmlhbiBQYWxtZXIKICogIENvcHlyaWdodCAyMDA2IE1pa29sYWogWmFsZXdza2kKICoKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKI2luY2x1ZGUgInJlc291cmNlLmgiCgpMQU5HVUFHRSBMQU5HX1BPTElTSCwgU1VCTEFOR19ERUZBVUxUCgovKgogTWVudQoqLwoKSURSX1RBU0tNQU5BR0VSIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICImUGxpayIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZOb3dlIHphZGFuaWUgKFVydWNob20uLi4pIiwgICAgICAgICAgSURfRklMRV9ORVcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlpha2/xY3ogTWVuZWS/ZXJhIHphZGHxIiwgICAgICAgICAgSURfRklMRV9FWElUCiAgICBFTkQKICAgIFBPUFVQICImT3BjamUiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImWmF3c3plIG5hIHdpZXJ6Y2h1IiwgICAgICAgICAgICAgIElEX09QVElPTlNfQUxXQVlTT05UT1AKICAgICAgICAsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJk1pbmltYWxpenVqIHBvZGN6YXMgdb95dGtvd2FuaWEiLCAgICAgICAgICAgIElEX09QVElPTlNfTUlOSU1JWkVPTlVTRQogICAgICAgICwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImVWtyeWoga2llZHkgamVzdCB6bWluaW1hbGl6b3dhbnkiLCAgICAgICAgSURfT1BUSU9OU19ISURFV0hFTk1JTklNSVpFRAogICAgICAgICwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImUG9rYXp1aiB6YWRhbmlhIDE2LWJpdG93ZSIsICAgICAgICAgIElEX09QVElPTlNfU0hPVzE2QklUVEFTS1MKICAgICAgICAsIENIRUNLRUQKICAgIEVORAogICAgUE9QVVAgIiZXaWRvayIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZPZJx3aWW/IHRlcmF6IiwgICAgICAgICAgICAgICAgSURfVklFV19SRUZSRVNICiAgICAgICAgUE9QVVAgIiZDeupzdG90bGl3b5zmIG9knHdpZb9hbmlhIgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImV3lzb2thIiwgICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfSElHSAogICAgICAgICAgICBNRU5VSVRFTSAiJk5vcm1hbG5hIiwgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1VQREFURVNQRUVEX05PUk1BTAogICAgICAgICAgICAsIENIRUNLRUQKICAgICAgICAgICAgTUVOVUlURU0gIk4maXNrYSIsICAgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19VUERBVEVTUEVFRF9MT1cKICAgICAgICAgICAgTUVOVUlURU0gIiZaYXBhdXpvd2FuZSIsICAgICAgICAgICAgICAgICAgICAgSURfVklFV19VUERBVEVTUEVFRF9QQVVTRUQKCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZEdb9lIGlrb255IiwgICAgICAgICAgICAgICAgSURfVklFV19MQVJHRQogICAgICAgIE1FTlVJVEVNICImTWGzZSBpa29ueSIsICAgICAgICAgICAgICAgIElEX1ZJRVdfU01BTEwKICAgICAgICBNRU5VSVRFTSAiJlN6Y3plZ/OzeSIsICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX0RFVEFJTFMsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJld5Ymllcnoga29sdW1ueS4uLiIsICAgICAgICAgIElEX1ZJRVdfU0VMRUNUQ09MVU1OUwogICAgICAgIFBPUFVQICImSGlzdG9yaWEgdb95Y2lhIHByb2Nlc29yYSIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJkplZGVuIHd5a3JlcyBkbGEgd3N6eXN0a2ljaCBwcm9jZXNvcvN3IiwgICAgICAgIElEX1ZJRVdfQ1BVSElTVE9SWV9PTkVHUkFQSEFMTAoKICAgICAgICAgICAgTUVOVUlURU0gIiZPc29ibnkgd3lrcmVzIGRsYSBrYb9kZWdvIHByb2Nlc29yYSIsICAgICAgICAgIElEX1ZJRVdfQ1BVSElTVE9SWV9PTkVHUkFQSFBFUkNQVQogICAgICAgICAgICAsIENIRUNLRUQKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSAiJlBva2F6dWogY3phc3kgarlkcmEiLCAgICAgICAgICBJRF9WSUVXX1NIT1dLRVJORUxUSU1FUwogICAgRU5ECiAgICBQT1BVUCAiJk9rbmEiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImU7lzaWFkdWq5Y28gdyBwb3ppb21pZSIsICAgICAgICAgIElEX1dJTkRPV1NfVElMRUhPUklaT05UQUxMWQogICAgICAgIE1FTlVJVEVNICJTuXMmaWFkdWq5Y28gdyBwb3ppb21pZSIsICAgICAgICAgICAgSURfV0lORE9XU19USUxFVkVSVElDQUxMWQogICAgICAgIE1FTlVJVEVNICImTWluaW1hbGl6dWoiLCAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01JTklNSVpFCiAgICAgICAgTUVOVUlURU0gIk0mYWtzeW1hbGl6dWoiLCAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01BWElNSVpFCiAgICAgICAgTUVOVUlURU0gIiZLYXNrYWRhIiwgICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfQ0FTQ0FERQogICAgICAgIE1FTlVJVEVNICImUHJ6ZXN18SBuYSB3aWVyemNoIiwgICAgICAgICAgICAgSURfV0lORE9XU19CUklOR1RPRlJPTlQKICAgIEVORAogICAgUE9QVVAgIiZQb21vYyIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIk1lbmVkv2VyIHphZGHxIC0gJnRlbWF0eSBwb21vY3kiLCAgIElEX0hFTFBfVE9QSUNTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIk1lbmVkv2VyIHphZGHxIC0gJmluZm9ybWFjamUiLCAgICAgICAgIElEX0hFTFBfQUJPVVQKICAgIEVORApFTkQKCklEUl9XSU5ET1dTTUVOVSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBNRU5VSVRFTSAiJlO5c2lhZHVquWNvIHcgcG96aW9taWUiLCAgICAgICAgICBJRF9XSU5ET1dTX1RJTEVIT1JJWk9OVEFMTFkKICAgIE1FTlVJVEVNICJTuXMmaWFkdWq5Y28gdyBwb3ppb21pZSIsICAgICAgICAgICAgSURfV0lORE9XU19USUxFVkVSVElDQUxMWQogICAgTUVOVUlURU0gIiZNaW5pbWFsaXp1aiIsICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfTUlOSU1JWkUKICAgIE1FTlVJVEVNICJNJmFrc3ltYWxpenVqIiwgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NQVhJTUlaRQogICAgTUVOVUlURU0gIiZLYXNrYWRhIiwgICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfQ0FTQ0FERQogICAgTUVOVUlURU0gIiZQcnplc3XxIG5hIHdpZXJ6Y2giLCAgICAgICAgICAgICBJRF9XSU5ET1dTX0JSSU5HVE9GUk9OVApFTkQKCklEUl9BUFBMSUNBVElPTl9QQUdFX0NPTlRFWFQxIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZOb3dlIHphZGFuaWUgKFVydWNob20uLi4pIiwgICAgICAgICAgSURfRklMRV9ORVcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkR1v2UgaWtvbnkiLCAgICAgICAgICAgICAgICBJRF9WSUVXX0xBUkdFCiAgICAgICAgTUVOVUlURU0gIiZNYbNlIGlrb255IiwgICAgICAgICAgICAgICAgSURfVklFV19TTUFMTAogICAgICAgIE1FTlVJVEVNICImU3pjemVn87N5IiwgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfREVUQUlMUywgQ0hFQ0tFRAogICAgRU5ECkVORAoKSURSX0FQUExJQ0FUSU9OX1BBR0VfQ09OVEVYVDIgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIkRVTU1ZIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJlByemWzuWN6IG5hIiwgICAgICAgICAgICAgICAgICBJRF9BUFBMSUNBVElPTl9QQUdFX1NXSVRDSFRPCiAgICAgICAgTUVOVUlURU0gIlAmcnplc3XxIG5hIHdpZXJ6Y2giLCAgICAgICAgICAgICBJRF9XSU5ET1dTX0JSSU5HVE9GUk9OVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU7lzaWFkdWq5Y28gdyBwb3ppb21pZSIsICAgICAgICAgIElEX1dJTkRPV1NfVElMRUhPUklaT05UQUxMWQogICAgICAgIE1FTlVJVEVNICJTuXMmaWFkdWq5Y28gdyBwaW9uaWUiLCAgICAgICAgICAgIElEX1dJTkRPV1NfVElMRVZFUlRJQ0FMTFkKICAgICAgICBNRU5VSVRFTSAiJk1pbmltYWxpenVqIiwgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NSU5JTUlaRQogICAgICAgIE1FTlVJVEVNICJNJmFrc3ltYWxpenVqIiwgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NQVhJTUlaRQogICAgICAgIE1FTlVJVEVNICImS2Fza2FkYSIsICAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX0NBU0NBREUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlpha2/xY3p5IHphZGFuaWUiLCAgICAgICAgICAgICAgICAgICBJRF9BUFBMSUNBVElPTl9QQUdFX0VORFRBU0sKICAgICAgICBNRU5VSVRFTSAiJklknyBkbyBwcm9jZXN1IiwgICAgICAgICAgICAgIElEX0FQUExJQ0FUSU9OX1BBR0VfR09UT1BST0NFU1MKICAgIEVORApFTkQKCklEUl9UUkFZX1BPUFVQIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZQcnp5d3Lz5iIsICAgICAgICAgICAgICAgICAgICBJRF9SRVNUT1JFCiAgICAgICAgTUVOVUlURU0gIiZaYW1rbmlqIiwgICAgICAgICAgICAgICAgICAgICAgSURfRklMRV9FWElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlomYXdzemUgbmEgd2llcnpjaHUiLCAgICAgICAgICAgICAgSURfT1BUSU9OU19BTFdBWVNPTlRPUAogICAgRU5ECkVORAoKSURSX1BST0NFU1NfUEFHRV9DT05URVhUIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZaYWtv8WN6IHByb2NlcyIsICAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9FTkRQUk9DRVNTCiAgICAgICAgTUVOVUlURU0gIlphbWtuaWogJmRyemV3byBwcm9jZXPzdyIsICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfRU5EUFJPQ0VTU1RSRUUKCiAgICAgICAgTUVOVUlURU0gIiZEZWJ1Z3VqIiwgICAgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX0RFQlVHCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgIlVzdGFsICZwcmlvcnl0ZXQiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZDemFzdSByemVjenl3aXN0ZWdvIiwgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX1JFQUxUSU1FCgogICAgICAgICAgICBNRU5VSVRFTSAiJld5c29raSIsICAgICAgICAgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfSElHSAoKICAgICAgICAgICAgTUVOVUlURU0gIiZQb3d5v2VqIG5vcm1hbG5lZ28iLCAgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfQUJPVkVOT1JNQUwKCiAgICAgICAgICAgIE1FTlVJVEVNICImTm9ybWFsbnkiLCAgICAgICAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9OT1JNQUwKCiAgICAgICAgICAgIE1FTlVJVEVNICJQb24mab9laiBub3JtYWxuZWdvIiwgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0JFTE9XTk9STUFMCgogICAgICAgICAgICBNRU5VSVRFTSAiJk5pc2tpIiwgICAgICAgICAgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfTE9XCgogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNICJVc3RhbCAma29saWdhY2rqLi4uIiwgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUQUZGSU5JVFkKICAgICAgICBNRU5VSVRFTSAiS29uZmlndXJ1aiBrYW5hs3kgJmRlYnVnb3dhbmlhLi4uIiwJSURfUFJPQ0VTU19QQUdFX0RFQlVHQ0hBTk5FTFMKICAgIEVORApFTkQKCi8qCiBEaWFsb2cKKi8KCklERF9UQVNLTUdSX0RJQUxPRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2NCwgMjQ2ClNUWUxFIERTX0NFTlRFUiB8IFdTX01JTklNSVpFQk9YIHwgV1NfTUFYSU1JWkVCT1ggfCBXU19QT1BVUCB8CiAgICBXU19DTElQU0lCTElOR1MgfCBXU19DTElQQ0hJTERSRU4gfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8CiAgICBXU19USElDS0ZSQU1FCkNBUFRJT04gIk1lbmVkv2VyIHphZGHxIgpNRU5VIElEUl9UQVNLTUFOQUdFUgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBDT05UUk9MICAgICAgICAgIlRhYjEiLElEQ19UQUIsIlN5c1RhYkNvbnRyb2wzMiIsV1NfVEFCU1RPUCwzLDMsMjU3LDIyOApFTkQKCklERF9BUFBMSUNBVElPTl9QQUdFIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQ3LCAyMTAKU1RZTEUgRFNfQ09OVFJPTCB8IFdTX0NISUxEIHwgV1NfQ0xJUENISUxEUkVOCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIENPTlRST0wgICAgICAgICAiTGlzdDIiLElEQ19BUFBMSVNULCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0hPV1NFTEFMV0FZUyB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsNyw3LDIzMywxNzcKICAgIFBVU0hCVVRUT04gICAgICAiJk5vd2UgemFkYW5pZS4uLiIsSURDX05FV1RBU0ssMTcyLDE4OSw2OCwxNAogICAgUFVTSEJVVFRPTiAgICAgICImUHJ6ZbO5Y3ogbmEiLElEQ19TV0lUQ0hUTywxMDEsMTg5LDY4LDE0LFdTX0RJU0FCTEVECiAgICBQVVNIQlVUVE9OICAgICAgIiZaYWtv8WN6IHphZGFuaWUiLElEQ19FTkRUQVNLLDMwLDE4OSw2OCwxNCxXU19ESVNBQkxFRApFTkQKCklERF9QUk9DRVNTX1BBR0UgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNDcsIDIxMApTVFlMRSBEU19DT05UUk9MIHwgV1NfQ0hJTEQgfCBXU19DTElQQ0hJTERSRU4KRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgQ09OVFJPTCAgICAgICAgICJMaXN0MiIsSURDX1BST0NFU1NMSVNULCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgTFZTX1NIT1dTRUxBTFdBWVMgfCBMVlNfT1dORVJEQVRBIHwKICAgICAgICAgICAgICAgICAgICBXU19CT1JERVIgfCBXU19UQUJTVE9QLDcsNywyMzMsMTc3CiAgICBQVVNIQlVUVE9OICAgICAgIiZaYWtv8WN6IHByb2NlcyIsSURDX0VORFBST0NFU1MsMTcxLDE4OSw2OSwxNAogICAgQ09OVFJPTCAgICAgICAgICImUG9rYXp1aiBwcm9jZXN5IHdzenlzdGtpY2ggdb95dGtvd25pa/N3IixJRENfU0hPV0FMTFBST0NFU1NFUywKICAgICAgICAgICAgICAgICAgICAiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDcsMTkxLDE2MSwxMApFTkQKCklERF9QRVJGT1JNQU5DRV9QQUdFIERJQUxPR0VYIERJU0NBUkRBQkxFICAwLCAwLCAyNDcsIDIxMApTVFlMRSBEU19DT05UUk9MIHwgV1NfQ0hJTEQgfCBXU19DTElQQ0hJTERSRU4KRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJVv3ljaWUgcHJvY2Vzb3JhIixJRENfQ1BVX1VTQUdFX0ZSQU1FLDUsNSw2MCw1NCxXU19UQUJTVE9QLCBXU19FWF9UUkFOU1BBUkVOVAogICAgR1JPVVBCT1ggICAgICAgICJVv3ljaWUgcGFtaepjaSIsSURDX01FTV9VU0FHRV9GUkFNRSw1LDYzLDYwLDU0LEJTX0xFRlRURVhULCBXU19FWF9UUkFOU1BBUkVOVAogICAgR1JPVVBCT1ggICAgICAgICJTdW15IixJRENfVE9UQUxTX0ZSQU1FLDUsMTIyLDExMSwzOSwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIlBhbWnqYyB6YWRla2xhcm93YW5hIChLQikiLElEQ19DT01NSVRfQ0hBUkdFX0ZSQU1FLDUsMTY2LDExMSwzOSwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIlBhbWnq5iBmaXp5Y3puYSAoS0IpIixJRENfUEhZU0lDQUxfTUVNT1JZX0ZSQU1FLDEzMSwxMjIsMTExLDM5LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiUGFtaermIGq5ZHJhIChLQikiLElEQ19LRVJORUxfTUVNT1JZX0ZSQU1FLDEzMSwxNjYsMTExLDM5LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIExURVhUICAgICAgICAgICAiVWNod3l0eSIsSURTX1RPVEFMU19IQU5ETEVfQ09VTlQsMTIsMTMxLDI3LDgKICAgIExURVhUICAgICAgICAgICAiV7l0a2kiLElEU19UT1RBTFNfVEhSRUFEX0NPVU5ULDEyLDE0MCwyNyw4CiAgICBMVEVYVCAgICAgICAgICAgIlByb2Nlc3kiLElEU19UT1RBTFNfUFJPQ0VTU19DT1VOVCwxMiwxNDksMzQsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19UT1RBTFNfSEFORExFX0NPVU5ULDY1LDEzMSw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfVE9UQUxTX1RIUkVBRF9DT1VOVCw2NSwxNDAsNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX1RPVEFMU19QUk9DRVNTX0NPVU5ULDY1LDE0OSw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIExURVhUICAgICAgICAgICAiUmF6ZW0iLElEU19DT01NSVRfQ0hBUkdFX1RPVEFMLDEyLDE3NSwyNyw4CiAgICBMVEVYVCAgICAgICAgICAgIkxpbWl0IixJRFNfQ09NTUlUX0NIQVJHRV9MSU1JVCwxMiwxODQsMTUsOAogICAgTFRFWFQgICAgICAgICAgICJTemN6eXQiLElEU19DT01NSVRfQ0hBUkdFX1BFQUssMTIsMTkzLDM0LDgKICAgIEVESVRURVhUICAgICAgICBJRENfQ09NTUlUX0NIQVJHRV9UT1RBTCw2NSwxNzQsNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX0NPTU1JVF9DSEFSR0VfTElNSVQsNjUsMTg0LDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19DT01NSVRfQ0hBUkdFX1BFQUssNjUsMTkzLDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgTFRFWFQgICAgICAgICAgICJSYXplbSIsSURTX1BIWVNJQ0FMX01FTU9SWV9UT1RBTCwxMzcsMTMxLDQ1LDgKICAgIExURVhUICAgICAgICAgICAiRG9zdOpwbmEiLElEU19QSFlTSUNBTF9NRU1PUllfQVZBSUxBQkxFLDEzNywxNDAsNDUsOAogICAgTFRFWFQgICAgICAgICAgICJCdWZvciBzeXN0ZW11IixJRFNfUEhZU0lDQUxfTUVNT1JZX1NZU1RFTV9DQUNIRSwxMzcsMTQ5LDQ2LDgKICAgIEVESVRURVhUICAgICAgICBJRENfUEhZU0lDQUxfTUVNT1JZX1RPVEFMLDE4NSwxMzEsNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX1BIWVNJQ0FMX01FTU9SWV9BVkFJTEFCTEUsMTg1LDE0MCw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfUEhZU0lDQUxfTUVNT1JZX1NZU1RFTV9DQUNIRSwxODUsMTQ5LDQ4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgTFRFWFQgICAgICAgICAgICJSYXplbSIsSURTX0tFUk5FTF9NRU1PUllfVE9UQUwsMTM3LDE3NCw0NSw4CiAgICBMVEVYVCAgICAgICAgICAgIlN0cm9uaWNvd2FuYSIsSURTX0tFUk5FTF9NRU1PUllfUEFHRUQsMTM3LDE4NCw0NSw4CiAgICBMVEVYVCAgICAgICAgICAgIk5pZXN0cm9uaWNvd2FuYSIsSURTX0tFUk5FTF9NRU1PUllfTk9OUEFHRUQsMTM3LDE5Myw0NSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX0tFUk5FTF9NRU1PUllfVE9UQUwsMTg1LDE3NCw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfS0VSTkVMX01FTU9SWV9QQUdFRCwxODUsMTg0LDQ4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19LRVJORUxfTUVNT1JZX05PTlBBR0VELDE4NSwxOTMsNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBHUk9VUEJPWCAgICAgICAgIkhpc3RvcmlhIHW/eWNpYSBwcm9jZXNvcmEiLElEQ19DUFVfVVNBR0VfSElTVE9SWV9GUkFNRSw3NCw1LDE2OCw1NCwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIkhpc3RvcmlhIHW/eWNpYSBwYW1p6mNpIixJRENfTUVNT1JZX1VTQUdFX0hJU1RPUllfRlJBTUUsNzQsNjMsMTY4LDU0LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIFBVU0hCVVRUT04gICAgICAiVb95Y2llIHByb2Nlc29yYSIsSURDX0NQVV9VU0FHRV9HUkFQSCwxMiwxNyw0NywzNywwLAoJCSAgICBXU19FWF9DTElFTlRFREdFCiAgICBQVVNIQlVUVE9OICAgICAgIlW/eWNpZSBwYW1p6mNpIixJRENfTUVNX1VTQUdFX0dSQVBILDEyLDc1LDQ3LDM3LDAsCiAgICAgICAgICAgICAgICAgICAgV1NfRVhfQ0xJRU5URURHRQogICAgUFVTSEJVVFRPTiAgICAgICJIaXN0b3JpYSB1v3ljaWEgcHJvY2Vzb3JhIixJRENfQ1BVX1VTQUdFX0hJU1RPUllfR1JBUEgsODEsMTcsCiAgICAgICAgICAgICAgICAgICAgMTUzLDM3LDAsV1NfRVhfQ0xJRU5URURHRQogICAgUFVTSEJVVFRPTiAgICAgICJIaXN0b3JpYSB1v3ljaWEgcGFtaepjaSIsSURDX01FTV9VU0FHRV9ISVNUT1JZX0dSQVBILDgxLDc1LAogICAgICAgICAgICAgICAgICAgIDE1MywzNywwLFdTX0VYX0NMSUVOVEVER0UKRU5ECgpJRERfREVCVUdfQ0hBTk5FTFNfRElBTE9HIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQ3LCAyMTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiS2FuYbN5IGRlYnVnb3dhbmlhIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBDT05UUk9MICAgICAgICAgIkxpc3QyIixJRENfREVCVUdfQ0hBTk5FTFNfTElTVCwiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IExWU19TSE9XU0VMQUxXQVlTIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8CgkJICAgIExWU19TT1JUQVNDRU5ESU5HLDcsNywyMzMsMTc3CiAgICBQVVNIQlVUVE9OICAgICAgIlphbWtuaWoiLElET0ssMTcxLDE4OSw2OSwxNApFTkQKCklERF9BRkZJTklUWV9ESUFMT0cgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyMzEsIDE1NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJLb2xpZ2FjamEgcHJvY2Vzb3JhIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEyMCwxMzMsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQW51bHVqIixJRENBTkNFTCwxNzQsMTMzLDUwLDE0CiAgICBMVEVYVCAgICAgICAgICAgIktvbGlnYWNqYSBQcm9jZXNvcmEgcG96d2FsYSB1c3RhbGnmIG5hIGt083J5Y2ggcHJvY2Vzb3JhY2ggbW+/bmEgdXJ1Y2hhbWlh5iB0ZW4gcHJvY2VzIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDUsNSwyMjAsMTYKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzb3IgMCIsSURDX0NQVTAsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwKICAgICAgICAgICAgICAgICAgICAxMSwyOCwzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciAxIixJRENfQ1BVMSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw0MSwzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciAyIixJRENfQ1BVMiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw1NCwzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciAzIixJRENfQ1BVMywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw2NywzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciA0IixJRENfQ1BVNCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw4MCwzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciA1IixJRENfQ1BVNSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw5MywzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciA2IixJRENfQ1BVNiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSwxMDYsMzcsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzb3IgNyIsSURDX0NQVTcsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsMTE5LDM3LDEwCiAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc29yIDgiLElEQ19DUFU4LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDYxLDI4LDM3LDEwCiAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc29yIDkiLElEQ19DUFU5LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDYxLDQxLDM3LDEwCiAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc29yIDEwIixJRENfQ1BVMTAsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsNjEsNTQsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzb3IgMTEiLElEQ19DUFUxMSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSw2Nyw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciAxMiIsSURDX0NQVTEyLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDgwLDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc29yIDEzIixJRENfQ1BVMTMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsNjEsOTMsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzb3IgMTQiLElEQ19DUFUxNCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSwxMDYsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzb3IgMTUiLElEQ19DUFUxNSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSwxMTksNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzb3IgMTYiLElEQ19DUFUxNiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsMjgsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzb3IgMTciLElEQ19DUFUxNywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsNDEsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzb3IgMTgiLElEQ19DUFUxOCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsNTQsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzb3IgMTkiLElEQ19DUFUxOSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsNjcsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzb3IgMjAiLElEQ19DUFUyMCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsODAsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzb3IgMjEiLElEQ19DUFUyMSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsOTMsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzb3IgMjIiLElEQ19DUFUyMiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsMTA2LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc29yIDIzIixJRENfQ1BVMjMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDExOSw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciAyNCIsSURDX0NQVTI0LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSwyOCw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciAyNSIsSURDX0NQVTI1LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw0MSw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciAyNiIsSURDX0NQVTI2LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw1NCw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciAyNyIsSURDX0NQVTI3LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw2Nyw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciAyOCIsSURDX0NQVTI4LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw4MCw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciAyOSIsSURDX0NQVTI5LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw5Myw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNvciAzMCIsSURDX0NQVTMwLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSwxMDYsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzb3IgMzEiLElEQ19DUFUzMSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsMTE5LDQxLDEwCkVORAoKSUREX0NPTFVNTlNfRElBTE9HIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAxOTkKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiV3liaWVyeiBrb2x1bW55IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE0NCwxNzgsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQW51bHVqIixJRENBTkNFTCwxOTgsMTc4LDUwLDE0CiAgICBMVEVYVCAgICAgICAgICAgIld5Ymllcnoga29sdW1ueSwga3TzcmUgYupkuSB3aWRvY3puZSBuYSB6YWuzYWRjZSBQcm9jZXN5IE1lbmVkv2VyYSBQcm9jZXPzdyIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQyw3LDcsMTgxLDE3CiAgICBDT05UUk9MICAgICAgICAgIiZOYXp3YSBvYnJhenUiLElEQ19JTUFHRU5BTUUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsNywyOCw1NiwxMAogICAgQ09OVFJPTCAgICAgICAgICImUElEIChJZGVudHlmaWthdG9yIHByb2Nlc3UpIixJRENfUElELCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNywzOSwxMjAsMTAKICAgIENPTlRST0wgICAgICAgICAiJlW/eWNpZSBwcm9jZXNvcmEiLElEQ19DUFVVU0FHRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNyw1MCwxMjAsMTAKICAgIENPTlRST0wgICAgICAgICAiJkN6YXMgcHJvY2Vzb3JhIixJRENfQ1BVVElNRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNyw2MSwxMjAsMTAKICAgIENPTlRST0wgICAgICAgICAiJlW/eWNpZSBwYW1p6mNpIixJRENfTUVNT1JZVVNBR0UsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsNzIsMTIwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZS879uaWNhIHW/eWNpYSBwYW1p6mNpIixJRENfTUVNT1JZVVNBR0VERUxUQSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDcsODMsMTIwLDEwCiAgICBDT05UUk9MICAgICAgICAgIlMmemN6eXRvd2Ugdb95Y2llIHBhbWnqY2kiLElEQ19QRUFLTUVNT1JZVVNBR0UsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDk0LDEyMCwxMAogICAgQ09OVFJPTCAgICAgICAgICImQrPqZHkgc3Ryb255IixJRENfUEFHRUZBVUxUUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywxMDUsMTIwLDEwCiAgICBDT05UUk9MICAgICAgICAgIk9iaWVrdHkgVVMmRVIiLElEQ19VU0VST0JKRUNUUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywxMTYsMTIwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkkvTyAtIG9kY3p5dHkiLElEQ19JT1JFQURTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDEyNywxMjAsMTAKICAgIENPTlRST0wgICAgICAgICAiSS9PIC0gb2Rjenl0YW5lIGJhanR5IixJRENfSU9SRUFEQllURVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDEzOCw2NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJJRCBTZXMmamkiLElEQ19TRVNTSU9OSUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsMTQ5LDEyMCwxMAogICAgQ09OVFJPTCAgICAgICAgICJOYSZ6d2Egdb95dG93bmlrYSIsSURDX1VTRVJOQU1FLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDE2MCwxMjAsMTAKICAgIENPTlRST0wgICAgICAgICAiUvO/bmljYSBis+omZPN3IHN0cm9ueSIsSURDX1BBR0VGQVVMVFNERUxUQSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzMCwyOCwxMjAsMTAKICAgIENPTlRST0wgICAgICAgICAiUm96bWlhciBwYW1p6mNpICZ3aXJ0dWFsbmVqIixJRENfVklSVFVBTE1FTU9SWVNJWkUsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMzAsMzksMTIwLDEwCiAgICBDT05UUk9MICAgICAgICAgIlBhJm1p6uYgc3Ryb25pY293YW5hIixJRENfUEFHRURQT09MLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMzAsNTAsMTIwLDEwCiAgICBDT05UUk9MICAgICAgICAgIlBhbWnq5iBuaSZlc3Ryb25pY293YW5hIixJRENfTk9OUEFHRURQT09MLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMwLDYxLDEyMCwxMAogICAgQ09OVFJPTCAgICAgICAgICJQcmlvcnl0ZXQgJmJhem93eSIsSURDX0JBU0VQUklPUklUWSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzMCw3MiwxMjAsMTAKICAgIENPTlRST0wgICAgICAgICAiTGljemJhICZ1Y2h3eXTzdyIsSURDX0hBTkRMRUNPVU5ULCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMzAsODMsMTIwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkxpYyZ6YmEgd7l0a/N3IixJRENfVEhSRUFEQ09VTlQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEzMCw5NCwxMjAsMTAKICAgIENPTlRST0wgICAgICAgICAiT2JpZWt0eSAmR0RJIixJRENfR0RJT0JKRUNUUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTMwLDEwNSwxMjAsMTAKICAgIENPTlRST0wgICAgICAgICAiSS9PIC0gemFwaXN5IixJRENfSU9XUklURVMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEzMCwxMTYsMTIwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkkvTyAtIHphcGlzYW5lIGJhanR5IixJRENfSU9XUklURUJZVEVTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMwLDEyNywxMjAsMTAKICAgIENPTlRST0wgICAgICAgICAiSS9PIC0gaW5uZSIsSURDX0lPT1RIRVIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEzMCwxMzgsMTIwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkkvTyAtIGlubmUgLSBiYWp0eSIsSURDX0lPT1RIRVJCWVRFUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzMCwxNDksMTIwLDEwCkVORAoKLyoKIFN0cmluZyBUYWJsZQoqLwoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19BUFBfVElUTEUgICAgICAgICAgICJNZW5lZL9lciB6YWRh8SIKICAgIElEQ19UQVNLTUdSICAgICAgICAgICAgICJNZW5lZL9lciB6YWRh8SIKICAgIElEU19SVU5ETEdfQ0FQVElPTiAgICAgICJVdHfzcnogbm93ZSB6YWRhbmllIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9GSUxFX05FVyAgICAgICAgICAgICAiVXJ1Y2hhbWlhIG5vd3kgcHJvZ3JhbSIKICAgIElEX09QVElPTlNfQUxXQVlTT05UT1AgICJNZW5lZL9lciB6YWRh8SBi6mR6aWUgcG9uYWQgaW5ueW1pIG9rbmFtaSAoY2h5YmEsIL9lIHptaW5pbWFsaXpvd2FueSkiCiAgICBJRF9PUFRJT05TX01JTklNSVpFT05VU0UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZW5lZL9lciB6YWRh8SBi6mR6aWUgbWluaW1hbGl6b3dhbnkgcG8gd3licmFuaXUgJ1ByemWzuWN6IG5hJyIKICAgIElEX09QVElPTlNfSElERVdIRU5NSU5JTUlaRUQgIlVrcnlqIE1lbmVkv2VyYSB6YWRh8SBraWVkeSBqZXN0IHptaW5pbWFsaXpvd2FueSIKICAgIElEX1ZJRVdfUkVGUkVTSCAgICAgICAgICJXeW11nCwgb2Scd2llv2VuaWUgbGlzdHkgdGVyYXosIG5pZXphbGW/bmllIG9kIEN66nN0b3RsaXdvnGNpIG9knHdpZb9hbmlhIgogICAgSURfVklFV19MQVJHRSAgICAgICAgICAgIld5nHdpZXRsIHphZGFuaWEgdb95d2FquWMgZHW/eWNoIGlrb24iCiAgICBJRF9WSUVXX1NNQUxMICAgICAgICAgICAiV3mcd2lldGwgemFkYW5pYSB1v3l3YWq5YyBtYbN5Y2ggaWtvbiIKICAgIElEX1ZJRVdfREVUQUlMUyAgICAgICAgICJXeZx3aWV0bGEgc3pjemVn87N5IGthv2RlZ28gemFkYW5pYSIKICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfSElHSCAiT2S/d2llv2EgbGlzdOogZHdhIHJhenkgbmEgc2VrdW5k6iIKICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfTk9STUFMICJPZJx3aWW/YSBsaXN06iBjbyBkd2llIHNla3VuZHkiCiAgICBJRF9WSUVXX1VQREFURVNQRUVEX0xPVyAiT2Scd2llv2EgbGlzdOogY28gY3p0ZXJ5IHNla3VuZHkiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfUEFVU0VEICJCZXogYXV0b21hdHljem5lZ28gb2Scd2llv2FuaWEgbGlzdHkiCiAgICBJRF9XSU5ET1dTX1RJTEVIT1JJWk9OVEFMTFkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSb3ptaWWc5iB3c3p5c3RraWUgb2tuYSBzuXNpYWR1arljbyB3IHBvemlvbWllIgogICAgSURfV0lORE9XU19USUxFVkVSVElDQUxMWSAiUm96bWllnOYgd3N6eXN0a2llIG9rbmEgc7lzaWFkdWq5Y28gdyBwaW9uaWUiCiAgICBJRF9XSU5ET1dTX01JTklNSVpFICAgICAiTWluaW1hbGl6dWplIHd5YnJhbmUgb2tubyIKICAgIElEX1dJTkRPV1NfTUFYSU1JWkUgICAgICJNYWtzeW1hbGl6dWplIHd5YnJhbmUgb2tubyIKICAgIElEX1dJTkRPV1NfQ0FTQ0FERSAgICAgICJSb3ptaWWc5iBva25hIHNrb5xuaWUgdyBrYXNrYWTqIgogICAgSURfV0lORE9XU19CUklOR1RPRlJPTlQgIlByemVzdfEgb2tubyBuYSB3aWVyemNoIGJleiBwcnpls7ljemVuaWUgbmEgbmllZ28iCiAgICBJRF9IRUxQX1RPUElDUyAgICAgICAgICAiV3mcd2lldGwgdGVtYXR5IHBvbW9jeSBNZW5lZL9lcmEgemFkYfEiCiAgICBJRF9IRUxQX0FCT1VUICAgICAgICAgICAiV3mcd2lldGwgaW5mb3JtYWNqZSBvIHByb2dyYW1pZSwgd2Vyc2ppIGkgcHJhd2FjaCBhdXRvcnNraWNoIgogICAgSURfRklMRV9FWElUICAgICAgICAgICAgIlpha2/xY3ogYXBsaWthY2rqIE1lbmVkv2VyYSB6YWRh8SIKICAgIElEX09QVElPTlNfU0hPVzE2QklUVEFTS1MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXeZx3aXRlbHMgMTYtYml0b3dlIHphZGFuaWEgcG9kIG9kcG93aWVkbmltIG50dmRtLmV4ZSIKICAgIElEX1ZJRVdfU0VMRUNUQ09MVU1OUyAgICJXeWJpZXJ6IGtvbHVtbnksIGt083JlIGLqZLkgd2lkb2N6bmUgbmEgemFrs2FkY2UgUHJvY2VzeSIKICAgIElEX1ZJRVdfU0hPV0tFUk5FTFRJTUVTICJQb2thenVqZSBjemFzeSBquWRyYSBuYSB3eWtyZXNhY2ggd3lkYWpub5xjaSIKICAgIElEX1ZJRVdfQ1BVSElTVE9SWV9PTkVHUkFQSEFMTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkplZGVuIHd5a3JlcyBwb2thenVqZSBjYbNrb3dpdGUgdb95Y2llIHByb2Nlc29y83ciCiAgICBJRF9WSUVXX0NQVUhJU1RPUllfT05FR1JBUEhQRVJDUFUgIkthv2R5IHByb2Nlc29yIG1hIHN382ogd7Nhc255IHd5a3JlcyB1v3ljaWEiCiAgICBJRF9BUFBMSUNBVElPTl9QQUdFX1NXSVRDSFRPCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHJ6ZXN1d2EgemFkYW5pZSBuYSB3aWVyemNoIGkgcHJ6ZbO5Y3phIG5hIG5pZSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfRU5EVEFTSyAgICAgICAgICAgICAgIlBvbGXmIHd5YnJhbnltIHphZGFuaW9tIHpha2/xY3plbmllIGR6aWGzYW5pYSIKICAgIElEX0dPVE9QUk9DRVNTICAgICAgICAgICJQcnpls7ljemEgbmEgcHJvY2VzIHd5YnJhbmVnbyB6YWRhbmlhIgogICAgSURfUkVTVE9SRSAgICAgICAgICAgICAgIlByenl3cvPmIE1lbmVkv2VyYSB6YWRh8SB6IGplZ28gdWtyeXRlZ28gc3RhbnUiCiAgICBJRF9QUk9DRVNTX1BBR0VfRU5EUFJPQ0VTUyAiVXN1d2EgZGFuZSB6YWRhbmllIHogc3lzdGVtdSIKICAgIElEX1BST0NFU1NfUEFHRV9FTkRQUk9DRVNTVFJFRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVzdXdhIGRhbnkgcHJvY2VzIGkgd3N6eXN0a2ljaCBqZWdvIHBvdG9ta/N3IHogc3lzdGVtdSIKICAgIElEX1BST0NFU1NfUEFHRV9ERUJVRyAgICJQb2SzuWN6YSBkZWJ1Z2VyIGRvIHRlZ28gemFkYW5pYSIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRBRkZJTklUWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVzdGFsYSBuYSBqYWtpY2ggcHJvY2Vzb3JhY2ggdGVuIHByb2NlcyBtb79lIHNp6iB3eWtvbnl3YeYiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfUkVBTFRJTUUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVc3RhbGEgcHJpb3J5dGV0IHByb2Nlc3UgbmEgY3phcyByemVjenl3aXN0eSIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9ISUdIICJVc3RhbGEgcHJpb3J5dGV0IHByb2Nlc3UgbmEgd3lzb2tpIgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0FCT1ZFTk9STUFMCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXN0YWxhIHByaW9yeXRldCBwcm9jZXN1IHBvd3m/ZWogbm9ybWFsbmVnbyIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9OT1JNQUwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVc3RhbGEgcHJpb3J5dGV0IHByb2Nlc3UgbmEgbm9ybWFsbnkiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfQkVMT1dOT1JNQUwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVc3RhbGEgcHJpb3J5dGV0IHByb2Nlc3UgbmEgcG9uab9laiBub3JtYWxuZWdvIgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0xPVyAiVXN0YWxhIHByaW9yeXRldCBwcm9jZXN1IG5hIG5pc2tpIgpFTkQK