LyoKICogRHV0Y2ggcmVzb3VyY2VzIGZvciBtc2h0bWwKICoKICogQ29weXJpZ2h0IDIwMDUgSGFucyBMZWlkZWtrZXIKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKCkxBTkdVQUdFIExBTkdfRFVUQ0gsIFNVQkxBTkdfTkVVVFJBTAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKewogICAgSURTX01FU1NBR0VfQk9YX1RJVExFLCAiV2luZSBJbnRlcm5ldCBWZXJrZW5uZXIiCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19QUklOVF9IRUFERVJfVEVNUExBVEUgIiZ3JmJQYWdpbmEgJnAiIC8qIEZJWE1FOiBzaG91bGQgYmUgIiZ3JmJQYWdpbmEgJnAgb2YgJlAiICovCiAgICBJRFNfUFJJTlRfRk9PVEVSX1RFTVBMQVRFICImdSZiJmQiCn0KCklEUl9CUk9XU0VfQ09OVEVYVF9NRU5VIE1FTlUKewogICAgUE9QVVAgIlN0YW5kYWFyZCIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJlRlcnVnIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9HT0JBQ0tXQVJECiAgICAgICAgTUVOVUlURU0gIlYmb29ydWl0IiwgICAgICAgICAgICAgICAgICAgICAgICAgICBJRE1fR09GT1JXQVJECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZBY2h0ZXJncm9uZCBvcHNsYWFuIGFscy4uLiIsICAgICAgICBJRE1fU0FWRUJBQ0tHUk9VTkQKICAgICAgICBNRU5VSVRFTSAiQWxzIGFjaHRlcmdyb25kIGluc3RlbGxlbiIsICAgICAgICAgIElETV9TRVRXQUxMUEFQRVIKICAgICAgICBNRU5VSVRFTSAiQWNodGVyZ3JvbmQgJmtvcGnrcmVuIiwgICAgICAgICAgICAgIElETV9DT1BZQkFDS0dST1VORAogICAgICAgIE1FTlVJVEVNICJBbHMgZGVza3RvcGVsZW1lbnQgaW5zdGVsbGVuLi4uIiwgICAgSURNX1NFVERFU0tUT1BJVEVNCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkFsbGVzICZzZWxlY3RlcmVuIiwgICAgICAgICAgICAgICAgICBJRE1fU0VMRUNUQUxMCiAgICAgICAgTUVOVUlURU0gIiZQbGFra2VuIiwgICAgICAgICAgICAgICAgICAgICAgICAgICBJRE1fUEFTVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlNuZWxrb3BwZWxpbmcgYWFubWFrZW4iLCAgICAgICAgICAgIElETV9DUkVBVEVTSE9SVENVVAogICAgICAgIE1FTlVJVEVNICJBbHMgJmZhdm9yaWV0IHRvZXZvZWdlbiIsICAgICAgICAgICAgSURNX0FEREZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNICImQnJvbndlZXJnYXZlIiwgICAgICAgICAgICAgICAgICAgICAgSURNX1ZJRVdTT1VSQ0UKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlRla3N0Y29kZXJpbmciLCAgICAgICAgICAgICAgICAgICAgIElETV9MQU5HVUFHRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQWZkcnVra2VuIiwgICAgICAgICAgICAgICAgICAgICAgICAgSURNX1BSSU5UCiAgICAgICAgTUVOVUlURU0gIkEmY3R1YWxpc2VyZW4iLCAgICAgICAgICAgICAgICAgICAgICBfSURNX1JFRlJFU0gKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkVpZ2Vuc2NoYXBwZW4iLCAgICAgICAgICAgICAgICAgICAgIElETV9QUk9QRVJUSUVTCiAgICB9CgogICAgUE9QVVAgIkJlZWxkIgogICAgewogICAgICAgIE1FTlVJVEVNICImT3BlbiBsaW5rIiwgICAgICAgICAgICAgICAgICAgICAgICAgSURNX0ZPTExPV0xJTktDCiAgICAgICAgTUVOVUlURU0gIk9wZW4gbGluayBpbiBuaWV1dyB2ZW5zdGVyIiwgICAgICAgICBJRE1fRk9MTE9XTElOS04KICAgICAgICBNRU5VSVRFTSAiJkRvZWwgb3BzbGFhbiBhbHMuLi4iLCAgICAgICAgICAgICAgIElETV9TQVZFVEFSR0VUCiAgICAgICAgTUVOVUlURU0gIkRvZWwgJmFmZHJ1a2tlbiIsICAgICAgICAgICAgICAgICAgICBJRE1fUFJJTlRUQVJHRVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiVG9vbiBiJmVlbGQiLCAgICAgICAgICAgICAgICAgICAgICAgIElETV9TSE9XUElDVFVSRQogICAgICAgIE1FTlVJVEVNICImQmVlbGQgb3BzbGFhbiBhbHMuLi4iLCAgICAgICAgICAgICAgSURNX1NBVkVQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIkJlZWxkICZ2ZXJzdHVyZW4uLi4iLCAgICAgICAgICAgICAgICBJRE1fTVBfRU1BSUxQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIkJlZWxkIEFmJmRydWtrZW4uLi4iLCAgICAgICAgICAgICAgICBJRE1fTVBfUFJJTlRQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIiZHYSBuYWFyIE1pam4gQWZiZWVsZGluZ2VuIiwgICAgICAgICBJRE1fTVBfTVlQSUNTCiAgICAgICAgTUVOVUlURU0gIkFscyBhY2h0ZXJncm9uZCBpbnN0ZWxsZW4iLCAgICAgICAgICBJRE1fU0VUV0FMTFBBUEVSCiAgICAgICAgTUVOVUlURU0gIkFscyBkZXNrdG9wZWxlbWVudCBpbnN0ZWxsZW4uLi4iLCAgICBJRE1fU0VUREVTS1RPUElURU0KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiSyZuaXBwZW4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9DVVQKICAgICAgICBNRU5VSVRFTSAiJktvcGnrcmVuIiwgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9DT1BZCiAgICAgICAgTUVOVUlURU0gIiZTbmVsa29wcGVsaW5nIGtvcGnrcmVuIiwgICAgICAgICAgICBJRE1fQ09QWVNIT1JUQ1VUCiAgICAgICAgTUVOVUlURU0gIiZQbGFra2VuIiwgICAgICAgICAgICAgICAgICAgICAgICAgICBJRE1fUEFTVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWFuICZmYXZvcmlldGVuIHRvZXZvZWdlbi4uLiIsICAgICAgIElETV9BRERGQVZPUklURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkVpZ2Vuc2NoYXBwZW4iLCAgICAgICAgICAgICAgICAgICAgIElETV9QUk9QRVJUSUVTCiAgICB9CgogICAgUE9QVVAgIkJlc3R1cmluZyIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJk9uZ2VkYWFuIG1ha2VuIiwgICBJRE1fVU5ETwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImS25pcHBlbiIsICAgICAgICAgIElETV9DVVQKICAgICAgICBNRU5VSVRFTSAiSyZvcGnrcmVuIiwgICAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICImUGxha2tlbiIsICAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNICImVmVyd2lqZGVyZW4iLCAgICAgIElETV9ERUxFVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWxsZXMgJnNlbGVjdGVyZW4iLCBJRE1fU0VMRUNUQUxMCiAgICB9CgogICAgUE9QVVAgIlRhYmVsbGVuIgogICAgewogICAgICAgIFBPUFVQICImU2VsZWN0ZXJlbiIKICAgICAgICB7CiAgICAgICAgICAgIE1FTlVJVEVNICImQ2VsIiwgICAgICAgICAgICAgICAgIElETV9DRUxMU0VMRUNUCiAgICAgICAgICAgIE1FTlVJVEVNICImUmVnZWwiLCAgICAgICAgICAgICAgIElETV9ST1dTRUxFQ1QKICAgICAgICAgICAgTUVOVUlURU0gIiZLb2xvbSIsICAgICAgICAgICAgICAgSURNX0NPTFVNTlNFTEVDVAogICAgICAgICAgICBNRU5VSVRFTSAiJlRhYmVsIiwgICAgICAgICAgICAgICBJRE1fVEFCTEVTRUxFQ1QKICAgICAgICB9CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZDZWxlaWdlbnNjaGFwcGVuIiwgICAgICAgSURNX0NFTExQUk9QRVJUSUVTCiAgICAgICAgTUVOVUlURU0gIiZUYWJlbGVpZ2Vuc2NoYXBwZW4iLCAgICAgSURNX1RBQkxFUFJPUEVSVElFUwogICAgfQoKICAgIFBPUFVQICIxRFBhZ2luYWtldXplIgogICAgewogICAgICAgIE1FTlVJVEVNICJLJm5pcHBlbiIsICAgICAgICAgIElETV9DVVQKICAgICAgICBNRU5VSVRFTSAiJktvcGnrcmVuIiwgICAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICImUGxha2tlbiIsICAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNICJBbGxlcyAmc2VsZWN0ZXJlbiIsIElETV9TRUxFQ1RBTEwKICAgICAgICBNRU5VSVRFTSAiJkFmZHJ1a2tlbiIsICAgICAgICBJRE1fUFJJTlQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgIH0KCiAgICBQT1BVUCAiQW5rZXIiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIiZPcGVuZW4iLCAgICAgICAgICAgICAgICAgICAgICBJRE1fRk9MTE9XTElOS0MKICAgICAgICBNRU5VSVRFTSAiSW4gJm5pZXV3IHZlbnN0ZXIgb3BlbmVuIiwgICAgIElETV9GT0xMT1dMSU5LTgogICAgICAgIE1FTlVJVEVNICJEb2VsIG9wJnNsYWFuIGFscy4uLiIsICAgICAgICAgSURNX1NBVkVUQVJHRVQKICAgICAgICBNRU5VSVRFTSAiRG9lbCAmYWZkcnVra2VuIiwgICAgICAgICAgICAgIElETV9QUklOVFRBUkdFVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJLJm5pcHBlbiIsICAgICAgICAgICAgICAgICAgICAgSURNX0NVVAogICAgICAgIE1FTlVJVEVNICImS29waetyZW4iLCAgICAgICAgICAgICAgICAgICAgSURNX0NPUFkKICAgICAgICBNRU5VSVRFTSAiJlNuZWxrb3BwZWxpbmcga29waetyZW4iLCAgICAgIElETV9DT1BZU0hPUlRDVVQKICAgICAgICBNRU5VSVRFTSAiJlBsYWtrZW4iLCAgICAgICAgICAgICAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBYW4gJmZhdm9yaWV0ZW4gdG9ldm9lZ2VuLi4uIiwgSURNX0FEREZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRWlnZW5zY2hhcHBlbiIsICAgICAgICAgICAgICAgSURNX1BST1BFUlRJRVMKICAgIH0KCiAgICBQT1BVUCAiQ29udGV4dCBPbmJla2VuZCIKICAgIHsKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgIH0KCiAgICBQT1BVUCAiRFlOU1JDIEJlZWxkIgogICAgewogICAgICAgIE1FTlVJVEVNICImT3BlbiBsaW5rIiwgICAgICAgICAgICAgICAgICAgICAgICBJRE1fRk9MTE9XTElOS0MKICAgICAgICBNRU5VSVRFTSAiT3BlbiBsaW5rIGluICZuaWV1dyB2ZW5zdGVyIiwgICAgICAgSURNX0ZPTExPV0xJTktOCiAgICAgICAgTUVOVUlURU0gIkRvZWwgJm9wc2xhYW4gYWxzLi4uIiwgICAgICAgICAgICAgIElETV9TQVZFVEFSR0VUCiAgICAgICAgTUVOVUlURU0gIiZEb2VsIGFmZHJ1a2tlbiIsICAgICAgICAgICAgICAgICAgIElETV9QUklOVFRBUkdFVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJUb29uIGImZWVsZCIsICAgICAgICAgICAgICAgICAgICAgICBJRE1fU0hPV1BJQ1RVUkUKICAgICAgICBNRU5VSVRFTSAiJkJlZWxkIG9wc2xhYW4gYWxzLi4uIiwgICAgICAgICAgICAgSURNX1NBVkVQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIkFscyBhY2h0ZXJncm9uZCBpbnN0ZWxsZW4iLCAgICAgICAgIElETV9TRVRXQUxMUEFQRVIKICAgICAgICBNRU5VSVRFTSAiQWxzIGRlc2t0b3BlbGVtZW50IGluc3RlbGxlbi4uLiIsICAgSURNX1NFVERFU0tUT1BJVEVNCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIksmbmlwcGVuIiwgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9DVVQKICAgICAgICBNRU5VSVRFTSAiJktvcGnrcmVuIiwgICAgICAgICAgICAgICAgICAgICAgICAgSURNX0NPUFkKICAgICAgICBNRU5VSVRFTSAiJlNuZWxrb3BwZWxpbmcga29waetyZW4iLCAgICAgICAgICAgSURNX0NPUFlTSE9SVENVVAogICAgICAgIE1FTlVJVEVNICImUGxha2tlbiIsICAgICAgICAgICAgICAgICAgICAgICAgICBJRE1fUEFTVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWFuICZmYXZvcmlldGVuIHRvZXZvZWdlbi4uLiIsICAgICAgSURNX0FEREZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBZnNwZWxlbiIsICAgICAgICAgICAgICAgICAgICAgICAgICBJRE1fRFlOU1JDUExBWQogICAgICAgIE1FTlVJVEVNICJTdG9wIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRE1fRFlOU1JDU1RPUAogICAgICAgIE1FTlVJVEVNICImRWlnZW5zY2hhcHBlbiIsICAgICAgICAgICAgICAgICAgICBJRE1fUFJPUEVSVElFUwogICAgfQoKICAgIFBPUFVQICJBUlQgQmVlbGQiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIiZPcGVuIGxpbmsiLCAgICAgICAgICAgICAgICAgICAgICAgIElETV9GT0xMT1dMSU5LQwogICAgICAgIE1FTlVJVEVNICJPcGVuIGxpbmsgaW4gJm5pZXV3IHZlbnN0ZXIiLCAgICAgICBJRE1fRk9MTE9XTElOS04KICAgICAgICBNRU5VSVRFTSAiRG9lbCAmb3BzbGFhbiBhbHMuLi4iLCAgICAgICAgICAgICAgSURNX1NBVkVUQVJHRVQKICAgICAgICBNRU5VSVRFTSAiJkRvZWwgYWZkcnVra2VuIiwgICAgICAgICAgICAgICAgICAgSURNX1BSSU5UVEFSR0VUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlRvb24gYiZlZWxkIiwgICAgICAgICAgICAgICAgICAgICAgIElETV9TSE9XUElDVFVSRQogICAgICAgIE1FTlVJVEVNICImQmVlbGQgb3BzbGFhbiBhbHMuLi4iLCAgICAgICAgICAgICBJRE1fU0FWRVBJQ1RVUkUKICAgICAgICBNRU5VSVRFTSAiQWxzIGFjaHRlcmdyb25kIGluc3RlbGxlbiIsICAgICAgICAgSURNX1NFVFdBTExQQVBFUgogICAgICAgIE1FTlVJVEVNICJBbHMgZGVza3RvcGVsZW1lbnQgaW5zdGVsbGVuLi4uIiwgICBJRE1fU0VUREVTS1RPUElURU0KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiSyZuaXBwZW4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgSURNX0NVVAogICAgICAgIE1FTlVJVEVNICImS29waetyZW4iLCAgICAgICAgICAgICAgICAgICAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICImU25lbGtvcHBlbGluZyBrb3Bp63JlbiIsICAgICAgICAgICBJRE1fQ09QWVNIT1JUQ1VUCiAgICAgICAgTUVOVUlURU0gIiZQbGFra2VuIiwgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBYW4gJmZhdm9yaWV0ZW4gdG9ldm9lZ2VuLi4uIiwgICAgICBJRE1fQURERkFWT1JJVEVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkFmc3BlbGVuIiwgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9JTUdBUlRQTEFZCiAgICAgICAgTUVOVUlURU0gIlN0b3AiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9JTUdBUlRTVE9QCiAgICAgICAgTUVOVUlURU0gIlRlcnVnc3BvZWxlbiIsICAgICAgICAgICAgICAgICAgICAgIElETV9JTUdBUlRSRVdJTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkVpZ2Vuc2NoYXBwZW4iLCAgICAgICAgICAgICAgICAgICAgSURNX1BST1BFUlRJRVMKICAgIH0KCiAgICBQT1BVUCAiRGVidWciCiAgICB7CiAgICAgICAgTUVOVUlURU0gIlRyYWNlZXIgTGFiZWxzIiwgICAgICAgICBJRE1fVFJBQ0VUQUdTCiAgICAgICAgTUVOVUlURU0gIlJlc291cmNlIEZvdXRlbiIsICBJRE1fUkVTT1VSQ0VGQUlMVVJFUwogICAgICAgIE1FTlVJVEVNICJMb2cgVHJhY2VyaW5ncyBJbmZvcm1hdGllIiwgSURNX0RVTVBUUkFDS0lOR0lORk8KICAgICAgICBNRU5VSVRFTSAiRGVidWcgT25kZXJicmVraW5nIiwgICAgICAgIElETV9ERUJVR0JSRUFLCiAgICAgICAgTUVOVUlURU0gIkRlYnVnIEJlZWxkIiwgICAgICAgICBJRE1fREVCVUdWSUVXCiAgICAgICAgTUVOVUlURU0gIkxvZyBHZWhlbGUgQm9vbSIsICAgICAgICAgIElETV9EVU1QVFJFRQogICAgICAgIE1FTlVJVEVNICJMb2cgUmVnZWxzIiwgICAgICAgICBJRE1fRFVNUExJTkVTCiAgICAgICAgTUVOVUlURU0gIkxvZyBCZWVsZCBCb29tIiwgICBJRE1fRFVNUERJU1BMQVlUUkVFCiAgICAgICAgTUVOVUlURU0gIkxvZyBGb3JtYWF0IENhY2hlcyIsICBJRE1fRFVNUEZPUk1BVENBQ0hFUwogICAgICAgIE1FTlVJVEVNICJMb2cgTGF5b3V0IFJlY3RzIiwgICBJRE1fRFVNUExBWU9VVFJFQ1RTCiAgICAgICAgTUVOVUlURU0gIkdlaGV1Z2VuIE1vbml0b3IiLCAgICAgSURNX01FTU9SWU1PTklUT1IKICAgICAgICBNRU5VSVRFTSAiUGVyZm9ybWFuY2UgTWV0ZXJzIiwgSURNX1BFUkZPUk1BTkNFTUVURVJTCiAgICAgICAgTUVOVUlURU0gIlNsYSBIVE1MIG9wIiwgICAgICAgICAgSURNX1NBVkVIVE1MCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZCbGFkZXJlbiBCZWVsZCIsICAgICAgIElETV9CUk9XU0VNT0RFCiAgICAgICAgTUVOVUlURU0gIiZXaWp6aWdlbiBCZWVsZCIsICAgICAgICAgSURNX0VESVRNT0RFCiAgICB9CgogICAgUE9QVVAgIlZlcnRpa2FsZSBzY3JvbGxiYWxrIgogICAgewogICAgICAgIE1FTlVJVEVNICJTY3JvbGwgaGllciIsICAgICBJRE1fU0NST0xMX0hFUkUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQm92ZW4iLCAgICAgICAgICAgSURNX1NDUk9MTF9UT1AKICAgICAgICBNRU5VSVRFTSAiT25kZXIiLCAgICAgICAgICAgSURNX1NDUk9MTF9CT1RUT00KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiUGFnaW5hIGJvdmVuIiwgICAgSURNX1NDUk9MTF9QQUdFVVAKICAgICAgICBNRU5VSVRFTSAiUGFnaW5hIG9uZGVyIiwgICAgSURNX1NDUk9MTF9QQUdFRE9XTgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJTY3JvbGwgb21ob29nIiwgICBJRE1fU0NST0xMX1VQCiAgICAgICAgTUVOVUlURU0gIlNjcm9sbCBvbWxhYWciLCAgIElETV9TQ1JPTExfRE9XTgogICAgfQoKICAgIFBPUFVQICJIb3Jpem9udGFsZSBzY3JvbGxiYWxrIgogICAgewogICAgICAgIE1FTlVJVEVNICJTY3JvbGwgaGllciIsICAgICBJRE1fU0NST0xMX0hFUkUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiTGlua2VyIGhvZWsiLCAgICAgSURNX1NDUk9MTF9MRUZURURHRQogICAgICAgIE1FTlVJVEVNICJSZWNodGVyIGhvZWsiLCAgICBJRE1fU0NST0xMX1JJR0hURURHRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJQYWdpbmEgbGlua3MiLCAgICBJRE1fU0NST0xMX1BBR0VMRUZUCiAgICAgICAgTUVOVUlURU0gIlBhZ2luYSByZWNodHMiLCAgIElETV9TQ1JPTExfUEFHRVJJR0hUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlNjcm9sbCBsaW5rcyIsICAgIElETV9TQ1JPTExfTEVGVAogICAgICAgIE1FTlVJVEVNICJTY3JvbGwgcmVjaHRzIiwgICBJRE1fU0NST0xMX1JJR0hUCiAgICB9Cn0K