LyoKICogQ29weXJpZ2h0IDE5OTkgR3VzdGF2byBKdW5pb3IgQWx2ZXMKICogQ29weXJpZ2h0IDIwMDMgTWFyY2VsbyBEdWFydGUKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKU1RSSU5HVEFCTEUgTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX0RFRkFVTFQKQkVHSU4KCi8qIE1NU1lTIGVycm9ycyAqLwpNTVNZU0VSUl9OT0VSUk9SLCAJCSJPIGNvbWFuZG8gZXNwZWNpZmljYWRvIGZvaSBkZXNjYXJyZWdhZG8uIgpNTVNZU0VSUl9FUlJPUiwgCQkiRXJybyBleHRlcm5vIGluZGVmaW5pZG8uIgpNTVNZU0VSUl9CQURERVZJQ0VJRCwgCQkiTyBJRCBkbyBkaXNwb3NpdGl2byB1dGlsaXphZG8gZXN04SBmb3JhIGRvcyBwYXLibWV0cm9zIGRvIHNldSBzaXN0ZW1hLiIKTU1TWVNFUlJfTk9URU5BQkxFRCwgCQkiTyBkcml2ZXIgbuNvIGZvaSBoYWJpbGl0YWRvLiIKTU1TWVNFUlJfQUxMT0NBVEVELCAJCSJPIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2FkbyBq4SBlc3ThIGVtIHVzby4gQWd1YXJkZSBhdOkgcXVlIHNlamEgbGliZXJhZG8sIGUgZW50428gdGVudGUgbm92YW1lbnRlLiIKTU1TWVNFUlJfSU5WQUxIQU5ETEUsIAkJIk8gaGFuZGxlIGRvIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2FkbyDpIGluduFsaWRvLiIKTU1TWVNFUlJfTk9EUklWRVIsIAkJIk7jbyBo4SBuZW5odW0gZHJpdmVyIGluc3RhbGFkbyBlbSBzZXUgc2lzdGVtYSAhXG4iCk1NU1lTRVJSX05PTUVNLCAJCSJO428gaOEgbWVt83JpYSBkaXNwb27tdmVsIHN1ZmljaWVudGUgcGFyYSBlc3NhIHRhcmVmYS4gRmVjaGUgdW1hIG91IG1haXMgYXBsaWNh5/VlcyBwYXJhIGF1bWVudGFyIGEgbWVt83JpYSBkaXNwb27tdmVsLCBlIGVudONvIHRlbnRlIG5vdmFtZW50ZS4iCk1NU1lTRVJSX05PVFNVUFBPUlRFRCwgCQkiRXNzYSBmdW7n428gbuNvIOkgc3Vwb3J0YWRhLiBVdGlsaXplIGEgZnVu5+NvIENhcGFjaWRhZGVzIHBhcmEgZGV0ZXJtaW5hciBxdWFpcyBmdW7n9WVzIGUgbWVuc2FnZW5zIG8gZHJpdmVyIHN1cG9ydGEuIgpNTVNZU0VSUl9CQURFUlJOVU0sIAkJIlVtIG76bWVybyBkZSBlcnJvIGZvaSBlc3BlY2lmaWNhZG8gZSBu428gZXN04SBkZWZpbmlkbyBlbSBzZXUgc2lzdGVtYS4iCk1NU1lTRVJSX0lOVkFMRkxBRywgCQkiVW0gZmxhZyBpbnbhbGlkbyBmb2kgcGFzc2FkbyBwYXJhIHVtYSBmdW7n428gZG8gc2lzdGVtYS4iCk1NU1lTRVJSX0lOVkFMUEFSQU0sIAkJIlVtIHBhcuJtZXRybyBpbnbhbGlkbyBmb2kgcGFzc2FkbyBwYXJhIHVtYSBmdW7n428gZG8gc2lzdGVtYS4iCgovKiBXQVZFIGVycm9ycyAqLwpXQVZFUlJfQkFERk9STUFULCAJCSJPIGZvcm1hdG8gZXNwZWNpZmljYWRvIG7jbyDpIHN1cG9ydGFkbyBvdSBu428gcG9kZSBzZXIgdHJhZHV6aWRvLiBVc2UgYSBmdW7n428gQ2FwYWNpZGFkZXMgcGFyYSBkZXRlcm1pbmFyIG9zIGZvcm1hdG9zIHN1cG9ydGFkb3MuIgpXQVZFUlJfU1RJTExQTEFZSU5HLCAJCSJO428g6SBwb3Nz7XZlbCBleGVjdXRhciBlc3RhIG9wZXJh5+NvIGVucXVhbmRvIG9zIGRhZG9zIGRlIG3tZGlhIGVzdGl2ZXJlbSB0b2NhbmRvLiBSZWluaWNpZSBvIGRpc3Bvc2l0aXZvLCBvdSBhZ3VhcmRlIGF06SBvIHTpcm1pbm8gZGEgZXhlY3Xn428uIgpXQVZFUlJfVU5QUkVQQVJFRCwgCQkiTyBjYWJl52FsaG8gZG8gd2F2ZSBu428gZXN04SBwcmVwYXJhZG8uIFVzZSBhIGZ1bufjbyBQcmVwYXJhciBwYXJhIHByZXBhcmFyIG8gY2FiZedhbGhvLCBlIGVudONvIHRlbnRlIG5vdmFtZW50ZS4iCldBVkVSUl9TWU5DLCAJCQkiTuNvIOkgcG9zc+12ZWwgYWJyaXIgbyBkaXNwb3NpdGl2byBzZW0gdXRpbGl6YXIgYSBmbGFnIFdBVkVfQUxMT1dTWU5DLiBVc2UgYSBmbGFnLCBlIGVudONvIHRlbnRlIG5vdmFtZW50ZS4iCgovKiBNSURJIGVycm9ycyAqLwpNSURJRVJSX1VOUFJFUEFSRUQsIAkJIk8gY2FiZedhbGhvIE1JREkgbuNvIGVzdOEgcHJlcGFyYWRvLiBVc2UgYSBmdW7n428gUHJlcGFyYXIgcGFyYSBwcmVwYXJhciBvIGNhYmXnYWxobywgZSBlbnTjbyB0ZW50ZSBub3ZhbWVudGUuIgpNSURJRVJSX1NUSUxMUExBWUlORywgCQkiTuNvIOkgcG9zc+12ZWwgZXhlY3V0YXIgZXN0YSBvcGVyYefjbyBlbnF1YW50byBvcyBkYWRvcyBkYSBt7WRpYSBlc3RpdmVyZW0gc2VuZG8gZXhlY3V0YWRvcy4gUmVpbmljaWUgbyBkaXNwb3NpdGl2bywgb3UgYWd1YXJkZSBhdOkgb3MgZGFkb3MgdGVybWluYXJlbSBkZSBzZXIgdG9jYWRvcy4iCk1JRElFUlJfTk9NQVAsIAkJCSJPIG1hcGEgTUlESSBu428gZm9pIGVuY29udHJhZG8uIFRhbHZleiBzZWphIHVtIHByb2JsZW1hIGNvbSBvIGRyaXZlciwgb3UgbyBhcnF1aXZvIE1JRElNQVAuQ0ZHIHBvZGUgZXN0YXIgY29ycm9tcGlkbyBvdSBmYWx0YW5kby4iCk1JRElFUlJfTk9UUkVBRFksIAkJIkEgcG9ydGEgZXN04SB0cmFuc21pdGluZG8gZGFkb3MgcGFyYSBvIGRpc3Bvc2l0aXZvLiBBZ3VhcmRlIGF06SBvcyBkYWRvcyB0ZXJtaW5hcmVtIGRlIHNlciB0cmFuc21pdGlkb3MsIGUgZW50428gdGVudGUgbm92YW1lbnRlLiIKTUlESUVSUl9OT0RFVklDRSwgCQkiQSBjb25maWd1cmHn428gYXR1YWwgZG8gTUlESSBNYXBwZXIgcmVmZXJlLXNlIGEgdW0gZGlzcG9zaXRpdm8gTUlESSBxdWUgbuNvIGVzdOEgaW5zdGFsYWRvIG5vIHNpc3RlbWEuIFVzZSBNSURJIE1hcHBlciBwYXJhIGVkaXRhciBhIGNvbmZpZ3VyYefjby4iCk1JRElFUlJfSU5WQUxJRFNFVFVQLCAJCSJBIGNvbmZpZ3VyYefjbyBhdHVhbCBkbyBNSURJIGVzdOEgY29ycm9tcGlkYS4gQ29waWUgbyBhcnF1aXZvIG9yaWdpbmFsIE1JRElNQVAuQ0ZHIHBhcmEgbyBkaXJldPNyaW8gV2luZG93cyBTWVNURU0sIGUgZW50428gdGVudGUgbm92YW1lbnRlLiIKCi8qIE1DSSBlcnJvcnMgKi8KTUNJRVJSX0lOVkFMSURfREVWSUNFX0lELCAJIklEIGluduFsaWRvIGRvIGRpc3Bvc2l0aXZvIE1DSS4gVXNlIG8gSUQgcmV0b3JuYWRvIHBhcmEgYWJyaXIgbyBkaXNwb3NpdGl2byBNQ0kuIgpNQ0lFUlJfVU5SRUNPR05JWkVEX0tFWVdPUkQsIAkiTyBkcml2ZXIgbuNvIHBvZGUgcmVjb25oZWNlciBvIHBhcuJtZXRybyBkZSBjb21hbmRvIGVzcGVjaWZpY2Fkby4iCk1DSUVSUl9VTlJFQ09HTklaRURfQ09NTUFORCwJIk8gZHJpdmVyIG7jbyBwb2RlIHJlY29uaGVjZXIgbyBjb21hbmRvIGVzcGVjaWZpY2Fkby4iCk1DSUVSUl9IQVJEV0FSRSwgCQkiSOEgdW0gcHJvYmxlbWEgY29tIHNldSBkaXNwb3NpdGl2byBkZSBt7WRpYS4gVGVuaGEgY2VydGV6YSBxdWUgZXN0ZWphIGZ1bmNpb25hbmRvIGNvcnJldGFtZW50ZSBvdSBjb250YWN0ZSBvIGZhYnJpY2FudGUgZG8gZGlzcG9zaXRpdm8uIgpNQ0lFUlJfSU5WQUxJRF9ERVZJQ0VfTkFNRSwgCSJPIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2FkbyBu428gZXN04SBhYmVydG8gb3UgbuNvIOkgcmVjb25oZWNpZG8gcGVsbyBNQ0kuIgpNQ0lFUlJfT1VUX09GX01FTU9SWSwgCQkiTuNvIGrhIG1lbfNyaWEgZGlzcG9u7XZlbCBzdWZ1Y2llbnRlIHBhcmEgZXN0YSB0YXJlZmEuXG5GZWNoZSB1bWEgb3UgbWFpcyBhcGxpY2Hn9WVzIHBhcmEgYXVtZW50YXIgYSBtZW3zcmlhIGRpc3Bvbu12ZWwsIGUgZW50428gdGVudGUgbm92YW1lbnRlLiIKTUNJRVJSX0RFVklDRV9PUEVOLCAJCSJPIG5vbWUgZG8gZGlzcG9zaXRpdm8gauEgZXN04SBzZW5kbyB1c2FkbyBjb21vIHVtIGFsaWFzIHBvciBlc3RhIGFwbGljYefjby4gVXNlIHVtIGFsaWFzIPpuaWNvLiIKTUNJRVJSX0NBTk5PVF9MT0FEX0RSSVZFUiwgCSJBY29udGVjZXUgdW0gcHJvYmxlbWEgZGVzY29uaGVjaWRvIGVucXVhbnRvIGNhcnJlZ2F2YSBvIGRyaXZlciBkbyBkaXNwb3NpdGl2byBlc3BlY2lmaWNhZG8uIgpNQ0lFUlJfTUlTU0lOR19DT01NQU5EX1NUUklORywgCSJOZW5odW0gY29tYW5kbyBmb2kgZXNwZWNpZmljYWRvLiIKTUNJRVJSX1BBUkFNX09WRVJGTE9XLCAJCSJBIHN0cmluZyBkZSBzYe1kYSBmb2kgbXVpdG8gZ3JhbmRlIHBhcmEgc2VyIGNvbG9jYWRhIG5vIGJ1ZmZlciBkZSByZXRvcm5vLiBBdW1lbnRlIG8gdGFtYW5obyBkbyBidWZmZXIuIgpNQ0lFUlJfTUlTU0lOR19TVFJJTkdfQVJHVU1FTlQsICJPIGNvbWFuZG8gZXNwZWNpZmljYWRvIHJlcXVlciBjb21vIHBhcuJtZXRybyB1bWEgc3RyaW5nIGRlIGNhcmFjdGVycy4gUG9yIGZhdm9yLCBmb3JuZedhLWEuIgpNQ0lFUlJfQkFEX0lOVEVHRVIsIAkJIk8gaW50ZWlybyBlc3BlY2lmaWNhZG8g6SBpbnbhbGlkbyBwYXJhIGVzdGUgY29tYW5kby4iCk1DSUVSUl9QQVJTRVJfSU5URVJOQUwsIAkiTyBkcml2ZXIgZG8gZGlzcG9zaXRpdm8gcmV0b3Jub3UgdW0gdGlwbyBpbnbhbGlkby4gVmVyaWZpcXVlIGNvbSBvIGZhYnJpY2FudGUgZG8gZGlzcG9zaXRpdm8gY29tbyBvYnRlciB1bSBub3ZvIGRyaXZlci4iCk1DSUVSUl9EUklWRVJfSU5URVJOQUwsIAkiRXhpc3RlIHVtIHByb2JsZW1hIGNvbSBvIHNldSBkcml2ZXIgZGUgZGlzcG9zaXRpdm8uIFZlcmlmaXF1ZSBjb20gbyBmYWJyaWNhbnRlIGRvIGRpc3Bvc2l0aXZvIGNvbW8gb2J0ZXIgdW0gbm92byBkcml2ZXIuIgpNQ0lFUlJfTUlTU0lOR19QQVJBTUVURVIsIAkiTyBjb21hbmRvIGVzcGVjaWZpY2FkbyByZXF1ZXIgdW0gcGFy4m1ldHJvLiBQb3IgZmF2b3IgZm9ybmXnYS1vLiIKTUNJRVJSX1VOU1VQUE9SVEVEX0ZVTkNUSU9OLCAJIk8gZGlzcG9zaXRpdm8gTUNJIHF1ZSB2b2PqIGVzdOEgdXNhbmRvIG7jbyBzdXBvcnRhIG8gY29tYW5kbyBlc3BlY2lmaWNhZG8uIgpNQ0lFUlJfRklMRV9OT1RfRk9VTkQsIAkJIk7jbyDpIHBvc3PtdmVsIGVuY29udHJhciBvIGFycXVpdm8gZXNwZWNpZmljYWRvLiBDZXJ0aWZpcXVlLXNlIHF1ZSBvIGNhbWluaG8gZSBvIG5vbWUgZG8gYXJxdWl2byBlc3TjbyBjb3JyZXRvcy4iCk1DSUVSUl9ERVZJQ0VfTk9UX1JFQURZLCAJIk8gZHJpdmVyIGRvIGRpc3Bvc2l0aXZvIG7jbyBlc3ThIHByZXBhcmFkby4iCk1DSUVSUl9JTlRFUk5BTCwgCQkiVW0gcHJvYmxlbWEgb2NvcnJldSBuYSBpbmljaWFsaXph5+NvIGRvIE1DSS4gVGVudGUgcmVpbmljaWFyIG8gV2luZG93cy4iCk1DSUVSUl9EUklWRVIsIAkJCSJI4SB1bSBwcm9ibGVtYSBjb20gbyBkcml2ZXIgZG8gZGlzcG9zaXRpdm8uIE8gZHJpdmVyIGZvaSBmZWNoYWRvLiBO428g6SBwb3Nz7XZlbCBhY2Vzc2FyIG8gZXJyby4iCk1DSUVSUl9DQU5OT1RfVVNFX0FMTCwgCQkiTuNvIOkgcG9zc+12ZWwgdXNhciAnYWxsJyBjb21vIG5vbWUgZG8gZGlzcG9zaXRpdm8gY29tIG8gY29tYW5kbyBlc3BlY2lmaWNhZG8uIgpNQ0lFUlJfTVVMVElQTEUsIAkJIkVycm9zIG9jb3JyZXJhbSBlbSBtYWlzIGRlIHVtIGRpc3Bvc2l0aXZvLiBFc3BlY2lmaXF1ZSBjYWRhIGNvbWFuZG8gZSBkaXNwb3NpdGl2byBzZXBhcmFkYW1lbnRlIHBhcmEgZGV0ZXJtaW5hciBxdWFpcyBkaXNwb3NpdGl2b3MgY2F1c2FyYW0gbyBlcnJvLiIKTUNJRVJSX0VYVEVOU0lPTl9OT1RfRk9VTkQsIAkiTuNvIOkgcG9zc+12ZWwgZGV0ZXJtaW5hciBvIHRpcG8gZGUgZGlzcG9zaXRpdm8gZGFkYSBhIGV4dGVuc+NvIGRlIGFycXVpdm8uIgpNQ0lFUlJfT1VUT0ZSQU5HRSwgCQkiTyBwYXLibWV0cm8gZXNwZWNpZmljYWRvIGVzdOEgZm9yYSBkYSBlc2NhbGEgcGFyYSBvIGNvbWFuZG8gZXNwZWNpZmljYWRvLiIKTUNJRVJSX0ZMQUdTX05PVF9DT01QQVRJQkxFLCAJIk9zIHBhcuJtZXRyb3MgZXNwZWNpZmljYWRvcyBu428gcG9kZW0gc2VyIHV0aWxpemFkb3MganVudG9zLiIKTUNJRVJSX0ZJTEVfTk9UX1NBVkVELCAJCSJO428g6SBwb3Nz7XZlbCBzYWx2YXIgbyBhcnF1aXZvIGVzcGVjaWZpY2Fkby4gQ2VydGlmaXF1ZS1zZSBxdWUgdGVuaGEgZXNwYedvIGVtIGRpc2NvIHN1ZmljaWVudGUgb3UgcXVlIGFpbmRhIGVzdGVqYSBjb25lY3RhZG8gYSByZWRlLiIKTUNJRVJSX0RFVklDRV9UWVBFX1JFUVVJUkVELCAJIk7jbyDpIHBvc3PtdmVsIGVuY29udHJhciBvIGRpc3Bvc2l0aXZvIGVzcGVjaWZpY2Fkby4gQ2VydGlmaXF1ZS1zZSBxdWUgZXN04SBpbnN0YWxhZG8gb3UgcXVlIG8gbm9tZSBkbyBkaXNwb3NpdGl2byBmb2kgZXNjcml0byBjb3JyZXRhbWVudGUuIgpNQ0lFUlJfREVWSUNFX0xPQ0tFRCwgCQkiTyBkaXNwb3NpdGl2byBlc3BlY2lmaWNhZG8gZXN04SBzZW5kbyBmZWNoYWRvIGFnb3JhLiBBZ3VhcmRlIGFsZ3VucyBzZWd1bmRvcywgZSBlbnTjbyB0ZW50ZSBub3ZhbWVudGUuIgpNQ0lFUlJfRFVQTElDQVRFX0FMSUFTLCAJIk8gYWxpYXMgZXNwZWNpZmljYWRvIGrhIGVzdOEgc2VuZG8gdXRpbGl6YWRvIG5lc3RhIGFwbGljYefjby4gVXNlIHVtIGFsaWFzIPpuaWNvLiIKTUNJRVJSX0JBRF9DT05TVEFOVCwgCQkiTyBwYXLibWV0cm8gZXNwZWNpZmljYWRvIOkgaW524WxpZG8gcGFyYSBlc3RlIGNvbWFuZG8uIgpNQ0lFUlJfTVVTVF9VU0VfU0hBUkVBQkxFLCAJIk8gZHJpdmVyIGRlIGRpc3Bvc2l0aXZvIGrhIGVzdOEgZW0gdXNvLiBQYXJhIGNvbXBhcnRpbGhhLWxvLCB1c2UgbyBwYXLibWV0cm8gJ3NoYXJlYWJsZScgcGFyYSBjYWRhIGNvbWFuZG8gJ29wZW4nLiIKTUNJRVJSX01JU1NJTkdfREVWSUNFX05BTUUsIAkiTyBjb21hbmRvIGVzcGVjaWZpY2FkbyByZXF1ZXIgdW0gYWxpYXMsIGFycXVpdm8sIGRyaXZlciBvdSBub21lIGRlIGRpc3Bvc2l0aXZvLiBQb3IgZmF2b3IsIGZvcm5l52EgdW0uIgpNQ0lFUlJfQkFEX1RJTUVfRk9STUFULCAJIk8gdmFsb3IgZXNwZWNpZmljYWRvIHBhcmEgbyBmb3JtYXRvIGRlIGhvcmEg6SBpbnbhbGlkby4gVmVyaWZpcXVlIG5hIGRvY3VtZW50YefjbyBkbyBNQ0kgc29icmUgZm9ybWF0b3MgduFsaWRvcy4iCk1DSUVSUl9OT19DTE9TSU5HX1FVT1RFLCAJIkEgYXNwYS1kdXBsYSBkZSBmZWNoYW1lbnRvIGVzdOEgZmFsdGFuZG8gcGFyYSBvIHZhbG9yIGRvIHBhcuJtZXRyby4gUG9yIGZhdm9yIGZvcm5l52EgdW1hLiIKTUNJRVJSX0RVUExJQ0FURV9GTEFHUywgCSJVbSBwYXLibWV0cm8gb3UgdmFsb3IgZm9pIGVzcGVjaWZpY2FkbyBkdWFzIHZlemVzLiBBcGVuYXMgZXNwZWNpZmlxdWUtbyB1bWEg+m5pY2EgdmV6LiIKTUNJRVJSX0lOVkFMSURfRklMRSwgCQkiTyBhcnF1aXZvIGVzcGVmaWNpZGFkbyBu428gcG9kZSBzZXIgdG9jYWRvIG5vIGRpc3Bvc2l0aXZvIE1DSSBlc3BlY2lmaWNhZG8uIE8gYXJxdWl2byBwb2RlIGVzdGFyIGNvcnJvbXBpZG8sIG91IG7jbyBlc3RhciBubyBmb3JtYXRvIGNvcnJldG8uIgpNQ0lFUlJfTlVMTF9QQVJBTUVURVJfQkxPQ0ssIAkiVW0gYmxvY28gZGUgcGFy4m1ldHJvIG51bG8gZm9pIHBhc3NhZG8gcGFyYSBvIE1DSS4uIgpNQ0lFUlJfVU5OQU1FRF9SRVNPVVJDRSwgCSJO428g6SBwb3Nz7XZlbCBzYWx2YXIgdW0gYXJxdWl2byBzZW0gbm9tZS4gUG9yIGZhdm9yIGZvcm5l52EgdW0gbm9tZSBkZSBhcnF1aXZvLiIKTUNJRVJSX05FV19SRVFVSVJFU19BTElBUywgCSJWb2PqIHByZWNpc2EgZXNwZWNpZmljYXIgdW0gYWxpYXMgcXVhbmRvIHV0aWxpemFyIG8gcGFy4m1ldHJvICduZXcnLiIKTUNJRVJSX05PVElGWV9PTl9BVVRPX09QRU4sIAkiTuNvIOkgcG9zc+12ZWwgdXRpbGl6YXIgbyBmbGFnICdub3RpZnknIGVtIGRpc3Bvc2l0aXZvcyBhYmVydG9zIGF1dG9tYXRpY2FtZW50ZS4iCk1DSUVSUl9OT19FTEVNRU5UX0FMTE9XRUQsIAkiTuNvIOkgcG9zc+12ZWwgdXNhciB1bSBub21lIGRlIGFycXVpdm8gY29tIG8gZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvLiIKTUNJRVJSX05PTkFQUExJQ0FCTEVfRlVOQ1RJT04sIAkiTuNvIOkgcG9zc+12ZWwgZGVzY2FycmVnYXIgb3MgY29tYW5kb3MgbmEgb3JkZW0gZXNwZWNpZmljYWRhLiBDb3JyaWphIGEgc2VxdepuY2lhIGRvcyBjb21hbmRvcywgZSBlbnTjbyB0ZW50ZSBub3ZhbWVudGUuIgpNQ0lFUlJfSUxMRUdBTF9GT1JfQVVUT19PUEVOLCAJIk7jbyDpIHBvc3PtdmVsIGRlc2NhcnJlZ2FyIG8gY29tYW5kbyBlc3BlY2lmaWNhZG8gZW0gdW0gZGlzcG9zaXRpdm8gYWJlcnRvIGF1dG9tYW50aWNhbWVudGUuIEFndWFyZGUgYXTpIG8gZGlzcG9zaXRpdm8gc2VyIGZlY2hhZG8sIGUgZW50428gdGVudGUgbm92YW1lbnRlLiIKTUNJRVJSX0ZJTEVOQU1FX1JFUVVJUkVELCAJIk8gbm9tZSBkbyBhcnF1aXZvIOkgaW524WxpZG8uIENlcnRpZmlxdWUtc2UgcXVlIG8gbm9tZSBkbyBhcnF1aXZvIG7jbyDpIG1haW9yIHF1ZSA4IGNhcmFjdGVyZXMsIHNlZ3VpZG8gcG9yIHVtIHBvbnRvIGUgdW1hIGV4dGVuc+NvLiIKTUNJRVJSX0VYVFJBX0NIQVJBQ1RFUlMsIAkiTuNvIOkgcG9zc+12ZWwgZXNwZWNpZmljYXIgY2FyYWN0ZXJlcyBleHRyYXMgYXDzcyB1bWEgc3RyaW5nIGVudHJlIGFzcGFzLiIKTUNJRVJSX0RFVklDRV9OT1RfSU5TVEFMTEVELCAJIk8gZGlzcG9zaXRpdm8gZXNwZWNpZmljYWRvIG7jbyBlc3RhIGluc3RhbGFkbyBubyBzaXN0ZW1hLiBVdGlsaXplIG8gb3Dn428gRHJpdmVycyBubyBQYWluZWwgZGUgQ29udHJvbGUgcGFyYSBpbnN0YWxhciBvIGRpc3Bvc2l0aXZvLiIKTUNJRVJSX0dFVF9DRCwgCQkJIk7jbyDpIHBvc3PtdmVsIGFjZXNzYXIgbyBhcnF1aXZvIGVzcGVjaWZpY2FkbyBvdSBvIGRpc3Bvc2l0aXZvIE1DSS4gVGVudGUgbXVkYXIgZGUgZGlyZXTzcmlvIG91IHJlaW5pY2lhciBzZXUgY29tcHV0YWRvci4iCk1DSUVSUl9TRVRfQ0QsIAkJCSJO428g6SBwb3Nz7XZlbCBhY2Vzc2FyIG8gYXJxdWl2byBlc3BlY2lmaWNhZG8gb3UgbyBkaXNwb3NpdGl2byBNQ0kgcG9ycXVlIGEgYXBsaWNh5+NvIG7jbyBwb2RlIG11ZGFyIGRlIGRpcmV083Jpby4iCk1DSUVSUl9TRVRfRFJJVkUsIAkJIk7jbyBwb3NzbyBhY2Vzc2FyIG8gYXJxdWl2byBlc3BlY2lmaWNhZG8gb3UgbyBkaXNwb3NpdGl2byBNQ0kgcG9ycXVlIGEgYXBsaWNh5+NvIG7jbyBwb2RlIG11ZGFyIGRlIGRyaXZlLiIKTUNJRVJSX0RFVklDRV9MRU5HVEgsIAkJIkVzcGVjaWZpcXVlIHVtIGRpc3Bvc2l0aXZvIG91IG5vbWUgZGUgZHJpdmVyIHF1ZSBzZWphIG1lbm9yIHF1ZSA3OSBjYXJhY3RlcmVzLiIKTUNJRVJSX0RFVklDRV9PUkRfTEVOR1RILCAJIkVzcGVjaWZpcXVlIHVtIGRpc3Bvc2l0aXZvIG91IG5vbWUgZGUgZHJpdmVyIHF1ZSBzZWphIG1lbm9yIHF1ZSA2OSBjYXJhY3RlcmVzLiIKTUNJRVJSX05PX0lOVEVHRVIsIAkJIk8gY29tYW5kbyBlc3BlY2lmaWNhZG8gcmVxdWVyIHVtIHBhcuJtZXRybyBpbnRlaXJvLiBQb3IgZmF2b3IgZm9ybmXnYSB1bS4iCk1DSUVSUl9XQVZFX09VVFBVVFNJTlVTRSwgCSJUb2RvcyBvcyBkaXNwb3NpdGl2b3Mgd2F2ZSBxdWUgcG9kZW0gdG9jYXIgYXJxdWl2b3Mgbm8gZm9ybWF0byBhdHVhbCBlc3TjbyBlbSB1c28uIEFndWFyZGUgYXTpIHVtIGRpc3Bvc2l0aXZvIHdhdmUgZmljYXIgb2Npb3NvIGUgZW50428gdGVudGUgbm92YW1lbnRlLiIKTUNJRVJSX1dBVkVfU0VUT1VUUFVUSU5VU0UsIAkiTuNvIOkgcG9zc+12ZWwgZGVmaW5pciBvIGRpc3Bvc2l0aXZvIHdhdmUgYXR1YWwgcGFyYSB0b2NhciBwb3JxdWUgZXN04SBlbSB1c28uIEFndWFyZGUgYXTpIG8gZGlzcG9zaXRpdm8gZmljYXIgb2Npb3NvIGUgZW50428gdGVudGUgbm92YW1lbnRlLiIKTUNJRVJSX1dBVkVfSU5QVVRTSU5VU0UsIAkiVG9kb3Mgb3MgZGlzcG9zaXRpdm9zIHdhdmUgcXVlIHBvZGVtIGdyYXZhciBhcnF1aXZvcyBubyBmb3JtYXRvIGF0dWFsIGVzdONvIGVtIHVzby4gQWd1YXJkZSBhdOkgbyBkaXNwb3NpdGl2byB3YXZlIGZpY2FyIG9jaW9zbywgZSBlbnTjbyB0ZW50ZSBub3ZhbWVudGUuIgpNQ0lFUlJfV0FWRV9TRVRJTlBVVElOVVNFLCAJIk7jbyBmb2kgcG9zc2l2ZWwgZGVmaW5pciBvIGRpc3Bvc2l0aXZvIHdhdmUgY29ycmVudGUgcGFyYSBncmF2YXIgcG9ycXVlIGVsZSBlc3ThIGVtIHVzby4gQWd1YXJkZSBhdOkgZWxlIGZpY2FyIGxpdnJlLCBlIGVudONvIHRlbnRlIG5vdmFtZW50ZS4iCk1DSUVSUl9XQVZFX09VVFBVVFVOU1BFQ0lGSUVELAkiUXVhbHF1ZXIgZGlzcG9zaXRpdm8gdG9jYWRvciBjb21wYXTtdmVsIGNvbSBvIGZvcm1hdG8gd2F2ZSBwb2RlIHNlciB1dGlsaXphZG8uIgpNQ0lFUlJfV0FWRV9JTlBVVFVOU1BFQ0lGSUVELCAJIlF1YWxxdWVyIGRpc3Bvc2l0aXZvIGdyYXZhZG9yIGNvbXBhdO12ZWwgY29tIG8gZm9ybWF0byB3YXZlIHBvZGUgc2VyIHV0aWxpemFkby4iCk1DSUVSUl9XQVZFX09VVFBVVFNVTlNVSVRBQkxFLCAJIk5lbmh1bSBkaXNwb3NpdGl2byB3YXZlIHF1ZSBwb3NzYSB0b2NhciBhcnF1aXZvcyBubyBmb3JtYXRvIHdhdmUgZXN04SBpbnN0YWxhZG8uIFVzZSBhIG9w5+NvIERyaXZlcnMgcGFyYSBpbnN0YWxhciBvIGRpc3Bvc2l0aXZvIHdhdmUuIgpNQ0lFUlJfV0FWRV9TRVRPVVRQVVRVTlNVSVRBQkxFLCJPIGRpc3Bvc2l0aXZvIHF1ZSB2b2PqIGVzdOEgdGVudGFuZG8gdG9jYXIgbuNvIHJlY29uaGVjZSBvIGZvcm1hdG8gZG8gYXJxdWl2byBhdHVhbC4iCk1DSUVSUl9XQVZFX0lOUFVUU1VOU1VJVEFCTEUsIAkiTmVuaHVtIGRpc3Bvc2l0aXZvIHdhdmUgcXVlIHBvc3NhIGdyYXZhciBhcnF1aXZvcyBubyBmb3JtYXRvIGF0dWFsIGVzdOEgaW5zdGFsYWRvLiBVc2UgbyBvcOfjbyBEcml2ZXJzIHBhcmEgaW5zdGFsYXIgbyBkaXNwb3NpdGl2byB3YXZlLiIKTUNJRVJSX1dBVkVfU0VUSU5QVVRVTlNVSVRBQkxFLCAiTyBkaXNwb3NpdGl2byBkZSBvbmRlIHZvY+ogZXN04SB0ZW50YW5kbyBncmF2YXIgbuNvIHBvZGUgcmVjb25oZWNlciBvIGZvcm1hdG8gZG8gYXJxdWl2byBhdHVhbC4iCk1DSUVSUl9OT19XSU5ET1csIAkJIk7jbyBo4SBuZW5odW1hIGphbmVsYSBkZSB2aXN1YWxpemHn428uIgpNQ0lFUlJfQ1JFQVRFV0lORE9XLCAJCSJO428g6SBwb3Nz7XZlbCBjcmlhciBvdSB1dGlsaXphciBhIGphbmVsYS4iCk1DSUVSUl9GSUxFX1JFQUQsIAkJIk7jbyDpIHBvc3PtdmVsIGxlciBvIGFycXVpdm8gZXNwZWNpZmljYWRvLiBDZXJ0aWZpcXVlLXNlIHF1ZSBvIGFycXVpdm8gYWluZGEgZXN04SBwcmVzZW50ZSwgb3UgdmVyaWZpcXVlIHNldSBkaXNjbyBvdSBjb25lY+fjbyBkZSByZWRlLiIKTUNJRVJSX0ZJTEVfV1JJVEUsIAkJIk7jbyDpIHBvc3PtdmVsIGdyYXZhciBubyBhcnF1aXZvIGVzcGVjaWZpY2Fkby4gQ2VydGlmaXF1ZS1zZSBxdWUgdm9j6iBwb3NzdWkgZXNwYedvIGVtIGRpc2NvIHN1ZmljaWVudGUgb3UgcXVlIGFpbmRhIGVzdGVqYSBjb25lY3RhZG8gbmEgcmVkZS4iCk1DSUVSUl9TRVFfRElWX0lOQ09NUEFUSUJMRSwgCSJPIGZvcm1hdG8gZGUgaG9yYSBkbyAiInNvbmcgcG9pbnRlciIiIGUgU01QVEUgc+NvIG11dHVhbG1lbnRlIGV4Y2x1c2l2b3MuIFZvY+ogbuNvIHBvZGUgdXRpbGl64S1sb3MganVudG9zLiIKTUNJRVJSX1NFUV9OT01JRElQUkVTRU5ULCAJIk8gc2lzdGVtYSBu428gcG9zc3VpIGRpc3Bvc2l0aXZvcyBNSURJIGluc3RhbGFkb3MuIFVzZSBhIG9w5+NvIERyaXZlcnMgbm8gUGFpbmVsIGRlIENvbnRyb2xlIHBhcmEgaW5zdGFsYXIgdW0gZHJpdmVyIE1JREkuIgpNQ0lFUlJfU0VRX1BPUlRfSU5VU0UsIAkJIkEgcG9ydGEgTUlESSBlc3BlY2lmaWNhZGEgauEgZXN0YSBlbSB1c28uIEFndWFyZGUgYXTpIHF1ZSBlc3RlamEgbGl2cmUsIGUgdGVudGUgbm92YW1lbnRlLiIKTUNJRVJSX1NFUV9QT1JUX01BUE5PREVWSUNFLCAJIkEgY29uZmlndXJh5+NvIGF0dWFsIGRvIE1JREkgTWFwcGVyIHJlZmVyZS1zZSBhIHVtIGRpc3Bvc2l0aXZvIE1JREkgcXVlIG7jbyBlc3ThIGluc3RhbGFkbyBlbSBzZXUgc2lzdGVtYS4gVXNlIGEgb3Dn428gTUlESSBNYXBwZXIgZG8gUGFpbmVsIGRlIENvbnRyb2xlIHBhcmEgZWRpdGFyIGEgY29uZmlndXJh5+NvLiIKTUNJRVJSX1NFUV9QT1JUX01JU0NFUlJPUiwgCSJVbSBlcnJvIG9jb3JyZXUgY29tIGEgcG9ydGEgZXNwZWNpZmljYWRhLiIKTUNJRVJSX1NFUV9QT1JUX05PTkVYSVNURU5ULCAJIk8gZGlzcG9zaXRpdm8gTUlESSBlc3BlY2lmaWNhZG8gbuNvIGVzdOEgaW5zdGFsYWRvIGVtIHNldSBzaXN0ZW1hLiBVc2UgYSBvcOfjbyBEcml2ZXJzIG5vIFBhaW5lbCBkZSBDb250cm9sZSBwYXJhIGluc3RhbGFyIHVtIGRpc3Bvc2l0aXZvIE1JREkuIgpNQ0lFUlJfU0VRX1BPUlRVTlNQRUNJRklFRCwgCSJPIHNpc3RlbWEgbuNvIHTqbSBhdHVhbG1lbnRlIHVtYSBwb3J0YSBNSURJIGVzcGVjaWZpY2FkYS4iCk1DSUVSUl9TRVFfVElNRVIsIAkJIlRvZG9zIG9zIHRlbXBvcml6YWRvcmVzIGRlIG11bHRpbe1kaWEgZXN0428gc2VuZG8gdXRpbGl6YWRvcyBwb3Igb3V0cmFzIGFwbGljYef1ZXMuIEZlY2hlIHVtYSBkZXNzYXMgYXBsaWNh5/VlcywgZW50428gdGVudGUgbm92YW1lbnRlLiIKCkVORAo=