LyoKICogUmVnZWRpdCByZXNvdXJjZXMKICoKICogQ29weXJpZ2h0IDIwMDMsMjAwNCBKb3PpIE1hbnVlbCBGZXJyZXIgT3J0aXoKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19TUEFOSVNILCBTVUJMQU5HX05FVVRSQUwKCi8qCiAqIE1lbnUKICovCgpJRENfUkVHRURJVCBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiJkFyY2hpdm8iCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImU2FsaXIiLCAgICAgICAgICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9FWElUCiAgICBFTkQKICAgIFBPUFVQICJBJnl1ZGEiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQWNlcmNhIGRlLi4uIiwgICAgICAgICAgICAgICBJRF9IRUxQX0FCT1VUCiAgICBFTkQKRU5ECgpJRFJfUkVHRURJVF9NRU5VIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICImUmVnaXN0cm8iCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImSW1wb3J0YXIgYXJjaGl2byBkZSByZWdpc3Ryby4uLiIsIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNICImRXhwb3J0YXIgYXJjaGl2byBkZSByZWdpc3Ryby4uLiIsIElEX1JFR0lTVFJZX0VYUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQ29uZWN0YXIgcmVnaXN0cm8gZGUgcmVkLi4uIiwgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIiZEZXNjb25lY3RhciByZWdpc3RybyBkZSByZWQuLi4iLCBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZLCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiSW0mcHJpbWlyXHRDdHJsK1AiLCAgICAgICAgICAgSURfUkVHSVNUUllfUFJJTlQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJTJmFsaXIiLCAgICAgICAgICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9FWElUCiAgICBFTkQKICAgIFBPUFVQICImRWRpdGFyIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJk1vZGlmaWNhciIsICAgICAgICAgICAgICAgICAgSURfRURJVF9NT0RJRlkKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBQT1BVUCAiJk51ZXZvIgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImQ2xhdmUiLCAgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19LRVkKICAgICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICAgIE1FTlVJVEVNICJWYWxvciBkZSBjJmFkZW5hIiwgICAgICAgICAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiVmFsb3IgJmJpbmFyaW8iLCAgICAgICAgICAgICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIlZhbG9yICZEV09SRCIsICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0RXT1JEVkFMVUUKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkVsaW1pbmFyXHREZWwiLCAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKICAgICAgICBNRU5VSVRFTSAiJlJlbm9tYnJhclx0RjIiLCAgICAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkNvcGlhciB2YWxvciBkZSBsYSBjbGF2ZSIsICAgSURfRURJVF9DT1BZS0VZTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQnVzY2FyXHRDdHJsK0YiLCAgICAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICJCdXNjYXIgJnNpZ3VpZW50ZVx0RjMiLCAgICAgICBJRF9FRElUX0ZJTkRORVhULCBHUkFZRUQKICAgIEVORAogICAgUE9QVVAgIiZWZXIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQmFycmEgZGUgZXN0YWRvIiwgICAgICAgICAgICBJRF9WSUVXX1NUQVRVU0JBUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU2VwYXJhciIsICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1NQTElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZBY3R1YWxpemFyXHRGNSIsICAgICAgICAgICAgIElEX1ZJRVdfUkVGUkVTSAogICAgRU5ECiAgICBQT1BVUCAiJkZhdm9yaXRvcyIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZB8WFkaXIgYSBGYXZvcml0b3MiLCAgICAgICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUwogICAgICAgICwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIiZFbGltaW5hciBGYXZvcml0byIsICAgICAgICAgIElEX0ZBVk9SSVRFU19SRU1PVkVGQVZPUklURQogICAgICAgICwgR1JBWUVECiAgICBFTkQKICAgIFBPUFVQICJBJnl1ZGEiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImVGVtYXMgZGUgYXl1ZGFcdEYxIiwgICAgICAgICBJRF9IRUxQX0hFTFBUT1BJQ1MKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkFjZXJjYSBkZWwgRWRpdG9yIGRlIHJlZ2lzdHJvIiwgSURfSEVMUF9BQk9VVAogICAgRU5ECkVORAoKSURSX1BPUFVQX01FTlVTIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICBQT1BVUCAiIgogIEJFR0lOCglNRU5VSVRFTSAiJk1vZGlmaWNhciIgICAgICAgICAgICAgICAgICAgSURfRURJVF9NT0RJRlkKCU1FTlVJVEVNICJNb2RpZmljYXIgZGF0b3MgYmluYXJpb3MiLCAgICBJRF9FRElUX01PRElGWV9CSU4KCU1FTlVJVEVNIFNFUEFSQVRPUgoJTUVOVUlURU0gIiZFbGltaW5hclx0RGVsIiwgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCglNRU5VSVRFTSAiJlJlbm9tYnJhciIsICAgICAgICAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICBFTkQKICBQT1BVUCAiIgogIEJFR0lOCglQT1BVUCAiJk51ZXZvIgoJQkVHSU4KCQlNRU5VSVRFTSAiJkNsYXZlIiwgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQoJCU1FTlVJVEVNIFNFUEFSQVRPUgoJCU1FTlVJVEVNICJWYWxvciBkZSAmY2FkZW5hIiwgICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUKCQlNRU5VSVRFTSAiVmFsb3IgJmJpbmFyaW8iLCAgICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFCgkJTUVOVUlURU0gIlZhbG9yICZEV09SRCIsICAgICAgICBJRF9FRElUX05FV19EV09SRFZBTFVFCglFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkVsaW1pbmFyXHREZWwiLCAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKICAgICAgICBNRU5VSVRFTSAiJlJlbm9tYnJhclx0RjIiLCAgICAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkNvcGlhciB2YWxvciBkZSBsYSBjbGF2ZSIsICAgSURfRURJVF9DT1BZS0VZTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQnVzY2FyXHRDdHJsK0YiLCAgICAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogIEVORApFTkQKCi8qCiAqIERpYWxvZwogKi8KCklERF9BQk9VVEJPWCBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjMwLCA3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQWNlcmNhIGRlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBJQ09OICAgICAgICAgICAgSURJX1JFR0VESVQsSURJX1JFR0VESVQsMTQsOSwxNiwxNgogICAgTFRFWFQgICAgICAgICAgICJSZWFjdE9TIHJlZ2VkaXQgVmVyc2nzbiAxLjAiLElEQ19TVEFUSUMsNDksMTAsMTE5LDgsCiAgICAgICAgICAgICAgICAgICAgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiQ29weXJpZ2h0IChDKSAyMDAyIEVxdWlwbyBSZWFjdE9TIixJRENfU1RBVElDLDQ5LDIwLDExOSw4CiAgICBERUZQVVNIQlVUVE9OICAgIkFjZXB0YXIiLElET0ssMTk1LDYsMzAsMTEsV1NfR1JPVVAKRU5ECgpJRERfRURJVF9TVFJJTkcgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgNzUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkVkaXRhciBjYWRlbmEiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiTm9tYnJlIGRlbCB2YWxvcjoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJEYXRvcyBkZWwgdmFsb3I6IixJRENfU1RBVElDLDUsMzAsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfREFUQSw1LDQwLDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIkFjZXB0YXIiLElET0ssMTQwLDYwLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgIkNhbmNlbGFyIixJRENBTkNFTCwxNzUsNjAsMzAsMTEsV1NfR1JPVVAKRU5ECgpJRERfRURJVF9EV09SRCBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCAxMDAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkVkaXRhciBjYWRlbmEiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiTm9tYnJlIGRlbCB2YWxvcjoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJEYXRvcyBkZWwgdmFsb3I6IixJRENfU1RBVElDLDUsMzAsOTAsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9EQVRBLDUsNDAsOTAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiQmFzZSIsIElEQ19EV09SRF9CQVNFLCAxMjAsIDMwLCA4NSwgMzcsIEJTX0dST1VQQk9YCiAgICBBVVRPUkFESU9CVVRUT04gIkhleGFkZWNpbWFsIiwgSURDX0RXT1JEX0hFWCwgMTMwLCA0MCwgNjAsIDEwLCBXU19UQUJTVE9QCiAgICBBVVRPUkFESU9CVVRUT04gIkRlY2ltYWwiLCBJRENfRFdPUkRfREVDLCAxMzAsIDUyLCA2MCwgMTAsIFdTX1RBQlNUT1AKICAgIERFRlBVU0hCVVRUT04gICAiQWNlcHRhciIsSURPSywxNDAsODAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAiQ2FuY2VsYXIiLElEQ0FOQ0VMLDE3NSw4MCwzMCwxMSxXU19HUk9VUApFTkQKCi8qCiAqIFN0cmluZyBUYWJsZQogKi8KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfTElTVF9DT0xVTU5fTkFNRSAgICAiTm9tYnJlIgogICAgSURTX0xJU1RfQ09MVU1OX1RZUEUgICAgIlRpcG8iCiAgICBJRFNfTElTVF9DT0xVTU5fREFUQSAgICAiRGF0b3MiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19BUFBfVElUTEUgICAgICAgICAgICJFZGl0b3IgZGVsIHJlZ2lzdHJvIgogICAgSURDX1JFR0VESVQgICAgICAgICAgICAgIlJFR0VESVQiCiAgICBJRENfUkVHRURJVF9GUkFNRSAgICAgICAiUkVHRURJVF9GUkFNRSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfUkVHSVNUUllfTUVOVSAgICAgICAgIkNvbnRpZW5lIGNvbWFuZG9zIHBhcmEgdHJhYmFqYXIgY29uIGVsIHJlZ2lzdHJvIGNvbXBsZXRvIgogICAgSURfRURJVF9NRU5VICAgICAgICAgICAgIkNvbnRpZW5lIGNvbWFuZG9zIHBhcmEgZWRpdGFyIHZhbG9yZXMgbyBjbGF2ZXMiCiAgICBJRF9WSUVXX01FTlUgICAgICAgICAgICAiQ29udGllbmUgY29tYW5kb3MgcGFyYSBwZXJzb25hbGl6YXIgbGEgdmVudGFuYSBkZSByZWdpc3RybyIKICAgIElEX0ZBVk9SSVRFU19NRU5VICAgICAgICJDb250aWVuZSBjb21hbmRvcyBwYXJhIGFjY2VkZXIgYSBjbGF2ZXMgdXNhZGFzIGZyZWN1ZW50ZW1lbnRlIgogICAgSURfSEVMUF9NRU5VICAgICAgICAgICAgIkNvbnRpZW5lIGNvbWFuZG9zIHBhcmEgbW9zdHJhciBheXVkYSBlIGluZm9ybWFjafNuIHNvYnJlIGVsIGVkaXRvciBkZSByZWdpc3RybyIKICAgIElEX0VESVRfTkVXX01FTlUgICAgICAgICJDb250aWVuZSBjb21hbmRvcyBwYXJhIGNyZWFyIG51ZXZhcyBjbGF2ZXMgbyB2YWxvcmVzIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9FRElUX01PRElGWSAgICAgICAgICAiTW9kaWZpY2EgbG9zIGRhdG9zIGRlbCB2YWxvciIKICAgIElEX0VESVRfTkVXX0tFWSAgICAgICAgICJB8WFkZSB1bmEgbnVldmEgY2xhdmUiCiAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRSAiQfFhZGUgdW4gbnVldm8gdmFsb3IgZGUgY2FkZW5hIgogICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUgIkHxYWRlIHVuIG51ZXZvIHZhbG9yIGJpbmFyaW8iCiAgICBJRF9FRElUX05FV19EV09SRFZBTFVFICAiQfFhZGUgdW4gbnVldm8gdmFsb3IgZGUgZG9ibGUgcGFsYWJyYSIKICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRSAiSW1wb3J0YSB1biBhcmNoaXZvIGRlIHRleHRvIGFsIHJlZ2lzdHJvIgogICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwb3J0YSB0b2RvIG8gcGFydGUgZGVsIHJlZ2lzdHJvIGEgdW4gYXJjaGl2byBkZSB0ZXh0byIKICAgIElEX1JFR0lTVFJZX0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZSBjb25lY3RhIGFsIHJlZ2lzdHJvIGRlIHVuIG9yZGVuYWRvciByZW1vdG8iCiAgICBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2UgZGVzY29uZWN0YSBkZWwgcmVnaXN0cm8gZGUgdW4gb3JkZW5hZG9yIHJlbW90byIKICAgIElEX1JFR0lTVFJZX1BSSU5UICAgICAgICJJbXByaW1lIHRvZG8gbyBwYXJ0ZSBkZWwgcmVnaXN0cm8iCi8qICAgIElEX0hFTFBfSEVMUFRPUElDUyAgICAgICJPcGVucyByZWdpc3RyeSBlZGl0b3IgaGVscCIgKi8KICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICJNdWVzdHJhIGluZm9ybWFjafNuIGRlbCBwcm9ncmFtYSwgbvptZXJvIGRlIHZlcnNp824geSBkZXJlY2hvcyBkZSBhdXRvciIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfUkVHSVNUUllfRVhJVCAgICAgICAgIlNhbGUgZGVsIGVkaXRvciBkZSByZWdpc3RybyIKICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUyAiQfFhZGUgY2xhdmVzIGEgbGEgbGlzdGEgZGUgZmF2b3JpdG9zIgogICAgSURfRkFWT1JJVEVTX1JFTU9WRUZBVk9SSVRFICJFbGltaW5hIGNsYXZlcyBkZSBsYSBsaXN0YSBkZSBmYXZvcml0b3MiCiAgICBJRF9WSUVXX1NUQVRVU0JBUiAgICAgICAiTXVlc3RyYSB1IG9jdWx0YSBsYSBiYXJyYSBkZSBlc3RhZG8iCiAgICBJRF9WSUVXX1NQTElUICAgICAgICAgICAiQ2FtYmlhIGxhIHBvc2ljafNuIGRlbCBzZXBhcmFkb3IgZW50cmUgZG9zIHBhbmVsZXMiCiAgICBJRF9WSUVXX1JFRlJFU0ggICAgICAgICAiQWN0dWFsaXphIGxhIHZlbnRhbmEiCiAgICBJRF9FRElUX0RFTEVURSAgICAgICAgICAiRWxpbWluYSBsYSBzZWxlY2Np824iCiAgICBJRF9FRElUX1JFTkFNRSAgICAgICAgICAiUmVub21icmEgbGEgc2VsZWNjafNuIgogICAgSURfRURJVF9DT1BZS0VZTkFNRSAgICAgIkNvcGlhIGVsIG5vbWJyZSBkZSBsYSBjbGF2ZSBzZWxlY2Npb25hZGEgYWwgcG9ydGFwYXBlbGVzIgogICAgSURfRURJVF9GSU5EICAgICAgICAgICAgIkJ1c2NhIHVuYSBjYWRlbmEgZGUgdGV4dG8gZW4gdW5hIGNsYXZlLCB2YWxvciBvIGRhdG9zIgogICAgSURfRURJVF9GSU5ETkVYVCAgICAgICAgIkJ1c2NhIGxhIHNpZ3VpZW50ZSBvY3VycmVuY2lhIGRlbCB0ZXh0byBlc3BlY2lmaWNhZG8gZW4gbGEgYvpzcXVlZGEgYW50ZXJpb3IiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19FUlJPUiAgICAgICAgICAgICAgICJFcnJvciIKICAgIElEU19CQURfS0VZICAgICAgICAgICAgICJObyBzZSBwdWVkZSBjb25zdWx0YXIgbGEgY2xhdmUgJyVzJyIKICAgIElEU19CQURfVkFMVUUgICAgICAgICAgICJObyBzZSBwdWVkZSBjb25zdWx0YXIgZWwgdmFsb3IgJyVzJyIKICAgIElEU19VTlNVUFBPUlRFRF9UWVBFICAgICJObyBzZSBwdWVkZW4gZWRpdGFyIGNsYXZlcyBkZSBlc3RlIHRpcG8gKCVsZCkiCiAgICBJRFNfVE9PX0JJR19WQUxVRSAgICAgICAiRWwgdmFsb3IgZXMgZGVtYXNpYWRvIGdyYW5kZSAoJWxkKSIKICAgIElEU19ERUxFVEVfQk9YX1RJVExFICAgICJDb25maXJtYXIgZWxpbWluYWNp824gZGUgdmFsb3IiCiAgICBJRFNfREVMRVRFX0JPWF9URVhUICAgICAiv1NlZ3VybyBxdWUgZGVzZWEgZWxpbWluYXIgZWwgdmFsb3IgJyVzJz8iCiAgICBJRFNfTkVXS0VZICAgICAgICAgICAgICAiTnVldmEgY2xhdmUgIyVkIgogICAgSURTX05FV1ZBTFVFICAgICAgICAgICAgIk51ZXZvIHZhbG9yICMlZCIKRU5ECgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgoKLyoKICogRGlhbG9nCiAqLwoKSUREX0RJQUxPRzEgRElBTE9HIERJU0NBUkRBQkxFICA1MCwgNTAsIDI2OCwgOTgKU1RZTEUgRFNfM0RMT09LIHwgRFNfQ09OVFJPTCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0NMSVBTSUJMSU5HUyB8CiAgICBXU19CT1JERVIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgpFTkQKCklERF9ESUFMT0cyIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMTg3LCA5NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJEaeFsb2dvIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIkFjZXB0YXIiLElET0ssMTMwLDcsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQ2FuY2VsYXIiLElEQ0FOQ0VMLDEzMCwyNCw1MCwxNApFTkQKCgovKgogKiBURVhUSU5DTFVERQogKi8KCjEgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUKQkVHSU4KICAgICJyZXNvdXJjZS5oXDAiCkVORAoKCgovKgogKiBTdHJpbmcgVGFibGUKICovCgovKgogKlNUUklOR1RBQkxFIERJU0NBUkRBQkxFCiAqQkVHSU4KICogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgIk9wZW5zIFJlZ2lzdHJ5IEVkaXRvciBIZWxwLiIKICogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIkRpc3BsYXlzIHByb2dyYW0gaW5mb3JtYXRpb24sIHZlcnNpb24gbnVtYmVyLCBhbmQgY29weXJpZ2h0LiIKICpFTkQKICovCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCg==