LyoKICogIFRhc2sgTWFuYWdlcgogKiAgRnJlbmNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogIENvcHlyaWdodCAyMDA1LTIwMDYgSm9uYXRoYW4gRXJuc3QKICoKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19GUkVOQ0gsIFNVQkxBTkdfTkVVVFJBTAoKLyoKIE1lbnUKKi8KCklEUl9UQVNLTUFOQUdFUiBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiJkZpY2hpZXIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImTm91dmVsbGUgdOJjaGUgKEV46WN1dGVyLi4uKSIsICAgICAgICAgIElEX0ZJTEVfTkVXCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZRdWl0dGVyIGxlIGdlc3Rpb25uYWlyZSBkZXMgdOJjaGVzIiwgICAgICAgICAgSURfRklMRV9FWElUCiAgICBFTkQKICAgIFBPUFVQICImT3B0aW9ucyIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZBbHdheXMgT24gVG9wIiwgICAgICAgICAgICAgIElEX09QVElPTlNfQUxXQVlTT05UT1AKICAgICAgICAsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiUulkJnVpcmUg4CBsJ2V46WN1dGlvbiIsICAgICAgSURfT1BUSU9OU19NSU5JTUlaRU9OVVNFCiAgICAgICAgLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIiZNYXNxdWVyIGwnaWP0bmUgculkdWl0ZSIsICAgIElEX09QVElPTlNfSElERVdIRU5NSU5JTUlaRUQKICAgICAgICAsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJk1vbnRyZXIgbGVzIHTiY2hlcyAxNi1iaXQiLCAgSURfT1BUSU9OU19TSE9XMTZCSVRUQVNLUwogICAgICAgICwgQ0hFQ0tFRAogICAgRU5ECiAgICBQT1BVUCAiJkFmZmljaGFnZSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZBY3R1YWxpc2VyIG1haW50ZW5hbnQiLCAgICAgICAgICAgICAgICBJRF9WSUVXX1JFRlJFU0gKICAgICAgICBQT1BVUCAiJkZy6XF1ZW5jZSBkJ2FjdHVhbGlzYXRpb24iCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZIYXV0ZSIsICAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1VQREFURVNQRUVEX0hJR0gKICAgICAgICAgICAgTUVOVUlURU0gIiZOb3JtYWxlIiwgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1VQREFURVNQRUVEX05PUk1BTAogICAgICAgICAgICAsIENIRUNLRUQKICAgICAgICAgICAgTUVOVUlURU0gIiZCYXNzZSIsICAgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19VUERBVEVTUEVFRF9MT1cKICAgICAgICAgICAgTUVOVUlURU0gIkVuIHBhdSZzZSIsICAgICAgICAgICAgICAgICAgICAgSURfVklFV19VUERBVEVTUEVFRF9QQVVTRUQKCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkcmcmFuZGVzIElj9G5lcyIsICAgICAgICAgICAgICAgIElEX1ZJRVdfTEFSR0UKICAgICAgICBNRU5VSVRFTSAiUCZldGl0ZXMgSWP0bmVzIiwgICAgICAgICAgICAgICAgSURfVklFV19TTUFMTAogICAgICAgIE1FTlVJVEVNICImROl0YWlscyIsICAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX0RFVEFJTFMsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJlPpbGVjdGlvbm5lciBsZXMgY29sb25uZXMuLi4iLCAgICAgICAgICAgSURfVklFV19TRUxFQ1RDT0xVTU5TCiAgICAgICAgUE9QVVAgIiZIaXN0b3JpcXVlIGR1IHByb2Nlc3NldXIiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIlVuIHNldWwgZ3JhcGhpcXVlIHBvdXIgJnRvdXMgbGVzIHByb2Nlc3NldXJzIiwgICAgICAgIElEX1ZJRVdfQ1BVSElTVE9SWV9PTkVHUkFQSEFMTAoKICAgICAgICAgICAgTUVOVUlURU0gIlVuIGdyYXBoaXF1ZSAmcGFyIHByb2Nlc3NldXIiLCAgICAgICAgICBJRF9WSUVXX0NQVUhJU1RPUllfT05FR1JBUEhQRVJDUFUKICAgICAgICAgICAgLCBDSEVDS0VECiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gIkFmZiZpY2hlciBsZXMgdGVtcHMgZHUgbm95YXUiLCAgICAgICAgICBJRF9WSUVXX1NIT1dLRVJORUxUSU1FUwogICAgRU5ECiAgICBQT1BVUCAiJkZlbup0cmVzIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiQXJyYW5nZXIgJkhvcml6b250YWxsZW1lbnQiLCAgICAgICAgICBJRF9XSU5ET1dTX1RJTEVIT1JJWk9OVEFMTFkKICAgICAgICBNRU5VSVRFTSAiQXJyYW5nZXIgJlZlcnRpY2FsbGVtZW50IiwgICAgICAgICAgICBJRF9XSU5ET1dTX1RJTEVWRVJUSUNBTExZCiAgICAgICAgTUVOVUlURU0gIiZS6WR1aXJlIiwgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NSU5JTUlaRQogICAgICAgIE1FTlVJVEVNICImQWdyYW5kaXIiLCAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01BWElNSVpFCiAgICAgICAgTUVOVUlURU0gIiZDYXNjYWRlIiwgICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfQ0FTQ0FERQogICAgICAgIE1FTlVJVEVNICJUb3Vqb3VycyAmdmlzaWJsZSIsICAgICAgICAgICAgIElEX1dJTkRPV1NfQlJJTkdUT0ZST05UCiAgICBFTkQKICAgIFBPUFVQICJBaWQmZSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIlJ1YnJpcXVlcyBkJ2FpZGUgZHUgR2VzdGlvbm5haXJlIGRlcyB04mNoZXMiLCAgIElEX0hFTFBfVE9QSUNTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIsAgJnByb3BvcyBkdSBHZXN0aW9ubmFpcmUgZGVzIHTiY2hlcyIsICAgICAgICAgSURfSEVMUF9BQk9VVAogICAgRU5ECkVORAoKSURSX1dJTkRPV1NNRU5VIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIE1FTlVJVEVNICJBcnJhbmdlciAmSG9yaXpvbnRhbGxlbWVudCIsICAgICAgICAgIElEX1dJTkRPV1NfVElMRUhPUklaT05UQUxMWQogICAgTUVOVUlURU0gIkFycmFuZ2VyICZWZXJ0aWNhbGxlbWVudCIsICAgICAgICAgICAgSURfV0lORE9XU19USUxFVkVSVElDQUxMWQogICAgTUVOVUlURU0gIiZS6WR1aXJlIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NSU5JTUlaRQogICAgTUVOVUlURU0gIiZBZ3JhbmRpciIsICAgICAgICAgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NQVhJTUlaRQogICAgTUVOVUlURU0gIiZDYXNjYWRlIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19DQVNDQURFCiAgICBNRU5VSVRFTSAiVG91am91cnMgJnZpc2libGUiLCAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX0JSSU5HVE9GUk9OVApFTkQKCklEUl9BUFBMSUNBVElPTl9QQUdFX0NPTlRFWFQxIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZOb3V2ZWxsZSBU4mNoZSAoRXjpY3V0ZXIuLi4pIiwgICBJRF9GSUxFX05FVwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJHJnJhbmRlcyBJY/RuZXMiLCAgICAgICAgICAgICAgICAgSURfVklFV19MQVJHRQogICAgICAgIE1FTlVJVEVNICJQJmV0aXRlcyBJY/RuZXMiLCAgICAgICAgICAgICAgICAgSURfVklFV19TTUFMTAogICAgICAgIE1FTlVJVEVNICImROl0YWlscyIsICAgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19ERVRBSUxTLCBDSEVDS0VECiAgICBFTkQKRU5ECgpJRFJfQVBQTElDQVRJT05fUEFHRV9DT05URVhUMiBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiRFVNTVkiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQmFzY3VsZXIgdmVycyIsICAgICAgICAgICAgICAgIElEX0FQUExJQ0FUSU9OX1BBR0VfU1dJVENIVE8KICAgICAgICBNRU5VSVRFTSAiVG91am91cnMgJnZpc2libGUiLCAgICAgICAgICAgICBJRF9XSU5ET1dTX0JSSU5HVE9GUk9OVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBcnJhbmdlciAmSG9yaXpvbnRhbGxlbWVudCIsICAgIElEX1dJTkRPV1NfVElMRUhPUklaT05UQUxMWQogICAgICAgIE1FTlVJVEVNICJBcnJhbmdlciAmVmVydGljYWxsZW1lbnQiLCAgICAgIElEX1dJTkRPV1NfVElMRVZFUlRJQ0FMTFkKICAgICAgICBNRU5VSVRFTSAiJlLpZHVpcmUiLCAgICAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01JTklNSVpFCiAgICAgICAgTUVOVUlURU0gIiZBZ3JhbmRpciIsICAgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NQVhJTUlaRQogICAgICAgIE1FTlVJVEVNICImQ2FzY2FkZSIsICAgICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfQ0FTQ0FERQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJGJmluIGRlIHTiY2hlIiwgICAgICAgICAgICAgICAgIElEX0FQUExJQ0FUSU9OX1BBR0VfRU5EVEFTSwogICAgICAgIE1FTlVJVEVNICImQmFzY3VsZXIgdmVycyIsICAgICAgICAgICAgICAgIElEX0FQUExJQ0FUSU9OX1BBR0VfR09UT1BST0NFU1MKICAgIEVORApFTkQKCklEUl9UUkFZX1BPUFVQIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZSZXN0YXVyZXIiLCAgICAgICAgICAgICAgICAgICAgIElEX1JFU1RPUkUKICAgICAgICBNRU5VSVRFTSAiJkZlcm1lciIsICAgICAgICAgICAgICAgICAgICAgICAgSURfRklMRV9FWElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlRvdWpvdXJzICZ2aXNpYmxlIiwgICAgICAgICAgICAgIElEX09QVElPTlNfQUxXQVlTT05UT1AKICAgIEVORApFTkQKCklEUl9QUk9DRVNTX1BBR0VfQ09OVEVYVCBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiRFVNTVkiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImVGVybWluZXIgbGUgcHJvY2Vzc3VzIiwgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX0VORFBST0NFU1MKICAgICAgICBNRU5VSVRFTSAiVGVybWluZXIgbCcmYXJib3Jlc2NlbmNlIGR1IHByb2Nlc3N1cyIsIElEX1BST0NFU1NfUEFHRV9FTkRQUk9DRVNTVFJFRQoKICAgICAgICBNRU5VSVRFTSAiJkTpYm9ndWVyIiwgICAgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX0RFQlVHCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgIkTpZmluaXIgbGEgJnByaW9yaXTpIgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICJUZW1wcyAmcullbCIsICAgICAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9SRUFMVElNRQoKICAgICAgICAgICAgTUVOVUlURU0gIiZIYXV0ZSIsICAgICAgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0hJR0gKCiAgICAgICAgICAgIE1FTlVJVEVNICImU3Vw6XJpZXVyZSDgIGxhIG5vcm1hbGUiLCAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9BQk9WRU5PUk1BTAoKICAgICAgICAgICAgTUVOVUlURU0gIiZOb3JtYWxlIiwgICAgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX05PUk1BTAoKICAgICAgICAgICAgTUVOVUlURU0gIiZJbmbpcmlldXJlIOAgbGEgbm9ybWFsZSIsICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0JFTE9XTk9STUFMCgogICAgICAgICAgICBNRU5VSVRFTSAiJkJhc3NlIiwgICAgICAgICAgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfTE9XCgogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNICJE6WZpbmlyIGwnJmFmZmluaXTpLi4uIiwgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUQUZGSU5JVFkKCU1FTlVJVEVNICJNb2RpZmllciBsZXMgJmNhbmF1eCBkZSBk6WJvZ2FnZS4uLiIsCUlEX1BST0NFU1NfUEFHRV9ERUJVR0NIQU5ORUxTCiAgICBFTkQKRU5ECgovKgogRGlhbG9nCiovCgpJRERfVEFTS01HUl9ESUFMT0cgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjQsIDI0NgpTVFlMRSBEU19DRU5URVIgfCBXU19NSU5JTUlaRUJPWCB8IFdTX01BWElNSVpFQk9YIHwgV1NfUE9QVVAgfAogICAgV1NfQ0xJUFNJQkxJTkdTIHwgV1NfQ0xJUENISUxEUkVOIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfAogICAgV1NfVEhJQ0tGUkFNRQpDQVBUSU9OICJHZXN0aW9ubmFpcmUgZGVzIHTiY2hlcyIKTUVOVSBJRFJfVEFTS01BTkFHRVIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgQ09OVFJPTCAgICAgICAgICJUYWIxIixJRENfVEFCLCJTeXNUYWJDb250cm9sMzIiLFdTX1RBQlNUT1AsMywzLDI1NywyMjgKRU5ECgpJRERfQVBQTElDQVRJT05fUEFHRSBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI0NywgMjEwClNUWUxFIERTX0NPTlRST0wgfCBXU19DSElMRCB8IFdTX0NMSVBDSElMRFJFTgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBDT05UUk9MICAgICAgICAgIkxpc3QyIixJRENfQVBQTElTVCwiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NIT1dTRUxBTFdBWVMgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLDcsNywyMzMsMTc3CiAgICBQVVNIQlVUVE9OICAgICAgIiZOb3V2ZWxsZSB04mNoZS4uLiIsSURDX05FV1RBU0ssMTg3LDE4OSw1MywxNAogICAgUFVTSEJVVFRPTiAgICAgICImQmFzY3VsZXIgdmVycyIsSURDX1NXSVRDSFRPLDEzMSwxODksNTMsMTQsV1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiJkZpbiBkZSB04mNoZSIsSURDX0VORFRBU0ssNzUsMTg5LDUzLDE0LFdTX0RJU0FCTEVECkVORAoKSUREX1BST0NFU1NfUEFHRSBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI0NywgMjEwClNUWUxFIERTX0NPTlRST0wgfCBXU19DSElMRCB8IFdTX0NMSVBDSElMRFJFTgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBDT05UUk9MICAgICAgICAgIkxpc3QyIixJRENfUFJPQ0VTU0xJU1QsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUyB8IExWU19PV05FUkRBVEEgfAogICAgICAgICAgICAgICAgICAgIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsNyw3LDIzMywxNzcKICAgIFBVU0hCVVRUT04gICAgICAiJlRlcm1pbmVyIGxlIHByb2Nlc3N1cyIsSURDX0VORFBST0NFU1MsMTcxLDE4OSw2OSwxNAogICAgQ09OVFJPTCAgICAgICAgICImQWZmaWNoZXIgbGVzIHByb2Nlc3N1cyBkZSB0b3VzIGxlcyB1dGlsaXNhdGV1cnMiLElEQ19TSE9XQUxMUFJPQ0VTU0VTLAogICAgICAgICAgICAgICAgICAgICJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNywxOTEsMTExLDEwCkVORAoKLypJRERfUEVSRk9STUFOQ0VfUEFHRSBESUFMT0dFWCAwLCAwLCAyNDcsIDIxMCovCklERF9QRVJGT1JNQU5DRV9QQUdFIERJQUxPR0VYIERJU0NBUkRBQkxFICAwLCAwLCAyNDcsIDIxMApTVFlMRSBEU19DT05UUk9MIHwgV1NfQ0hJTEQgfCBXU19DTElQQ0hJTERSRU4KRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJVdGlsaXNhdGlvbiBkdSBwcm9jZXNzZXVyIixJRENfQ1BVX1VTQUdFX0ZSQU1FLDUsNSw2MCw1NCxXU19UQUJTVE9QLCBXU19FWF9UUkFOU1BBUkVOVAogICAgR1JPVVBCT1ggICAgICAgICJVdGlsaXNhdGlvbiBkZSBsYSBt6W1vaXJlIixJRENfTUVNX1VTQUdFX0ZSQU1FLDUsNjMsNjAsNTQsQlNfTEVGVFRFWFQsIFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIlRvdGF1eCIsSURDX1RPVEFMU19GUkFNRSw1LDEyMiwxMTEsMzksMCxXU19FWF9UUkFOU1BBUkVOVAogICAgR1JPVVBCT1ggICAgICAgICJDaGFyZ2UgZOlkaellIChLaW8pIixJRENfQ09NTUlUX0NIQVJHRV9GUkFNRSw1LDE2NiwxMTEsMzksMCxXU19FWF9UUkFOU1BBUkVOVAogICAgR1JPVVBCT1ggICAgICAgICJN6W1vaXJlIHBoeXNpcXVlIChLaW8pIixJRENfUEhZU0lDQUxfTUVNT1JZX0ZSQU1FLDEzMSwxMjIsMTExLDM5LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiTeltb2lyZSBwb3VyIGxlIG5veWF1IChLaW8pIixJRENfS0VSTkVMX01FTU9SWV9GUkFNRSwxMzEsMTY2LDExMSwzOSwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBMVEVYVCAgICAgICAgICAgIkhhbmRsZXMiLElEU19UT1RBTFNfSEFORExFX0NPVU5ULDEyLDEzMSwyNyw4CiAgICBMVEVYVCAgICAgICAgICAgIlRocmVhZHMiLElEU19UT1RBTFNfVEhSRUFEX0NPVU5ULDEyLDE0MCwyNyw4CiAgICBMVEVYVCAgICAgICAgICAgIlByb2Nlc3N1cyIsSURTX1RPVEFMU19QUk9DRVNTX0NPVU5ULDEyLDE0OSwzNCw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1RPVEFMU19IQU5ETEVfQ09VTlQsNjUsMTMxLDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19UT1RBTFNfVEhSRUFEX0NPVU5ULDY1LDE0MCw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfVE9UQUxTX1BST0NFU1NfQ09VTlQsNjUsMTQ5LDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgTFRFWFQgICAgICAgICAgICJUb3RhbCIsSURTX0NPTU1JVF9DSEFSR0VfVE9UQUwsMTIsMTc1LDI3LDgKICAgIExURVhUICAgICAgICAgICAiTGltaXRlIixJRFNfQ09NTUlUX0NIQVJHRV9MSU1JVCwxMiwxODQsMTUsOAogICAgTFRFWFQgICAgICAgICAgICJQaWMiLElEU19DT01NSVRfQ0hBUkdFX1BFQUssMTIsMTkzLDM0LDgKICAgIEVESVRURVhUICAgICAgICBJRENfQ09NTUlUX0NIQVJHRV9UT1RBTCw2NSwxNzQsNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX0NPTU1JVF9DSEFSR0VfTElNSVQsNjUsMTg0LDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19DT01NSVRfQ0hBUkdFX1BFQUssNjUsMTkzLDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgTFRFWFQgICAgICAgICAgICJUb3RhbCIsSURTX1BIWVNJQ0FMX01FTU9SWV9UT1RBTCwxMzcsMTMxLDI3LDgKICAgIExURVhUICAgICAgICAgICAiRGlzcG9uaWJsZSIsSURTX1BIWVNJQ0FMX01FTU9SWV9BVkFJTEFCTEUsMTM3LDE0MCwzMCw4CiAgICBMVEVYVCAgICAgICAgICAgIkNhY2hlIHN5c3TobWUiLElEU19QSFlTSUNBTF9NRU1PUllfU1lTVEVNX0NBQ0hFLDEzNywxNDksNDYsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19QSFlTSUNBTF9NRU1PUllfVE9UQUwsMTg1LDEzMSw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfUEhZU0lDQUxfTUVNT1JZX0FWQUlMQUJMRSwxODUsMTQwLDQ4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19QSFlTSUNBTF9NRU1PUllfU1lTVEVNX0NBQ0hFLDE4NSwxNDksNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBMVEVYVCAgICAgICAgICAgIlRvdGFsIixJRFNfS0VSTkVMX01FTU9SWV9UT1RBTCwxMzcsMTc0LDI3LDgKICAgIExURVhUICAgICAgICAgICAiUGFnaW7pZSIsSURTX0tFUk5FTF9NRU1PUllfUEFHRUQsMTM3LDE4NCwyMSw4CiAgICBMVEVYVCAgICAgICAgICAgIk5vbiBwYWdpbullIixJRFNfS0VSTkVMX01FTU9SWV9OT05QQUdFRCwxMzcsMTkzLDM0LDgKICAgIEVESVRURVhUICAgICAgICBJRENfS0VSTkVMX01FTU9SWV9UT1RBTCwxODUsMTc0LDQ4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19LRVJORUxfTUVNT1JZX1BBR0VELDE4NSwxODQsNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX0tFUk5FTF9NRU1PUllfTk9OUEFHRUQsMTg1LDE5Myw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEdST1VQQk9YICAgICAgICAiSGlzdG9yaXF1ZSBkZSBsJ3V0aWxpc2F0aW9uIGR1IHByb2Nlc3NldXIiLElEQ19DUFVfVVNBR0VfSElTVE9SWV9GUkFNRSw3NCw1LDE2OCw1NCwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIkhpc3RvcmlxdWUgZGUgbCd1dGlsaXNhdGlvbiBkZSBsYSBt6W1vaXJlIixJRENfTUVNT1JZX1VTQUdFX0hJU1RPUllfRlJBTUUsNzQsNjMsMTY4LDU0LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIFBVU0hCVVRUT04gICAgICAiQWZmaWNoYWdlIGRlIGwndXRpbGlzYXRpb24gZHUgcHJvY2Vzc2V1ciIsSURDX0NQVV9VU0FHRV9HUkFQSCwxMiwxNyw0NywzNywwLAoJCSAgICBXU19FWF9DTElFTlRFREdFCiAgICBQVVNIQlVUVE9OICAgICAgIkFmZmljaGFnZSBkZSBsJ3V0aWxpc2F0aW9uIGRlIGxhIG3pbW9pcmUiLElEQ19NRU1fVVNBR0VfR1JBUEgsMTIsNzUsNDcsMzcsMCwKICAgICAgICAgICAgICAgICAgICBXU19FWF9DTElFTlRFREdFCiAgICBQVVNIQlVUVE9OICAgICAgIkhpc3RvcmlxdWUgZGUgbCd1dGlsaXNhdGlvbiBkdSBwcm9jZXNzZXVyIixJRENfQ1BVX1VTQUdFX0hJU1RPUllfR1JBUEgsODEsMTcsCiAgICAgICAgICAgICAgICAgICAgMTUzLDM3LDAsV1NfRVhfQ0xJRU5URURHRQogICAgUFVTSEJVVFRPTiAgICAgICJIaXN0b3JpcXVlIGRlIGwndXRpbGlzYXRpb24gZGUgbGEgbeltb2lyZSIsSURDX01FTV9VU0FHRV9ISVNUT1JZX0dSQVBILDgxLDc1LAogICAgICAgICAgICAgICAgICAgIDE1MywzNywwLFdTX0VYX0NMSUVOVEVER0UKRU5ECgpJRERfREVCVUdfQ0hBTk5FTFNfRElBTE9HIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQ3LCAyMTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQ2FuYXV4IGRlIGTpYm9nYWdlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBDT05UUk9MICAgICAgICAgIkxpc3QyIixJRENfREVCVUdfQ0hBTk5FTFNfTElTVCwiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IExWU19TSE9XU0VMQUxXQVlTIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8CgkJICAgIExWU19TT1JUQVNDRU5ESU5HLDcsNywyMzMsMTc3CiAgICBQVVNIQlVUVE9OICAgICAgIkZlcm1lciIsSURPSywxNzEsMTg5LDY5LDE0CkVORAoKSUREX0FGRklOSVRZX0RJQUxPRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDIzMSwgMTU0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlByb2Nlc3NvciBBZmZpbml0eSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxMjAsMTMzLDUwLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkFubnVsZXIiLElEQ0FOQ0VMLDE3NCwxMzMsNTAsMTQKICAgIExURVhUICAgICAgICAgICAiTGUgcGFyYW3odHJlIKugYWZmaW5pdOkgZHUgcHJvY2Vzc2V1cqC7IGNvbnRy9GxlIHN1ciBxdWVscyBwcm9jZXNzZXVycyBsZSBwcm9jZXNzdXMgc2VyYSBhdXRvcmlz6SDgIHMnZXjpY3V0ZXIuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDUsNSwyMjAsMTYKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDAiLElEQ19DUFUwLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsCiAgICAgICAgICAgICAgICAgICAgMTEsMjgsMzcsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDEiLElEQ19DUFUxLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDQxLDM3LDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAyIixJRENfQ1BVMiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw1NCwzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMyIsSURDX0NQVTMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsNjcsMzcsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDQiLElEQ19DUFU0LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDgwLDM3LDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSA1IixJRENfQ1BVNSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSw5MywzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgNiIsSURDX0NQVTYsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsMTA2LDM3LDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSA3IixJRENfQ1BVNywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSwxMTksMzcsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDgiLElEQ19DUFU4LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDYxLDI4LDM3LDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSA5IixJRENfQ1BVOSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw2MSw0MSwzNywxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMTAiLElEQ19DUFUxMCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSw1NCw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMTEiLElEQ19DUFUxMSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSw2Nyw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMTIiLElEQ19DUFUxMiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSw4MCw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMTMiLElEQ19DUFUxMywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSw5Myw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMTQiLElEQ19DUFUxNCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSwxMDYsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDE1IixJRENfQ1BVMTUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsNjEsMTE5LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxNiIsSURDX0NQVTE2LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiwyOCw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMTciLElEQ19DUFUxNywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsNDEsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDE4IixJRENfQ1BVMTgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDU0LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAxOSIsSURDX0NQVTE5LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiw2Nyw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjAiLElEQ19DUFUyMCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsODAsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDIxIixJRENfQ1BVMjEsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDkzLDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAyMiIsSURDX0NQVTIyLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiwxMDYsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDIzIixJRENfQ1BVMjMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDExOSw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjQiLElEQ19DUFUyNCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsMjgsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDI1IixJRENfQ1BVMjUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDQxLDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAyNiIsSURDX0NQVTI2LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw1NCw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjciLElEQ19DUFUyNywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsNjcsNDEsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVIDI4IixJRENfQ1BVMjgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDgwLDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAyOSIsSURDX0NQVTI5LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSw5Myw0MSwxMAogICAgQ09OVFJPTCAgICAgICAgICJDUFUgMzAiLElEQ19DUFUzMCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsMTA2LDQxLDEwCiAgICBDT05UUk9MICAgICAgICAgIkNQVSAzMSIsSURDX0NQVTMxLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSwxMTksNDEsMTAKRU5ECgpJRERfQ09MVU1OU19ESUFMT0cgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAxOTUsIDE5OQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJTZWxlY3QgQ29sdW1ucyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSyw4NCwxNzgsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQW5udWxlciIsSURDQU5DRUwsMTM4LDE3OCw1MCwxNAogICAgTFRFWFQgICAgICAgICAgICJT6WxlY3Rpb25uZXogbGVzIGNvbG9ubmVzIHF1aSBhcHBhcmHudHJvbnQgZGFucyBsYSBwYWdlIFByb2Nlc3N1cyBkdSBHZXN0aW9ubmFpcmUgZGVzIHTiY2hlcy4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsNyw3LDE4MSwxNwogICAgQ09OVFJPTCAgICAgICAgICJOb20gZGUgbCcmaW1hZ2UiLElEQ19JTUFHRU5BTUUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsNywyOCw1NiwxMAogICAgQ09OVFJPTCAgICAgICAgICImUElEIChQcm9jZXNzIElkZW50aWZpZXIpIixJRENfUElELCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNywzOSw4OCwxMAogICAgQ09OVFJPTCAgICAgICAgICJVdGkmbGlzYXRpb24gZHUgcHJvY2Vzc2V1ciIsSURDX0NQVVVTQUdFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDUwLDUzLDEwCiAgICBDT05UUk9MICAgICAgICAgIlQmZW1wcyBDUFUiLElEQ19DUFVUSU1FLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDYxLDQ4LDEwCiAgICBDT05UUk9MICAgICAgICAgIlV0aWxpc2F0aW9uIGRlIGxhICZt6W1vaXJlIixJRENfTUVNT1JZVVNBR0UsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsNzIsNjMsMTAKICAgIENPTlRST0wgICAgICAgICAiyWNhcnQgJmQndXRpbGlzYXRpb24gZGUgbGEgbeltb2lyZSIsSURDX01FTU9SWVVTQUdFREVMVEEsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDgzLDgyLDEwCiAgICBDT05UUk9MICAgICAgICAgIlV0aWxpc2F0aW9uIG1hJnhpbWFsZSBkZSBsYSBt6W1vaXJlIixJRENfUEVBS01FTU9SWVVTQUdFLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNyw5NCw4MiwxMAogICAgQ09OVFJPTCAgICAgICAgICJFcnJldXImcyBkZSBwYWdlIixJRENfUEFHRUZBVUxUUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywxMDUsNTMsMTAKICAgIENPTlRST0wgICAgICAgICAiT2JqZXRzICZVU0VSIixJRENfVVNFUk9CSkVDVFMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsMTE2LDYyLDEwCiAgICBDT05UUk9MICAgICAgICAgIkxlY3R1cmVzIEUvUyIsSURDX0lPUkVBRFMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsMTI3LDQ5LDEwCiAgICBDT05UUk9MICAgICAgICAgIk9jdGV0cyBkZSBsZWN0dXJlIEUvUyIsSURDX0lPUkVBREJZVEVTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNywxMzgsNjUsMTAKICAgIENPTlRST0wgICAgICAgICAiSWRlbnRpJmZpY2F0ZXVyIGRlIHNlc3Npb24iLElEQ19TRVNTSU9OSUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsMTQ5LDUwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZOb20gZGUgbCd1dGlsaXNhdGV1ciIsSURDX1VTRVJOQU1FLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDE2MCw1MSwxMAogICAgQ09OVFJPTCAgICAgICAgICLJJmNhcnQgZCdlcnJldXJzIGRlIHBhZ2luYXRpb24iLElEQ19QQUdFRkFVTFRTREVMVEEsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMDcsMjgsNzIsMTAKICAgIENPTlRST0wgICAgICAgICAiVGFpbGxlIGRlIGxhIG3pbW9pcmUgJnZpcnR1ZWxsZSIsSURDX1ZJUlRVQUxNRU1PUllTSVpFLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTA3LDM5LDc3LDEwCiAgICBDT05UUk9MICAgICAgICAgIlLpc2VydmUgcGEmZ2lu6WUiLElEQ19QQUdFRFBPT0wsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEwNyw1MCw1MywxMAogICAgQ09OVFJPTCAgICAgICAgICJS6XNlcnZlIG4mb24gcGFnaW7pZSIsSURDX05PTlBBR0VEUE9PTCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEwNyw2MSw2NywxMAogICAgQ09OVFJPTCAgICAgICAgICJQJnJpb3JpdOkgZGUgYmFzZSIsSURDX0JBU0VQUklPUklUWSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEwNyw3Miw1NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJOb21icmUgZGUgJmhhbmRsZXMiLElEQ19IQU5ETEVDT1VOVCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTA3LDgzLDU5LDEwCiAgICBDT05UUk9MICAgICAgICAgIk5vbWJyZSBkZSAmdGhyZWFkcyIsSURDX1RIUkVBRENPVU5ULCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMDcsOTQsNTksMTAKICAgIENPTlRST0wgICAgICAgICAiT2ImamV0cyBHREkiLElEQ19HRElPQkpFQ1RTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMDcsMTA1LDU1LDEwCiAgICBDT05UUk9MICAgICAgICAgIkVjcml0dXJlcyBFL1MiLElEQ19JT1dSSVRFUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTA3LDExNiw0OSwxMAogICAgQ09OVFJPTCAgICAgICAgICJPY3RldHMgZCfpY3JpdHVyZSBFL1MiLElEQ19JT1dSSVRFQllURVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMDcsMTI3LDY1LDEwCiAgICBDT05UUk9MICAgICAgICAgIkF1dHJlcyBFL1MiLElEQ19JT09USEVSLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMDcsMTM4LDQ2LDEwCiAgICBDT05UUk9MICAgICAgICAgIk9jdGV0cyBkJ2F1dHJlcyBFL1MiLElEQ19JT09USEVSQllURVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMDcsMTQ5LDY1LDEwCkVORAoKLyoKIFN0cmluZyBUYWJsZQoqLwoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19BUFBfVElUTEUgICAgICAgICAgICJHZXN0aW9ubmFpcmUgZGVzIHTiY2hlcyIKICAgIElEQ19UQVNLTUdSICAgICAgICAgICAgICJHZXN0aW9ubmFpcmUgZGVzIHTiY2hlcyIKICAgIElEU19SVU5ETEdfQ0FQVElPTiAgICAgICJDcmVhdGUgTmV3IFRhc2siCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX0ZJTEVfTkVXICAgICAgICAgICAgICJFeOljdXRlIHVuIG5vdXZlYXUgcHJvZ3JhbW1lIgogICAgSURfT1BUSU9OU19BTFdBWVNPTlRPUCAgIkxlIGdlc3Rpb25uYWlyZSBkZXMgdOJjaGVzIHJlc3RlIGF1IHByZW1pZXIgcGxhbiBkZSB0b3V0ZXMgbGVzIGF1dHJlcyBmZW7qdHJlcyBzYXVmIHMnaWwgZXN0IHLpZHVpdCIKICAgIElEX09QVElPTlNfTUlOSU1JWkVPTlVTRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxlIGdlc3Rpb25uYWlyZSBkZXMgdOJjaGVzIGVzdCBtaW5pbWlz6SBxdWFuZCB1bmUgb3DpcmF0aW9uIEJhc2N1bGVyIHZlcnMgZXN0IGVmZmVjdHXpZSIKICAgIElEX09QVElPTlNfSElERVdIRU5NSU5JTUlaRUQgIkNhY2hlIGxlIGdlc3Rpb25uYWlyZSBkZXMgdOJjaGVzIGxvcnNxdSdpbCBlc3QgculkdWl0IgogICAgSURfVklFV19SRUZSRVNIICAgICAgICAgIkZvcmNlIGxlIGdlc3Rpb25uYWlyZSBkZXMgdOJjaGVzIOAgcydhY3R1YWxpc2VyIG1haW50ZW5hbnQgc2FucyB0ZW5pciBjb21wdGUgZHUgcGFyYW3odHJlIGRlIGZy6XF1ZW5jZSBkJ2FjdHVhbGlzYXRpb24iCiAgICBJRF9WSUVXX0xBUkdFICAgICAgICAgICAiQWZmaWNoZSBsZXMgdOJjaGVzIGVuIHV0aWxpc2FudCBkZSBncmFuZGVzIGlj9G5lcyIKICAgIElEX1ZJRVdfU01BTEwgICAgICAgICAgICJBZmZpY2hlIGxlcyB04mNoZXMgZW4gdXRpbGlzYW50IGRlIHBldGl0ZXMgaWP0bmVzIgogICAgSURfVklFV19ERVRBSUxTICAgICAgICAgIkFmZmljaGUgZGVzIGluZm9ybWF0aW9ucyBzdXIgY2hhY3VuZSBkZXMgdOJjaGVzIgogICAgSURfVklFV19VUERBVEVTUEVFRF9ISUdIICJBY3R1YWxpc2UgbCdhZmZpY2hhZ2UgZGV1eCBmb2lzIHBhciBzZWNvbmRlIgogICAgSURfVklFV19VUERBVEVTUEVFRF9OT1JNQUwgIkFjdHVhbGlzZSBsJ2FmZmljaGFnZSB0b3V0ZXMgbGVzIGRldXggc2Vjb25kZXMiCiAgICBJRF9WSUVXX1VQREFURVNQRUVEX0xPVyAiQWN0dWFsaXNlIGwnYWZmaWNoYWdlIHRvdXRlcyBsZXMgcXVhdHJlIHNlY29uZGVzIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9WSUVXX1VQREFURVNQRUVEX1BBVVNFRCAiTidhY3R1YWxpc2UgcGFzIGwnYWZmaWNoYWdlIGF1dG9tYXRpcXVlbWVudCIKICAgIElEX1dJTkRPV1NfVElMRUhPUklaT05UQUxMWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFycmFuZ2UgbGVzIGZlbup0cmVzIGhvcml6b250YWxlbWVudCBzdXIgbGUgYnVyZWF1IgogICAgSURfV0lORE9XU19USUxFVkVSVElDQUxMWSAiQXJyYW5nZSBsZXMgZmVu6nRyZXMgdmVydGljYWxlbWVudCBzdXIgbGUgYnVyZWF1IgogICAgSURfV0lORE9XU19NSU5JTUlaRSAgICAgIlLpZHVpdCBsZXMgZmVu6nRyZXMiCiAgICBJRF9XSU5ET1dTX01BWElNSVpFICAgICAiQWdyYW5kaXQgbGVzIGZlbup0cmVzIgogICAgSURfV0lORE9XU19DQVNDQURFICAgICAgIlBsYWNlIGxlcyBmZW7qdHJlcyBlbiBjYXNjYWRlIHN1ciBsZSBidXJlYXUiCiAgICBJRF9XSU5ET1dTX0JSSU5HVE9GUk9OVCAiQWZmaWNoZSBsYSBmZW7qdHJlIGF1IHByZW1pZXIgcGxhbiwgbWFpcyBuZSBiYXNjdWxlIHBhcyB2ZXJzIGNlbGxlLWNpIgogICAgSURfSEVMUF9UT1BJQ1MgICAgICAgICAgIkFmZmljaGUgbGVzIHJ1YnJpcXVlcyBkJ2FpZGUgZHUgZ2VzdGlvbm5haXJlIGRlcyB04mNoZXMiCiAgICBJRF9IRUxQX0FCT1VUICAgICAgICAgICAiQWZmaWNoZSBsZSBpbmZvcm1hdGlvbnMgc3VyIGxlIHByb2dyYW1tZSwgbGEgdmVyc2lvbiBldCBsZSBjb3B5cmlnaHQiCiAgICBJRF9GSUxFX0VYSVQgICAgICAgICAgICAiUXVpdHRlIGxlIGdlc3Rpb25uYWlyZSBkZXMgdOJjaGVzIgogICAgSURfT1BUSU9OU19TSE9XMTZCSVRUQVNLUwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFmZmljaGUgbGVzIHTiY2hlcyAxNi1iaXQgc291cyBsZSBudHZkbS5leGUgYXNzb2Np6SIKICAgIElEX1ZJRVdfU0VMRUNUQ09MVU1OUyAgICJT6WxlY3Rpb25uZSBxdWVsbGVzIGNvbG9ubmVzIHNlcm9udCBhZmZpY2jpZXMgZGFucyBsYSBwYWdlIGRlcyBwcm9jZXNzdXMiCiAgICBJRF9WSUVXX1NIT1dLRVJORUxUSU1FUyAiQWZmaWNoZSBsZSB0ZW1wcyBub3lhdSBkYW5zIGxlcyBncmFwaGlxdWVzIGRlIHBlcmZvcm1hbmNlcyIKICAgIElEX1ZJRVdfQ1BVSElTVE9SWV9PTkVHUkFQSEFMTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkwndXRpbGlzYXRpb24gZGVzIHByb2Nlc3NldXJzIGVzdCBhZmZpY2jpZSBzdXIgdW4gc2V1bCBncmFwaGlxdWUiCiAgICBJRF9WSUVXX0NQVUhJU1RPUllfT05FR1JBUEhQRVJDUFUgIkNoYXF1ZSBwcm9jZXNzZXVyIOAgc29uIHByb3ByZSBncmFwaGlxdWUiCiAgICBJRF9BUFBMSUNBVElPTl9QQUdFX1NXSVRDSFRPCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQW3obmUgbGEgdOJjaGUgYXUgcHJlbWllciBwbGFuIGV0IGJhc2N1bGUgdmVycyBjZWxsZS1jaSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfRU5EVEFTSyAgICAgICAgICAgICAgIkRlbWFuZGUg4CBsYSB04mNoZSBz6WxlY3Rpb25uZXIgZGUgc2UgdGVybWluZXIiCiAgICBJRF9HT1RPUFJPQ0VTUyAgICAgICAgICAiQmFzY3VsZSB2ZXJzIGxlIHByb2Nlc3N1cyBkZSBsYSB04mNoZSBz6WxlY3Rpb25u6WUiCiAgICBJRF9SRVNUT1JFICAgICAgICAgICAgICAiUmVzdGF1cmUgbGUgZ2VzdGlvbm5haXJlIGRlcyB04mNoZXMiCiAgICBJRF9QUk9DRVNTX1BBR0VfRU5EUFJPQ0VTUyAiUmV0aXJlIGxlIHByb2Nlc3N1cyBkdSBzeXN06G1lIgogICAgSURfUFJPQ0VTU19QQUdFX0VORFBST0NFU1NUUkVFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmV0aXJlIGNlIHByb2Nlc3N1cyBldCB0b3VzIGNlcyBmaWxzIGR1IHN5c3TobWUiCiAgICBJRF9QUk9DRVNTX1BBR0VfREVCVUcgICAiQXR0YWNoZSBsZSBk6WJ1Z2dldXIg4CBjZSBwcm9jZXNzdXMiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUQUZGSU5JVFkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb250cvRsZSBzdXIgcXVlbCBwcm9jZXNzZXVyIGxlIHByb2Nlc3N1cyBzZXJhIGF1dG9yaXPpIOAgcydleOljdXRlciIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9SRUFMVElNRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBsYWNlIGxlIHByb2Nlc3N1cyBkYW5zIGxhIGNsYXNzZSBkZSBwcmlvcml06SBURU1QUyBSyUVMIgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0hJR0ggIlBsYWNlIGxlIHByb2Nlc3N1cyBkYW5zIGxhIGNsYXNzZSBkZSBwcmlvcml06SBIQVVURSIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9BQk9WRU5PUk1BTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBsYWNlIGxlIHByb2Nlc3N1cyBkYW5zIGxhIGNsYXNzZSBkZSBwcmlvcml06SBTVVDJUklFVVJFIMAgTEEgTk9STUFMRSIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9OT1JNQUwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFjZSBsZSBwcm9jZXNzdXMgZGFucyBsYSBjbGFzc2UgZGUgcHJpb3JpdOkgTk9STUFMRSIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9CRUxPV05PUk1BTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBsYWNlIGxlIHByb2Nlc3N1cyBkYW5zIGxhIGNsYXNzZSBkZSBwcmlvcml06SBJTkbJUklFVVJFIMAgTEEgTk9STUFMRSIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9MT1cgIlBsYWNlIGxlIHByb2Nlc3N1cyBkYW5zIGxhIGNsYXNzZSBkZSBwcmlvcml06SBCQVNTRSIKRU5ECg==