LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgRXN0b25pYQogKgogKgkoZXN0b25pYW4gc3RyaW5ncyBpbiBjcDEyNTIpCiAqCiAqIENvcHlyaWdodCAxOTk4IE1hcmNlbCBCYXVyCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxPQ1ZBTChMT0NBTEVfSUxBTkdVQUdFLCIwNDI1IikKLyogTE9DVkFMKExPQ0FMRV9TTEFOR1VBR0UsIiIpICovCkxPQ1ZBTChMT0NBTEVfU0VOR0xBTkdVQUdFLCJFc3RvbmlhbiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkxBTkdOQU1FLCJlc3QiKQovKiBMT0NWQUwoTE9DQUxFX1NOQVRJVkVMQU5HTkFNRSwiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JQ09VTlRSWSwiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TQ09VTlRSWSwiIikgKi8KTE9DVkFMKExPQ0FMRV9TRU5HQ09VTlRSWSwiRXN0b25pYSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkNUUllOQU1FLCJFU1QiKQovKiBMT0NWQUwoTE9DQUxFX1NOQVRJVkVDVFJZTkFNRSwiIikgKi8KTE9DVkFMKExPQ0FMRV9JREVGQVVMVExBTkdVQUdFLCIwNDI1IikKLyogTE9DVkFMKExPQ0FMRV9JREVGQVVMVENPVU5UUlksIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT0RFUEFHRSkgKi8KTE9DVkFMKExPQ0FMRV9JREVGQVVMVEFOU0lDT0RFUEFHRSwiMTI1MiIpCi8qIExPQ1ZBTChMT0NBTEVfU0xJU1QsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU1FQVNVUkUsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU0RFQ0lNQUwsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU1RIT1VTQU5ELCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NHUk9VUElORykgKi8KLyogTE9DVkFMKExPQ0FMRV9JRElHSVRTLCIyIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTFpFUk8sIjEiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdOVU1CRVIpICovCi8qIExPQ1ZBTChMT0NBTEVfU05BVElWRURJR0lUUykgKi8KLyogTE9DVkFMKExPQ0FMRV9TQ1VSUkVOQ1ksIiIpICovCkxPQ1ZBTChMT0NBTEVfU0lOVExTWU1CT0wsIkVFSyIpCi8qIExPQ1ZBTChMT0NBTEVfU01PTkRFQ0lNQUxTRVAsIiwiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NNT05USE9VU0FORFNFUCwiLiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU01PTkdST1VQSU5HKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lDVVJSRElHSVRTLCIyIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JSU5UTENVUlJESUdJVFMpICovCi8qIExPQ1ZBTChMT0NBTEVfSUNVUlJFTkNZLCIzIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHQ1VSUiwiOCIpICovCi8qIExPQ1ZBTChMT0NBTEVfU0RBVEUsIi4iKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NUSU1FLCI6IikgKi8KLyogTE9DVkFMKExPQ0FMRV9TU0hPUlREQVRFLCJkZC9NTS15eXl5IikgKi8KLyogTE9DVkFMKExPQ0FMRV9TTE9OR0RBVEUsImRkZCwgZC4gTU1NTSB5eXl5IikgKi8KLyogTE9DVkFMKExPQ0FMRV9TVElNRUZPUk1BVCkgKi8KLyogTE9DVkFMKExPQ0FMRV9JREFURSwiMSIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUxEQVRFKSAqLwpMT0NWQUwoTE9DQUxFX0lUSU1FLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JVElNRU1BUktQT1NOKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lDRU5UVVJZKSAqLwpMT0NWQUwoTE9DQUxFX0lUTFpFUk8sIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lEQVlMWkVSTykgKi8KLyogTE9DVkFMKExPQ0FMRV9JTU9OTFpFUk8pICovCi8qIExPQ1ZBTChMT0NBTEVfUzExNTksICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1MyMzU5LCAiIikgKi8KTE9DVkFMKExPQ0FMRV9JQ0FMRU5EQVJUWVBFLCAiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSU9QVElPTkFMQ0FMRU5EQVIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUZJUlNUREFZT0ZXRUVLKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lGSVJTVFdFRUtPRllFQVIpICovCgpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMSwiZXNtYXNw5GV2IikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTIsInRlaXNpcORldiIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUzLCJrb2xtYXDkZXYiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNCwibWVsamFw5GV2IikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTUsInJlZWRlIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTYsImxhdXDkZXYiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNywicPxoYXDkZXYiKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTEsIkUiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMiwiVCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUzLCJLIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTQsIk4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNSwiUiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU2LCJMIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTcsIlAiKQoKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMSwiamFhbnVhciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTIsInZlZWJydWFyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMywibeRydHMiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU0LCJhcHJpbGwiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU1LCJtYWkiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU2LCJqdXVuaSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTcsImp1dWxpIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FOCwiYXVndXN0IikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FOSwic2VwdGVtYmVyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTAsIm9rdG9vYmVyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTEsIm5vdmVtYmVyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTIsImRldHNlbWJlciIpCi8qIExPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEzLCIiKSAqLwoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMSwiamFhbiAiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUyLCJ2ZWViciIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTMsIm3kcnRzIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNCwiYXByICAiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU1LCJtYWkgICIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTYsImp1dW5pIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNywianV1bGkiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU4LCJhdWcgICIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTksInNlcHQgIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTAsIm9rdCAgIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTEsIm5vdiAgIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTIsImRldHMgIikKLyogTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTMsIiIpICovCgpMT0NWQUwoTE9DQUxFX1NQT1NJVElWRVNJR04sICIiKQpMT0NWQUwoTE9DQUxFX1NORUdBVElWRVNJR04sICItIikKLyogTE9DVkFMKExPQ0FMRV9JUE9TU0lHTlBPU04sICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTSUdOUE9TTiwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSVBPU1NZTVBSRUNFREVTLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JUE9TU0VQQllTUEFDRSwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR1NZTVBSRUNFREVTLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU0VQQllTUEFDRSwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfRk9OVFNJR05BVFVSRSwgIiIpICovCkxPQ1ZBTChMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCJldCIpCkxPQ1ZBTChMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwiRUUiKQoK