LyoKICogIFRhc2sgTWFuYWdlcgogKiAgRnJlbmNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogIENvcHlyaWdodCAyMDA1LTIwMDYgSm9uYXRoYW4gRXJuc3QKICoKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKI2luY2x1ZGUgInJlc291cmNlLmgiCgpMQU5HVUFHRSBMQU5HX0ZSRU5DSCwgU1VCTEFOR19ORVVUUkFMCgovKgogTWVudQoqLwoKSURSX1RBU0tNQU5BR0VSIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICImRmljaGllciIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZOb3V2ZWxsZSB04mNoZSAoRXjpY3V0ZXIuLi4pIiwgICAgICAgICAgSURfRklMRV9ORVcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlF1aXR0ZXIgbGUgZ2VzdGlvbm5haXJlIGRlcyB04mNoZXMiLCAgICAgICAgICBJRF9GSUxFX0VYSVQKICAgIEVORAogICAgUE9QVVAgIiZPcHRpb25zIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiVG91am91cnMgJnZpc2libGUiLCAgICAgICAgICAgICAgSURfT1BUSU9OU19BTFdBWVNPTlRPUAogICAgICAgICwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICJS6WQmdWlyZSDgIGwnZXjpY3V0aW9uIiwgICAgICBJRF9PUFRJT05TX01JTklNSVpFT05VU0UKICAgICAgICAsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJk1hc3F1ZXIgbCdpY/RuZSBy6WR1aXRlIiwgICAgSURfT1BUSU9OU19ISURFV0hFTk1JTklNSVpFRAogICAgICAgICwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImTW9udHJlciBsZXMgdOJjaGVzIDE2LWJpdCIsICBJRF9PUFRJT05TX1NIT1cxNkJJVFRBU0tTCiAgICAgICAgLCBDSEVDS0VECiAgICBFTkQKICAgIFBPUFVQICImQWZmaWNoYWdlIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkFjdHVhbGlzZXIgbWFpbnRlbmFudCIsICAgICAgICAgICAgICAgIElEX1ZJRVdfUkVGUkVTSAogICAgICAgIFBPUFVQICImRnLpcXVlbmNlIGQnYWN0dWFsaXNhdGlvbiIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJkhhdXRlIiwgICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfSElHSAogICAgICAgICAgICBNRU5VSVRFTSAiJk5vcm1hbGUiLCAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfTk9STUFMCiAgICAgICAgICAgICwgQ0hFQ0tFRAogICAgICAgICAgICBNRU5VSVRFTSAiJkJhc3NlIiwgICAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1VQREFURVNQRUVEX0xPVwogICAgICAgICAgICBNRU5VSVRFTSAiRW4gcGF1JnNlIiwgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1VQREFURVNQRUVEX1BBVVNFRAoKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRyZyYW5kZXMgaWP0bmVzIiwgICAgICAgICAgICAgICAgSURfVklFV19MQVJHRQogICAgICAgIE1FTlVJVEVNICJQJmV0aXRlcyBpY/RuZXMiLCAgICAgICAgICAgICAgICBJRF9WSUVXX1NNQUxMCiAgICAgICAgTUVOVUlURU0gIiZE6XRhaWxzIiwgICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfREVUQUlMUywgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImU+lsZWN0aW9ubmVyIGxlcyBjb2xvbm5lcy4uLiIsICAgICAgICAgICBJRF9WSUVXX1NFTEVDVENPTFVNTlMKICAgICAgICBQT1BVUCAiJkhpc3RvcmlxdWUgZHUgcHJvY2Vzc2V1ciIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiVW4gc2V1bCBncmFwaGlxdWUgcG91ciAmdG91cyBsZXMgcHJvY2Vzc2V1cnMiLCAgICAgICAgSURfVklFV19DUFVISVNUT1JZX09ORUdSQVBIQUxMCgogICAgICAgICAgICBNRU5VSVRFTSAiVW4gZ3JhcGhpcXVlICZwYXIgcHJvY2Vzc2V1ciIsICAgICAgICAgIElEX1ZJRVdfQ1BVSElTVE9SWV9PTkVHUkFQSFBFUkNQVQogICAgICAgICAgICAsIENIRUNLRUQKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSAiQWZmJmljaGVyIGxlcyB0ZW1wcyBkdSBub3lhdSIsICAgICAgICAgIElEX1ZJRVdfU0hPV0tFUk5FTFRJTUVTCiAgICBFTkQKICAgIFBPUFVQICJGZSZu6nRyZXMiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJBcnJhbmdlciAmSG9yaXpvbnRhbGxlbWVudCIsICAgICAgICAgIElEX1dJTkRPV1NfVElMRUhPUklaT05UQUxMWQogICAgICAgIE1FTlVJVEVNICJBcnJhbmdlciAmVmVydGljYWxsZW1lbnQiLCAgICAgICAgICAgIElEX1dJTkRPV1NfVElMRVZFUlRJQ0FMTFkKICAgICAgICBNRU5VSVRFTSAiJlLpZHVpcmUiLCAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01JTklNSVpFCiAgICAgICAgTUVOVUlURU0gIiZBZ3JhbmRpciIsICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfTUFYSU1JWkUKICAgICAgICBNRU5VSVRFTSAiJkNhc2NhZGUiLCAgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19DQVNDQURFCiAgICAgICAgTUVOVUlURU0gIlRvdWpvdXJzICZ2aXNpYmxlIiwgICAgICAgICAgICAgSURfV0lORE9XU19CUklOR1RPRlJPTlQKICAgIEVORAogICAgUE9QVVAgIkFpZCZlIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiUnVicmlxdWVzIGQnYWlkZSBkdSBHZXN0aW9ubmFpcmUgZGVzIHTiY2hlcyIsICAgSURfSEVMUF9UT1BJQ1MKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiwCAmcHJvcG9zIGR1IEdlc3Rpb25uYWlyZSBkZXMgdOJjaGVzIiwgICAgICAgICBJRF9IRUxQX0FCT1VUCiAgICBFTkQKRU5ECgpJRFJfV0lORE9XU01FTlUgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgTUVOVUlURU0gIkFycmFuZ2VyICZIb3Jpem9udGFsbGVtZW50IiwgICAgICAgICAgSURfV0lORE9XU19USUxFSE9SSVpPTlRBTExZCiAgICBNRU5VSVRFTSAiQXJyYW5nZXIgJlZlcnRpY2FsbGVtZW50IiwgICAgICAgICAgICBJRF9XSU5ET1dTX1RJTEVWRVJUSUNBTExZCiAgICBNRU5VSVRFTSAiJlLpZHVpcmUiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01JTklNSVpFCiAgICBNRU5VSVRFTSAiJkFncmFuZGlyIiwgICAgICAgICAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01BWElNSVpFCiAgICBNRU5VSVRFTSAiJkNhc2NhZGUiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX0NBU0NBREUKICAgIE1FTlVJVEVNICJUb3Vqb3VycyAmdmlzaWJsZSIsICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfQlJJTkdUT0ZST05UCkVORAoKSURSX0FQUExJQ0FUSU9OX1BBR0VfQ09OVEVYVDEgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIkRVTU1ZIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJk5vdXZlbGxlIFTiY2hlIChFeOljdXRlci4uLikiLCAgIElEX0ZJTEVfTkVXCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkcmcmFuZGVzIElj9G5lcyIsICAgICAgICAgICAgICAgICBJRF9WSUVXX0xBUkdFCiAgICAgICAgTUVOVUlURU0gIlAmZXRpdGVzIElj9G5lcyIsICAgICAgICAgICAgICAgICBJRF9WSUVXX1NNQUxMCiAgICAgICAgTUVOVUlURU0gIiZE6XRhaWxzIiwgICAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX0RFVEFJTFMsIENIRUNLRUQKICAgIEVORApFTkQKCklEUl9BUFBMSUNBVElPTl9QQUdFX0NPTlRFWFQyIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZCYXNjdWxlciB2ZXJzIiwgICAgICAgICAgICAgICAgSURfQVBQTElDQVRJT05fUEFHRV9TV0lUQ0hUTwogICAgICAgIE1FTlVJVEVNICJUb3Vqb3VycyAmdmlzaWJsZSIsICAgICAgICAgICAgIElEX1dJTkRPV1NfQlJJTkdUT0ZST05UCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkFycmFuZ2VyICZIb3Jpem9udGFsbGVtZW50IiwgICAgSURfV0lORE9XU19USUxFSE9SSVpPTlRBTExZCiAgICAgICAgTUVOVUlURU0gIkFycmFuZ2VyICZWZXJ0aWNhbGxlbWVudCIsICAgICAgSURfV0lORE9XU19USUxFVkVSVElDQUxMWQogICAgICAgIE1FTlVJVEVNICImUulkdWlyZSIsICAgICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfTUlOSU1JWkUKICAgICAgICBNRU5VSVRFTSAiJkFncmFuZGlyIiwgICAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01BWElNSVpFCiAgICAgICAgTUVOVUlURU0gIiZDYXNjYWRlIiwgICAgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19DQVNDQURFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkYmaW4gZGUgdOJjaGUiLCAgICAgICAgICAgICAgICAgSURfQVBQTElDQVRJT05fUEFHRV9FTkRUQVNLCiAgICAgICAgTUVOVUlURU0gIiZTdWl2cmUgbGUgcHJvY2Vzc3VzIiwgICAgICAgICAgICAgICAgSURfQVBQTElDQVRJT05fUEFHRV9HT1RPUFJPQ0VTUwogICAgRU5ECkVORAoKSURSX1RSQVlfUE9QVVAgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIkRVTU1ZIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJlJlc3RhdXJlciIsICAgICAgICAgICAgICAgICAgICAgSURfUkVTVE9SRQogICAgICAgIE1FTlVJVEVNICImRmVybWVyIiwgICAgICAgICAgICAgICAgICAgICAgICBJRF9GSUxFX0VYSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiVG91am91cnMgJnZpc2libGUiLCAgICAgICAgICAgICAgSURfT1BUSU9OU19BTFdBWVNPTlRPUAogICAgRU5ECkVORAoKSURSX1BST0NFU1NfUEFHRV9DT05URVhUIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZUZXJtaW5lciBsZSBwcm9jZXNzdXMiLCAgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfRU5EUFJPQ0VTUwogICAgICAgIE1FTlVJVEVNICJUZXJtaW5lciBsJyZhcmJvcmVzY2VuY2UgZHUgcHJvY2Vzc3VzIiwgSURfUFJPQ0VTU19QQUdFX0VORFBST0NFU1NUUkVFCgogICAgICAgIE1FTlVJVEVNICImROlib2d1ZXIiLCAgICAgICAgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfREVCVUcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBQT1BVUCAiROlmaW5pciBsYSAmcHJpb3JpdOkiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIlRlbXBzICZy6WVsIiwgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX1JFQUxUSU1FCgogICAgICAgICAgICBNRU5VSVRFTSAiJkhhdXRlIiwgICAgICAgICAgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfSElHSAoKICAgICAgICAgICAgTUVOVUlURU0gIiZTdXDpcmlldXJlIOAgbGEgbm9ybWFsZSIsICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0FCT1ZFTk9STUFMCgogICAgICAgICAgICBNRU5VSVRFTSAiJk5vcm1hbGUiLCAgICAgICAgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfTk9STUFMCgogICAgICAgICAgICBNRU5VSVRFTSAiJkluZulyaWV1cmUg4CBsYSBub3JtYWxlIiwgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfQkVMT1dOT1JNQUwKCiAgICAgICAgICAgIE1FTlVJVEVNICImQmFzc2UiLCAgICAgICAgICAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9MT1cKCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gIkTpZmluaXIgbCcmYWZmaW5pdOkuLi4iLCAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRBRkZJTklUWQoJTUVOVUlURU0gIk1vZGlmaWVyIGxlcyAmY2FuYXV4IGRlIGTpYm9nYWdlLi4uIiwJSURfUFJPQ0VTU19QQUdFX0RFQlVHQ0hBTk5FTFMKICAgIEVORApFTkQKCi8qCiBEaWFsb2cKKi8KCklERF9UQVNLTUdSX0RJQUxPRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2NCwgMjQ2ClNUWUxFIERTX0NFTlRFUiB8IFdTX01JTklNSVpFQk9YIHwgV1NfTUFYSU1JWkVCT1ggfCBXU19QT1BVUCB8CiAgICBXU19DTElQU0lCTElOR1MgfCBXU19DTElQQ0hJTERSRU4gfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8CiAgICBXU19USElDS0ZSQU1FCkNBUFRJT04gIkdlc3Rpb25uYWlyZSBkZXMgdOJjaGVzIgpNRU5VIElEUl9UQVNLTUFOQUdFUgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBDT05UUk9MICAgICAgICAgIlRhYjEiLElEQ19UQUIsIlN5c1RhYkNvbnRyb2wzMiIsV1NfVEFCU1RPUCwzLDMsMjU3LDIyOApFTkQKCklERF9BUFBMSUNBVElPTl9QQUdFIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQ3LCAyMTAKU1RZTEUgRFNfQ09OVFJPTCB8IFdTX0NISUxEIHwgV1NfQ0xJUENISUxEUkVOCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIENPTlRST0wgICAgICAgICAiTGlzdDIiLElEQ19BUFBMSVNULCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0hPV1NFTEFMV0FZUyB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsNyw3LDIzMywxNzcKICAgIFBVU0hCVVRUT04gICAgICAiJk5vdXZlbGxlIHTiY2hlIixJRENfTkVXVEFTSywxODcsMTg5LDUzLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZCYXNjdWxlciB2ZXJzIixJRENfU1dJVENIVE8sMTMxLDE4OSw1MywxNCxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICImRmluIGRlIHTiY2hlIixJRENfRU5EVEFTSyw3NSwxODksNTYsMTQsV1NfRElTQUJMRUQKRU5ECgpJRERfUFJPQ0VTU19QQUdFIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQ3LCAyMTAKU1RZTEUgRFNfQ09OVFJPTCB8IFdTX0NISUxEIHwgV1NfQ0xJUENISUxEUkVOCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIENPTlRST0wgICAgICAgICAiTGlzdDIiLElEQ19QUk9DRVNTTElTVCwiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IExWU19TSE9XU0VMQUxXQVlTIHwgTFZTX09XTkVSREFUQSB8CiAgICAgICAgICAgICAgICAgICAgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCw3LDcsMjMzLDE3NwogICAgUFVTSEJVVFRPTiAgICAgICImVGVybWluZXIgbGUgcHJvY2Vzc3VzIixJRENfRU5EUFJPQ0VTUywxNjEsMTg5LDc5LDE0CiAgICBDT05UUk9MICAgICAgICAgIiZBZmZpY2hlciBsZXMgcHJvY2Vzc3VzIGRlIHRvdXMgbGVzIHV0aWxpc2F0ZXVycyIsSURDX1NIT1dBTExQUk9DRVNTRVMsCiAgICAgICAgICAgICAgICAgICAgIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDE5MSwxNjEsMTAKRU5ECgovKklERF9QRVJGT1JNQU5DRV9QQUdFIERJQUxPR0VYIDAsIDAsIDI0NywgMjEwKi8KSUREX1BFUkZPUk1BTkNFX1BBR0UgRElBTE9HRVggRElTQ0FSREFCTEUgIDAsIDAsIDI0NywgMjEwClNUWUxFIERTX0NPTlRST0wgfCBXU19DSElMRCB8IFdTX0NMSVBDSElMRFJFTgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIlV0aWxpc2F0aW9uIGR1IHByb2Nlc3NldXIiLElEQ19DUFVfVVNBR0VfRlJBTUUsNSw1LDYwLDU0LFdTX1RBQlNUT1AsIFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIlV0aWxpc2F0aW9uIGRlIGxhIG3pbW9pcmUiLElEQ19NRU1fVVNBR0VfRlJBTUUsNSw2Myw2MCw1NCxCU19MRUZUVEVYVCwgV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiVG90YXV4IixJRENfVE9UQUxTX0ZSQU1FLDUsMTIyLDExMSwzOSwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIkNoYXJnZSBk6WRp6WUgKEtpbykiLElEQ19DT01NSVRfQ0hBUkdFX0ZSQU1FLDUsMTY2LDExMSwzOSwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIk3pbW9pcmUgcGh5c2lxdWUgKEtpbykiLElEQ19QSFlTSUNBTF9NRU1PUllfRlJBTUUsMTMxLDEyMiwxMTEsMzksMCxXU19FWF9UUkFOU1BBUkVOVAogICAgR1JPVVBCT1ggICAgICAgICJN6W1vaXJlIHBvdXIgbGUgbm95YXUgKEtpbykiLElEQ19LRVJORUxfTUVNT1JZX0ZSQU1FLDEzMSwxNjYsMTExLDM5LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIExURVhUICAgICAgICAgICAiSGFuZGxlcyIsSURTX1RPVEFMU19IQU5ETEVfQ09VTlQsMTIsMTMxLDI3LDgKICAgIExURVhUICAgICAgICAgICAiVGhyZWFkcyIsSURTX1RPVEFMU19USFJFQURfQ09VTlQsMTIsMTQwLDI3LDgKICAgIExURVhUICAgICAgICAgICAiUHJvY2Vzc3VzIixJRFNfVE9UQUxTX1BST0NFU1NfQ09VTlQsMTIsMTQ5LDM0LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVE9UQUxTX0hBTkRMRV9DT1VOVCw2NSwxMzEsNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX1RPVEFMU19USFJFQURfQ09VTlQsNjUsMTQwLDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19UT1RBTFNfUFJPQ0VTU19DT1VOVCw2NSwxNDksNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBMVEVYVCAgICAgICAgICAgIlRvdGFsIixJRFNfQ09NTUlUX0NIQVJHRV9UT1RBTCwxMiwxNzUsMjcsOAogICAgTFRFWFQgICAgICAgICAgICJMaW1pdGUiLElEU19DT01NSVRfQ0hBUkdFX0xJTUlULDEyLDE4NCwxNSw4CiAgICBMVEVYVCAgICAgICAgICAgIlBpYyIsSURTX0NPTU1JVF9DSEFSR0VfUEVBSywxMiwxOTMsMzQsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19DT01NSVRfQ0hBUkdFX1RPVEFMLDY1LDE3NCw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfQ09NTUlUX0NIQVJHRV9MSU1JVCw2NSwxODQsNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX0NPTU1JVF9DSEFSR0VfUEVBSyw2NSwxOTMsNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBMVEVYVCAgICAgICAgICAgIlRvdGFsIixJRFNfUEhZU0lDQUxfTUVNT1JZX1RPVEFMLDEzNywxMzEsMjcsOAogICAgTFRFWFQgICAgICAgICAgICJEaXNwb25pYmxlIixJRFNfUEhZU0lDQUxfTUVNT1JZX0FWQUlMQUJMRSwxMzcsMTQwLDMwLDgKICAgIExURVhUICAgICAgICAgICAiQ2FjaGUgc3lzdOhtZSIsSURTX1BIWVNJQ0FMX01FTU9SWV9TWVNURU1fQ0FDSEUsMTM3LDE0OSw0Niw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1BIWVNJQ0FMX01FTU9SWV9UT1RBTCwxODUsMTMxLDQ4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19QSFlTSUNBTF9NRU1PUllfQVZBSUxBQkxFLDE4NSwxNDAsNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX1BIWVNJQ0FMX01FTU9SWV9TWVNURU1fQ0FDSEUsMTg1LDE0OSw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIExURVhUICAgICAgICAgICAiVG90YWwiLElEU19LRVJORUxfTUVNT1JZX1RPVEFMLDEzNywxNzQsMjcsOAogICAgTFRFWFQgICAgICAgICAgICJQYWdpbullIixJRFNfS0VSTkVMX01FTU9SWV9QQUdFRCwxMzcsMTg0LDIxLDgKICAgIExURVhUICAgICAgICAgICAiTm9uIHBhZ2lu6WUiLElEU19LRVJORUxfTUVNT1JZX05PTlBBR0VELDEzNywxOTMsMzQsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19LRVJORUxfTUVNT1JZX1RPVEFMLDE4NSwxNzQsNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX0tFUk5FTF9NRU1PUllfUEFHRUQsMTg1LDE4NCw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfS0VSTkVMX01FTU9SWV9OT05QQUdFRCwxODUsMTkzLDQ4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgR1JPVVBCT1ggICAgICAgICJIaXN0b3JpcXVlIGRlIGwndXRpbGlzYXRpb24gZHUgcHJvY2Vzc2V1ciIsSURDX0NQVV9VU0FHRV9ISVNUT1JZX0ZSQU1FLDc0LDUsMTY4LDU0LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiSGlzdG9yaXF1ZSBkZSBsJ3V0aWxpc2F0aW9uIGRlIGxhIG3pbW9pcmUiLElEQ19NRU1PUllfVVNBR0VfSElTVE9SWV9GUkFNRSw3NCw2MywxNjgsNTQsMCxXU19FWF9UUkFOU1BBUkVOVAogICAgUFVTSEJVVFRPTiAgICAgICJBZmZpY2hhZ2UgZGUgbCd1dGlsaXNhdGlvbiBkdSBwcm9jZXNzZXVyIixJRENfQ1BVX1VTQUdFX0dSQVBILDEyLDE3LDQ3LDM3LDAsCgkJICAgIFdTX0VYX0NMSUVOVEVER0UKICAgIFBVU0hCVVRUT04gICAgICAiQWZmaWNoYWdlIGRlIGwndXRpbGlzYXRpb24gZGUgbGEgbeltb2lyZSIsSURDX01FTV9VU0FHRV9HUkFQSCwxMiw3NSw0NywzNywwLAogICAgICAgICAgICAgICAgICAgIFdTX0VYX0NMSUVOVEVER0UKICAgIFBVU0hCVVRUT04gICAgICAiSGlzdG9yaXF1ZSBkZSBsJ3V0aWxpc2F0aW9uIGR1IHByb2Nlc3NldXIiLElEQ19DUFVfVVNBR0VfSElTVE9SWV9HUkFQSCw4MSwxNywKICAgICAgICAgICAgICAgICAgICAxNTMsMzcsMCxXU19FWF9DTElFTlRFREdFCiAgICBQVVNIQlVUVE9OICAgICAgIkhpc3RvcmlxdWUgZGUgbCd1dGlsaXNhdGlvbiBkZSBsYSBt6W1vaXJlIixJRENfTUVNX1VTQUdFX0hJU1RPUllfR1JBUEgsODEsNzUsCiAgICAgICAgICAgICAgICAgICAgMTUzLDM3LDAsV1NfRVhfQ0xJRU5URURHRQpFTkQKCklERF9ERUJVR19DSEFOTkVMU19ESUFMT0cgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNDcsIDIxMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJDYW5hdXggZGUgZOlib2dhZ2UiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIENPTlRST0wgICAgICAgICAiTGlzdDIiLElEQ19ERUJVR19DSEFOTkVMU19MSVNULCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgTFZTX1NIT1dTRUxBTFdBWVMgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwKCQkgICAgTFZTX1NPUlRBU0NFTkRJTkcsNyw3LDIzMywxNzcKICAgIFBVU0hCVVRUT04gICAgICAiRmVybWVyIixJRE9LLDE3MSwxODksNjksMTQKRU5ECgpJRERfQUZGSU5JVFlfRElBTE9HIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjMxLCAxNTQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiUHJvY2Vzc29yIEFmZmluaXR5IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEyMCwxMzMsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQW5udWxlciIsSURDQU5DRUwsMTc0LDEzMyw1MCwxNAogICAgTFRFWFQgICAgICAgICAgICJMZSBwYXJhbeh0cmUgq6BhZmZpbml06SBkdSBwcm9jZXNzZXVyoLsgY29udHL0bGUgc3VyIHF1ZWxzIHByb2Nlc3NldXJzIGxlIHByb2Nlc3N1cyBzZXJhIGF1dG9yaXPpIOAgcydleOljdXRlci4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsNSw1LDIyMCwxNgogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMCIsSURDX0NQVTAsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwKICAgICAgICAgICAgICAgICAgICAxMSwyOCwzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMSIsSURDX0NQVTEsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsNDEsMzcsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDIiLElEQ19DUFUyLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDU0LDM3LDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAzIixJRENfQ1BVMywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw2NywzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgNCIsSURDX0NQVTQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsODAsMzcsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDUiLElEQ19DUFU1LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDkzLDM3LDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSA2IixJRENfQ1BVNiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSwxMDYsMzcsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDciLElEQ19DUFU3LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDExOSwzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgOCIsSURDX0NQVTgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNjEsMjgsMzcsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDkiLElEQ19DUFU5LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDYxLDQxLDM3LDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxMCIsSURDX0NQVTEwLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDU0LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxMSIsSURDX0NQVTExLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDY3LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxMiIsSURDX0NQVTEyLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDgwLDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxMyIsSURDX0NQVTEzLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDkzLDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxNCIsSURDX0NQVTE0LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDEwNiw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMTUiLElEQ19DUFUxNSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSwxMTksNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDE2IixJRENfQ1BVMTYsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDI4LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxNyIsSURDX0NQVTE3LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiw0MSw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMTgiLElEQ19DUFUxOCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsNTQsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDE5IixJRENfQ1BVMTksIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDY3LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAyMCIsSURDX0NQVTIwLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiw4MCw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjEiLElEQ19DUFUyMSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsOTMsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDIyIixJRENfQ1BVMjIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDEwNiw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjMiLElEQ19DUFUyMywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsMTE5LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAyNCIsSURDX0NQVTI0LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSwyOCw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjUiLElEQ19DUFUyNSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsNDEsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDI2IixJRENfQ1BVMjYsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDU0LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAyNyIsSURDX0NQVTI3LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw2Nyw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjgiLElEQ19DUFUyOCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsODAsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDI5IixJRENfQ1BVMjksIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDkzLDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAzMCIsSURDX0NQVTMwLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSwxMDYsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDMxIixJRENfQ1BVMzEsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDExOSw0MSwxMApFTkQKCklERF9DT0xVTU5TX0RJQUxPRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDE5NSwgMTk5ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlNlbGVjdCBDb2x1bW5zIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDg0LDE3OCw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJBbm51bGVyIixJRENBTkNFTCwxMzgsMTc4LDUwLDE0CiAgICBMVEVYVCAgICAgICAgICAgIlPpbGVjdGlvbm5leiBsZXMgY29sb25uZXMgcXVpIGFwcGFyYe50cm9udCBkYW5zIGxhIHBhZ2UgUHJvY2Vzc3VzIGR1IEdlc3Rpb25uYWlyZSBkZXMgdOJjaGVzLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQyw3LDcsMTgxLDE3CiAgICBDT05UUk9MICAgICAgICAgIk5vbSBkZSBsJyZpbWFnZSIsSURDX0lNQUdFTkFNRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw3LDI4LDU2LDEwCiAgICBDT05UUk9MICAgICAgICAgIiZQSUQgKFByb2Nlc3MgSWRlbnRpZmllcikiLElEQ19QSUQsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDM5LDg4LDEwCiAgICBDT05UUk9MICAgICAgICAgIlV0aSZsaXNhdGlvbiBkdSBwcm9jZXNzZXVyIixJRENfQ1BVVVNBR0UsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsNTAsNTMsMTAKICAgIENPTlRST0wgICAgICAgICAiVCZlbXBzIENQVSIsSURDX0NQVVRJTUUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsNjEsNDgsMTAKICAgIENPTlRST0wgICAgICAgICAiVXRpbGlzYXRpb24gZGUgbGEgJm3pbW9pcmUiLElEQ19NRU1PUllVU0FHRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNyw3Miw2MywxMAogICAgQ09OVFJPTCAgICAgICAgICLJY2FydCAmZCd1dGlsaXNhdGlvbiBkZSBsYSBt6W1vaXJlIixJRENfTUVNT1JZVVNBR0VERUxUQSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDcsODMsODIsMTAKICAgIENPTlRST0wgICAgICAgICAiVXRpbGlzYXRpb24gbWEmeGltYWxlIGRlIGxhIG3pbW9pcmUiLElEQ19QRUFLTUVNT1JZVVNBR0UsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDk0LDgyLDEwCiAgICBDT05UUk9MICAgICAgICAgIkVycmV1ciZzIGRlIHBhZ2UiLElEQ19QQUdFRkFVTFRTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDEwNSw1MywxMAogICAgQ09OVFJPTCAgICAgICAgICJPYmpldHMgJlVTRVIiLElEQ19VU0VST0JKRUNUUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywxMTYsNjIsMTAKICAgIENPTlRST0wgICAgICAgICAiTGVjdHVyZXMgRS9TIixJRENfSU9SRUFEUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywxMjcsNDksMTAKICAgIENPTlRST0wgICAgICAgICAiT2N0ZXRzIGRlIGxlY3R1cmUgRS9TIixJRENfSU9SRUFEQllURVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDEzOCw2NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJJZGVudGkmZmljYXRldXIgZGUgc2Vzc2lvbiIsSURDX1NFU1NJT05JRCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywxNDksNTAsMTAKICAgIENPTlRST0wgICAgICAgICAiJk5vbSBkZSBsJ3V0aWxpc2F0ZXVyIixJRENfVVNFUk5BTUUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsMTYwLDUxLDEwCiAgICBDT05UUk9MICAgICAgICAgIskmY2FydCBkJ2VycmV1cnMgZGUgcGFnaW5hdGlvbiIsSURDX1BBR0VGQVVMVFNERUxUQSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEwNywyOCw3MiwxMAogICAgQ09OVFJPTCAgICAgICAgICJUYWlsbGUgZGUgbGEgbeltb2lyZSAmdmlydHVlbGxlIixJRENfVklSVFVBTE1FTU9SWVNJWkUsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMDcsMzksNzcsMTAKICAgIENPTlRST0wgICAgICAgICAiUulzZXJ2ZSBwYSZnaW7pZSIsSURDX1BBR0VEUE9PTCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTA3LDUwLDUzLDEwCiAgICBDT05UUk9MICAgICAgICAgIlLpc2VydmUgbiZvbiBwYWdpbullIixJRENfTk9OUEFHRURQT09MLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTA3LDYxLDY3LDEwCiAgICBDT05UUk9MICAgICAgICAgIlAmcmlvcml06SBkZSBiYXNlIixJRENfQkFTRVBSSU9SSVRZLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTA3LDcyLDU1LDEwCiAgICBDT05UUk9MICAgICAgICAgIk5vbWJyZSBkZSAmaGFuZGxlcyIsSURDX0hBTkRMRUNPVU5ULCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMDcsODMsNTksMTAKICAgIENPTlRST0wgICAgICAgICAiTm9tYnJlIGRlICZ0aHJlYWRzIixJRENfVEhSRUFEQ09VTlQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEwNyw5NCw1OSwxMAogICAgQ09OVFJPTCAgICAgICAgICJPYiZqZXRzIEdESSIsSURDX0dESU9CSkVDVFMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEwNywxMDUsNTUsMTAKICAgIENPTlRST0wgICAgICAgICAiRWNyaXR1cmVzIEUvUyIsSURDX0lPV1JJVEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMDcsMTE2LDQ5LDEwCiAgICBDT05UUk9MICAgICAgICAgIk9jdGV0cyBkJ+ljcml0dXJlIEUvUyIsSURDX0lPV1JJVEVCWVRFUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEwNywxMjcsNjUsMTAKICAgIENPTlRST0wgICAgICAgICAiQXV0cmVzIEUvUyIsSURDX0lPT1RIRVIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEwNywxMzgsNDYsMTAKICAgIENPTlRST0wgICAgICAgICAiT2N0ZXRzIGQnYXV0cmVzIEUvUyIsSURDX0lPT1RIRVJCWVRFUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEwNywxNDksNjUsMTAKRU5ECgovKgogU3RyaW5nIFRhYmxlCiovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FQUF9USVRMRSAgICAgICAgICAgIkdlc3Rpb25uYWlyZSBkZXMgdOJjaGVzIgogICAgSURDX1RBU0tNR1IgICAgICAgICAgICAgIkdlc3Rpb25uYWlyZSBkZXMgdOJjaGVzIgogICAgSURTX1JVTkRMR19DQVBUSU9OICAgICAgIk5vdXZlbGxlIHTiY2hlLi4uIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9GSUxFX05FVyAgICAgICAgICAgICAiRXjpY3V0ZSB1biBub3V2ZWF1IHByb2dyYW1tZSIKICAgIElEX09QVElPTlNfQUxXQVlTT05UT1AgICJMZSBnZXN0aW9ubmFpcmUgZGVzIHTiY2hlcyByZXN0ZSBhdSBwcmVtaWVyIHBsYW4gZGUgdG91dGVzIGxlcyBhdXRyZXMgZmVu6nRyZXMgc2F1ZiBzJ2lsIGVzdCBy6WR1aXQiCiAgICBJRF9PUFRJT05TX01JTklNSVpFT05VU0UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZSBnZXN0aW9ubmFpcmUgZGVzIHTiY2hlcyBlc3QgbWluaW1pc+kgcXVhbmQgdW5lIG9w6XJhdGlvbiBCYXNjdWxlciB2ZXJzIGVzdCBlZmZlY3R16WUiCiAgICBJRF9PUFRJT05TX0hJREVXSEVOTUlOSU1JWkVEICJDYWNoZSBsZSBnZXN0aW9ubmFpcmUgZGVzIHTiY2hlcyBsb3JzcXUnaWwgZXN0IHLpZHVpdCIKICAgIElEX1ZJRVdfUkVGUkVTSCAgICAgICAgICJGb3JjZSBsZSBnZXN0aW9ubmFpcmUgZGVzIHTiY2hlcyDgIHMnYWN0dWFsaXNlciBtYWludGVuYW50IHNhbnMgdGVuaXIgY29tcHRlIGR1IHBhcmFt6HRyZSBkZSBmculxdWVuY2UgZCdhY3R1YWxpc2F0aW9uIgogICAgSURfVklFV19MQVJHRSAgICAgICAgICAgIkFmZmljaGUgbGVzIHTiY2hlcyBlbiB1dGlsaXNhbnQgZGUgZ3JhbmRlcyBpY/RuZXMiCiAgICBJRF9WSUVXX1NNQUxMICAgICAgICAgICAiQWZmaWNoZSBsZXMgdOJjaGVzIGVuIHV0aWxpc2FudCBkZSBwZXRpdGVzIGlj9G5lcyIKICAgIElEX1ZJRVdfREVUQUlMUyAgICAgICAgICJBZmZpY2hlIGRlcyBpbmZvcm1hdGlvbnMgc3VyIGNoYWN1bmUgZGVzIHTiY2hlcyIKICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfSElHSCAiQWN0dWFsaXNlIGwnYWZmaWNoYWdlIGRldXggZm9pcyBwYXIgc2Vjb25kZSIKICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfTk9STUFMICJBY3R1YWxpc2UgbCdhZmZpY2hhZ2UgdG91dGVzIGxlcyBkZXV4IHNlY29uZGVzIgogICAgSURfVklFV19VUERBVEVTUEVFRF9MT1cgIkFjdHVhbGlzZSBsJ2FmZmljaGFnZSB0b3V0ZXMgbGVzIHF1YXRyZSBzZWNvbmRlcyIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfVklFV19VUERBVEVTUEVFRF9QQVVTRUQgIk4nYWN0dWFsaXNlIHBhcyBsJ2FmZmljaGFnZSBhdXRvbWF0aXF1ZW1lbnQiCiAgICBJRF9XSU5ET1dTX1RJTEVIT1JJWk9OVEFMTFkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcnJhbmdlIGxlcyBmZW7qdHJlcyBob3Jpem9udGFsZW1lbnQgc3VyIGxlIGJ1cmVhdSIKICAgIElEX1dJTkRPV1NfVElMRVZFUlRJQ0FMTFkgIkFycmFuZ2UgbGVzIGZlbup0cmVzIHZlcnRpY2FsZW1lbnQgc3VyIGxlIGJ1cmVhdSIKICAgIElEX1dJTkRPV1NfTUlOSU1JWkUgICAgICJS6WR1aXQgbGVzIGZlbup0cmVzIgogICAgSURfV0lORE9XU19NQVhJTUlaRSAgICAgIkFncmFuZGl0IGxlcyBmZW7qdHJlcyIKICAgIElEX1dJTkRPV1NfQ0FTQ0FERSAgICAgICJQbGFjZSBsZXMgZmVu6nRyZXMgZW4gY2FzY2FkZSBzdXIgbGUgYnVyZWF1IgogICAgSURfV0lORE9XU19CUklOR1RPRlJPTlQgIkFmZmljaGUgbGEgZmVu6nRyZSBhdSBwcmVtaWVyIHBsYW4sIG1haXMgbmUgYmFzY3VsZSBwYXMgdmVycyBjZWxsZS1jaSIKICAgIElEX0hFTFBfVE9QSUNTICAgICAgICAgICJBZmZpY2hlIGxlcyBydWJyaXF1ZXMgZCdhaWRlIGR1IGdlc3Rpb25uYWlyZSBkZXMgdOJjaGVzIgogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIkFmZmljaGUgbGUgaW5mb3JtYXRpb25zIHN1ciBsZSBwcm9ncmFtbWUsIGxhIHZlcnNpb24gZXQgbGUgY29weXJpZ2h0IgogICAgSURfRklMRV9FWElUICAgICAgICAgICAgIlF1aXR0ZSBsZSBnZXN0aW9ubmFpcmUgZGVzIHTiY2hlcyIKICAgIElEX09QVElPTlNfU0hPVzE2QklUVEFTS1MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBZmZpY2hlIGxlcyB04mNoZXMgMTYtYml0IHNvdXMgbGUgbnR2ZG0uZXhlIGFzc29jaekiCiAgICBJRF9WSUVXX1NFTEVDVENPTFVNTlMgICAiU+lsZWN0aW9ubmUgcXVlbGxlcyBjb2xvbm5lcyBzZXJvbnQgYWZmaWNo6WVzIGRhbnMgbGEgcGFnZSBkZXMgcHJvY2Vzc3VzIgogICAgSURfVklFV19TSE9XS0VSTkVMVElNRVMgIkFmZmljaGUgbGUgdGVtcHMgbm95YXUgZGFucyBsZXMgZ3JhcGhpcXVlcyBkZSBwZXJmb3JtYW5jZXMiCiAgICBJRF9WSUVXX0NQVUhJU1RPUllfT05FR1JBUEhBTEwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMJ3V0aWxpc2F0aW9uIGRlcyBwcm9jZXNzZXVycyBlc3QgYWZmaWNo6WUgc3VyIHVuIHNldWwgZ3JhcGhpcXVlIgogICAgSURfVklFV19DUFVISVNUT1JZX09ORUdSQVBIUEVSQ1BVICJDaGFxdWUgcHJvY2Vzc2V1ciDgIHNvbiBwcm9wcmUgZ3JhcGhpcXVlIgogICAgSURfQVBQTElDQVRJT05fUEFHRV9TV0lUQ0hUTwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFt6G5lIGxhIHTiY2hlIGF1IHByZW1pZXIgcGxhbiBldCBiYXNjdWxlIHZlcnMgY2VsbGUtY2kiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX0VORFRBU0sgICAgICAgICAgICAgICJEZW1hbmRlIOAgbGEgdOJjaGUgc+lsZWN0aW9ubmVyIGRlIHNlIHRlcm1pbmVyIgogICAgSURfR09UT1BST0NFU1MgICAgICAgICAgIkJhc2N1bGUgdmVycyBsZSBwcm9jZXNzdXMgZGUgbGEgdOJjaGUgc+lsZWN0aW9ubullIgogICAgSURfUkVTVE9SRSAgICAgICAgICAgICAgIlJlc3RhdXJlIGxlIGdlc3Rpb25uYWlyZSBkZXMgdOJjaGVzIgogICAgSURfUFJPQ0VTU19QQUdFX0VORFBST0NFU1MgIlJldGlyZSBsZSBwcm9jZXNzdXMgZHUgc3lzdOhtZSIKICAgIElEX1BST0NFU1NfUEFHRV9FTkRQUk9DRVNTVFJFRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJldGlyZSBjZSBwcm9jZXNzdXMgZXQgdG91cyBjZXMgZmlscyBkdSBzeXN06G1lIgogICAgSURfUFJPQ0VTU19QQUdFX0RFQlVHICAgIkF0dGFjaGUgbGUgZOlidWdnZXVyIOAgY2UgcHJvY2Vzc3VzIgogICAgSURfUFJPQ0VTU19QQUdFX1NFVEFGRklOSVRZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29udHL0bGUgc3VyIHF1ZWwgcHJvY2Vzc2V1ciBsZSBwcm9jZXNzdXMgc2VyYSBhdXRvcmlz6SDgIHMnZXjpY3V0ZXIiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfUkVBTFRJTUUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFjZSBsZSBwcm9jZXNzdXMgZGFucyBsYSBjbGFzc2UgZGUgcHJpb3JpdOkgVEVNUFMgUslFTCIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9ISUdIICJQbGFjZSBsZSBwcm9jZXNzdXMgZGFucyBsYSBjbGFzc2UgZGUgcHJpb3JpdOkgSEFVVEUiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfQUJPVkVOT1JNQUwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFjZSBsZSBwcm9jZXNzdXMgZGFucyBsYSBjbGFzc2UgZGUgcHJpb3JpdOkgU1VQyVJJRVVSRSDAIExBIE5PUk1BTEUiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfTk9STUFMCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGxhY2UgbGUgcHJvY2Vzc3VzIGRhbnMgbGEgY2xhc3NlIGRlIHByaW9yaXTpIE5PUk1BTEUiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfQkVMT1dOT1JNQUwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFjZSBsZSBwcm9jZXNzdXMgZGFucyBsYSBjbGFzc2UgZGUgcHJpb3JpdOkgSU5GyVJJRVVSRSDAIExBIE5PUk1BTEUiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfTE9XICJQbGFjZSBsZSBwcm9jZXNzdXMgZGFucyBsYSBjbGFzc2UgZGUgcHJpb3JpdOkgQkFTU0UiCkVORAo=