LyoKICogUmVnZWRpdCBDemVjaCByZXNvdXJjZXMKICoKICogQ29weXJpZ2h0IDIwMDIgUm9iZXJ0IERpY2tlbnNvbgogKiBDb3B5cmlnaHQgMjAwNCBEYXZpZCBLcmVkYmEKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19DWkVDSCwgU1VCTEFOR19ERUZBVUxUCgovKgogKiBNZW51CiAqLwoKSURDX1JFR0VESVQgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiZTb3Vib3IiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImS29uZWMiLCAgICAgICAgICAgICAgICAgICAgICAgSURfUkVHSVNUUllfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiJk7hcG927GRhIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJk8gYXBsaWthY2kgLi4uIiwgICAgICAgICAgICAgICAgICBJRF9IRUxQX0FCT1VUCiAgICBFTkQKRU5ECgpJRFJfUkVHRURJVF9NRU5VIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICImUmVnaXN0ciIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZJbXBvcnRvdmF0IHNvdWJvciByZWdpc3RydS4uLiIsICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNICImRXhwb3J0b3ZhdCBzb3Vib3IgcmVnaXN0cnUuLi4iLCAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlD4aXBvaml0IHJlZ2lzdHIgdiBz7XRpLi4uIiwgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIk8mZHBvaml0IHPtu292/SByZWdpc3RyLi4uIiwgSURfUkVHSVNUUllfRElTQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZUaXNrXHRDdHJsK1AiLCAgICAgICAgICAgICAgSURfUkVHSVNUUllfUFJJTlQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImS29uZWMiLCAgICAgICAgICAgICAgICAgICAgICAgSURfUkVHSVNUUllfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiJtpwcmF2eSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIlombexuaXQiLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgIiZOb3b9IgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImS2zt6CIsICAgICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfS0VZCiAgICAgICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgICAgICBNRU5VSVRFTSAi2CZldOx6Y2924SBwb2xvvmthIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkJpbuFybu0gcG9sb75rYSIsICAgICAgICAgICAgICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIiZEV09SRCBwb2xvvmthIiwgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU21hemF0XHREZWwiLCAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICJQ+GUmam1lbm92YXRcdEYyIiwgICAgICAgICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZLb3Dtcm92YXQgbuF6ZXYga2zt6GUiLCAgICAgICAgICAgICAgSURfRURJVF9DT1BZS0VZTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTmFq7XRcdEN0cmwrRiIsICAgICAgICAgICAgICAgSURfRURJVF9GSU5ELCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSAiTmFq7XQgJmRhbLntXHRGMyIsICAgICAgICAgICAgICBJRF9FRElUX0ZJTkRORVhULCBHUkFZRUQKICAgIEVORAogICAgUE9QVVAgIiZab2JyYXppdCIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIlAmYW5lbCBTdGF0dXMiLCAgICAgICAgICAgICAgICAgSURfVklFV19TVEFUVVNCQVIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiUm96ZOwmbGl0IiwgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19TUExJVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJQ+GVrJnJlc2xpdFx0RjUiLCAgICAgICAgICAgICAgICBJRF9WSUVXX1JFRlJFU0gKICAgIEVORAogICAgUE9QVVAgIiZPYmztYmVu6SIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIlD4aWQmYXQgayBvYmztYmVu/W0iLCAgICAgICAgICBJRF9GQVZPUklURVNfQUREVE9GQVZPUklURVMKICAgICAgICAsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICJPZGViJnJhdCBvYmztYmVu6SIsICAgICAgICAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUKICAgICAgICAsIEdSQVlFRAogICAgRU5ECiAgICBQT1BVUCAiJk7hcG927GRhIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiT2JzYSZoXHRGMSIsICAgICAgICAgICAgSURfSEVMUF9IRUxQVE9QSUNTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZPIGFwbGlrYWNpIFJlZ2lzdHJ5IEVkaXRvciIsICAgICAgSURfSEVMUF9BQk9VVAogICAgRU5ECkVORAoKSURSX1BPUFVQX01FTlVTIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICBQT1BVUCAiIgogIEJFR0lOCglNRU5VSVRFTSAiJlVwcmF2aXQiLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCglNRU5VSVRFTSAiVXByYXZpdCBiaW7hcm7tIGRhdGEiLCAgICAgICAgICBJRF9FRElUX01PRElGWV9CSU4KCU1FTlVJVEVNIFNFUEFSQVRPUgoJTUVOVUlURU0gIiZTbWF6YXRcdERlbCIsICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCglNRU5VSVRFTSAiJlD4ZWptZW5vdmF0IiwgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogIEVORAogIFBPUFVQICIiCiAgQkVHSU4KICAgICAgICBQT1BVUCAiJk5vdv0iCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZLbO3oIiwgICAgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19LRVkKICAgICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICAgIE1FTlVJVEVNICLYJmV07Hpjb3bhIHBvbG++a2EiLCAgICAgICAgICAgICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImQmluYXJu7SBwb2xvvmthIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkRXT1JEIHBvbG++a2EiLCAgICAgICAgICAgICAgICBJRF9FRElUX05FV19EV09SRFZBTFVFCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZTbWF6YXRcdERlbCIsICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIlD4ZSZqbWVub3ZhdFx0RjIiLCAgICAgICAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJktvcO1yb3ZhdCBu4XpldiBrbO3oZSIsICAgICAgICAgICAgICBJRF9FRElUX0NPUFlLRVlOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZOYWrtdFx0Q3RybCtGIiwgICAgICAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogIEVORApFTkQKCgovKgogKiBEaWFsb2cKICovCgpJRERfQUJPVVRCT1ggRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIzMCwgNzUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk8gYXBsaWthY2kiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIElDT04gICAgICAgICAgICBJRElfUkVHRURJVCxJRElfUkVHRURJVCwxNCw5LDE2LDE2CiAgICBMVEVYVCAgICAgICAgICAgIlJlYWN0T1MgcmVnZWRpdCB2ZXJ6ZSAxLjAiLElEQ19TVEFUSUMsNDksMTAsMTE5LDgsCiAgICAgICAgICAgICAgICAgICAgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiQ29weXJpZ2h0IChDKSAyMDAyIFJlYWN0T1MgVGVhbSIsSURDX1NUQVRJQyw0OSwyMCwxMTksOAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxOTUsNiwzMCwxMSxXU19HUk9VUApFTkQKCklERF9FRElUX1NUUklORyBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi2nByYXZhIPhldOx6Y2UiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiTuF6ZXY6IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiT2JzYWg6IixJRENfU1RBVElDLDUsMzAsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfREFUQSw1LDQwLDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE0MCw2MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICJTdG9ybm8iLElEQ0FOQ0VMLDE3NSw2MCwzMCwxMSxXU19HUk9VUApFTkQKCklERF9FRElUX0RXT1JEIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDEwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi2nByYXZhIERXT1JEIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIk7hemV2OiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIk9ic2FoOiIsSURDX1NUQVRJQyw1LDMwLDkwLDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfREFUQSw1LDQwLDkwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIlrha2xhZCIsIElEQ19EV09SRF9CQVNFLCAxMjAsIDMwLCA4NSwgMzcsIEJTX0dST1VQQk9YCiAgICBBVVRPUkFESU9CVVRUT04gIrllc3Ru4WN0a292/SIsIElEQ19EV09SRF9IRVgsIDEzMCwgNDAsIDYwLCAxMCwgV1NfVEFCU1RPUAogICAgQVVUT1JBRElPQlVUVE9OICJEZXNpdGtvdv0iLCBJRENfRFdPUkRfREVDLCAxMzAsIDUyLCA2MCwgMTAsIFdTX1RBQlNUT1AKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTQwLDgwLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgIlN0b3JubyIsSURDQU5DRUwsMTc1LDgwLDMwLDExLFdTX0dST1VQCkVORAoKLyoKICogU3RyaW5nIFRhYmxlCiAqLwoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19MSVNUX0NPTFVNTl9OQU1FICAgICJO4XpldiIKICAgIElEU19MSVNUX0NPTFVNTl9UWVBFICAgICJUeXAiCiAgICBJRFNfTElTVF9DT0xVTU5fREFUQSAgICAiT2JzYWgiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19BUFBfVElUTEUgICAgICAgICAgICJFZGl0b3IgcmVnaXN0cnUiCiAgICBJRENfUkVHRURJVCAgICAgICAgICAgICAiUkVHRURJVCIKICAgIElEQ19SRUdFRElUX0ZSQU1FICAgICAgICJSRUdFRElUX0ZSQU1FIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9NRU5VICAgICAgICAiT2JzYWh1amUgcPjta2F6eSBwcm8gcHLhY2kgc2Ugc3lyb3b9bSByZWdpc3RyZW0iCiAgICBJRF9FRElUX01FTlUgICAgICAgICAgICAiT2JzYWh1amUgcPjta2F6eSBwcm8gZWRpdGFjaSBrbO3o+SBhIHBvbG++ZWsiCiAgICBJRF9WSUVXX01FTlUgICAgICAgICAgICAiT2JzYWh1amUgcPjta2F6eSBwcm8g+nByYXZ1IHZ6aGxlZHUgb2tuYSByZWdlZGl0dSIKICAgIElEX0ZBVk9SSVRFU19NRU5VICAgICAgICJPYnNhaHVqZSBw+O1rYXp5IHBybyBw+O1zdHVwIGsg6GFzdG8gdb7tdmFu/W0ga2zt6PltIgogICAgSURfSEVMUF9NRU5VICAgICAgICAgICAgIk9ic2FodWplIHD47WthenkgcHJvIHpvYnJhemVu7SBu4XBvduxkeSBhIGluZm9ybWFj7W8gZWRpdG9ydSByZWdpc3RydSIKICAgIElEX0VESVRfTkVXX01FTlUgICAgICAgICJPYnNhaHVqZSBw+O1rYXp5IHBybyB2eXR24fhlbu0gbm92/WNoIGts7ej5IGEgcG9sb75layIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfRURJVF9NT0RJRlkgICAgICAgICAgIlpt7G7tIGRhdGEiCiAgICBJRF9FRElUX05FV19LRVkgICAgICAgICAiUPhpZOEgbm92/SBrbO3oIgogICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUgIlD4aWThIG5vdm91IPhldOx6Y292b3UgcG9sb75rdSIKICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFICJQ+Glk4SBub3ZvdSBiaW7hcm7tIHBvbG++a3UiCiAgICBJRF9FRElUX05FV19EV09SRFZBTFVFICAiUPhpZOEgbm92b3UgRFdPUkQgcG9sb75rdSIKICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRSAiSW1wb3J0dWplIHRleHRvdv0gc291Ym9yIHJlZ2lzdHJ1IgogICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwb3J0dWplIGNlbP0gcmVnaXN0ciBuZWJvIGplaG8g6OFzdCBkbyB0ZXh0b3bpaG8gc291Ym9ydSIKICAgIElEX1JFR0lTVFJZX0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQ+Glwb2rtIHNlIGsgcmVnaXN0cnUgbmEgamlu6W0gcG/o7XRh6GkiCiAgICBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT2Rwb2rtIHNlIG9kIHZ6ZOFsZW7sIHD4aXBvamVu6WhvIHJlZ2lzdHJ1IgogICAgSURfUkVHSVNUUllfUFJJTlQgICAgICAgIlZ5dGlza25lIOjhc3QgbmVibyBjZWz9IHJlZ2lzdHIiCi8qICAgIElEX0hFTFBfSEVMUFRPUElDUyAgICAgICJPcGVucyByZWdpc3RyeSBlZGl0b3IgaGVscCIgKi8KICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICJab2JyYXrtIGluZm9ybWFjZSBvIHByb2dyYW11LCBqZWhvIHZlcnppIGEgY29weXJpZ2h0IgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9FWElUICAgICAgICAiVWtvbujtIHJlZ2VkaXQiCiAgICBJRF9GQVZPUklURVNfQUREVE9GQVZPUklURVMgIlD4aWThIGts7eggayBvYmztYmVu/W0iCiAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUgIk9kZWJlcmUga2zt6CB6IG9ibO1iZW79Y2giCiAgICBJRF9WSUVXX1NUQVRVU0JBUiAgICAgICAiVWvhvmUgbmVibyBza3J5amUgc3RhdHVzIGJhciIKICAgIElEX1ZJRVdfU1BMSVQgICAgICAgICAgICJDaGFuZ2UgcG9zaXRpb24gb2Ygc3BsaXQgYmV0d2VlbiB0d28gcGFuZXMiCiAgICBJRF9WSUVXX1JFRlJFU0ggICAgICAgICAiUPhla3Jlc2ztIG9rbm8iCiAgICBJRF9FRElUX0RFTEVURSAgICAgICAgICAiU21hvmUgdnlicmFu6SIKICAgIElEX0VESVRfUkVOQU1FICAgICAgICAgICJQ+GVqbWVudWplIHZ5YnJhbukiCiAgICBJRF9FRElUX0NPUFlLRVlOQU1FICAgICAiVmxvvu0gbuF6ZXYgdnlicmFu6WhvIGts7ehlIGRvIHNjaHLhbmt5IgogICAgSURfRURJVF9GSU5EICAgICAgICAgICAgIk5hamRlIHRleHRvdv0g+GV07HplYyB2IGts7ehpLCBwb2xvvmNlIG5lYm8gZGF0ZWNoIgogICAgSURfRURJVF9GSU5ETkVYVCAgICAgICAgIk5hamRlIGRhbLntIHb9c2t5dCB0ZXh0dSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0VSUk9SCQkgICAgIkNoeWJhIgogICAgSURTX0JBRF9LRVkJCSAgICAiTmVsemUgbmFq7XQga2zt6CAnJXMnIgogICAgSURTX0JBRF9WQUxVRSAgICAgICAgICAgIk5lbHplIG5hau10IHBvbG++a3UgJyVzJyIKICAgIElEU19VTlNVUFBPUlRFRF9UWVBFICAgICJOZW1vaHUgdXByYXZpdCBrbO3oZSB0b2hvdG8gdHlwdSAoJWxkKSIKICAgIElEU19UT09fQklHX1ZBTFVFICAgICAgICJIb2Rub3RhIGplIHD47WxpuSB2ZWxr4SAoJWxkKSIKICAgIElEU19ERUxFVEVfQk9YX1RJVExFICAgICJQb3R2cu90ZSBzbWF64W7tIHBvbG++a3kiCiAgICBJRFNfREVMRVRFX0JPWF9URVhUICAgICAiT3ByYXZkdSBjaGNldGUgc21hemF0IHBvbG++a3UgJyVzJz8iCiAgICBJRFNfTkVXS0VZICAgICAgICAgICAgICAiTm92/SBrbO3oICMlZCIKICAgIElEU19ORVdWQUxVRSAgICAgICAgICAgICJOb3bhIHBvbG++a2EgIyVkIgpFTkQKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgovKgogKiBEaWFsb2cKICovCgpJRERfRElBTE9HMSBESUFMT0cgRElTQ0FSREFCTEUgIDUwLCA1MCwgMjY4LCA5OApTVFlMRSBEU18zRExPT0sgfCBEU19DT05UUk9MIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfQ0xJUFNJQkxJTkdTIHwKICAgIFdTX0JPUkRFUgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCkVORAoKSUREX0RJQUxPRzIgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAxODcsIDk1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkRpYWxvZyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxMzAsNyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJTdG9ybm8iLElEQ0FOQ0VMLDEzMCwyNCw1MCwxNApFTkQKCgovKgogKiBURVhUSU5DTFVERQogKi8KCjEgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUKQkVHSU4KICAgICJyZXNvdXJjZS5oXDAiCkVORAoKCgovKgogKiBTdHJpbmcgVGFibGUKICovCgovKgogKlNUUklOR1RBQkxFIERJU0NBUkRBQkxFCiAqQkVHSU4KICogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgIk9wZW5zIFJlZ2lzdHJ5IEVkaXRvciBIZWxwLiIKICogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIkRpc3BsYXlzIHByb2dyYW0gaW5mb3JtYXRpb24sIHZlcnNpb24gbnVtYmVyLCBhbmQgY29weXJpZ2h0LiIKICpFTkQKICovCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCg==