LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgRmFyb2UgSXNsYW5kcwogKgogKgkoZmFyb2VzZSBzdHJpbmdzIGluIGNwMTI1MikKICoKICogQ29weXJpZ2h0IDE5OTggTWFyY2VsIEJhdXIKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKTE9DVkFMKExPQ0FMRV9JTEFOR1VBR0UsIjA0MzgiKQovKiBMT0NWQUwoTE9DQUxFX1NMQU5HVUFHRSwiIikgKi8KTE9DVkFMKExPQ0FMRV9TRU5HTEFOR1VBR0UsIkZhcm9lc2UiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZMQU5HTkFNRSwiZm9zIikKTE9DVkFMKExPQ0FMRV9TTkFUSVZFTEFOR05BTUUsImbmcm95c2t0IikKTE9DVkFMKExPQ0FMRV9JQ09VTlRSWSwiMjk4IikKTE9DVkFMKExPQ0FMRV9TQ09VTlRSWSwiIikKTE9DVkFMKExPQ0FMRV9TRU5HQ09VTlRSWSwiRmFyb2UgSXNsYW5kcyIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkNUUllOQU1FLCJGUk8iKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVDVFJZTkFNRSwiRnJveWFyIikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVExBTkdVQUdFLCIwNDM4IikKLyogTE9DVkFMKExPQ0FMRV9JREVGQVVMVENPVU5UUlksIjQwIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JREVGQVVMVENPREVQQUdFLCI4NTEiKSAqLwpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQU5TSUNPREVQQUdFLCIxMjUyIikKTE9DVkFMKExPQ0FMRV9TTElTVCwiOyIpCkxPQ1ZBTChMT0NBTEVfSU1FQVNVUkUsIjAiKQpMT0NWQUwoTE9DQUxFX1NERUNJTUFMLCIsIikKTE9DVkFMKExPQ0FMRV9TVEhPVVNBTkQsIi4iKQovKiBMT0NWQUwoTE9DQUxFX1NHUk9VUElORykgKi8KTE9DVkFMKExPQ0FMRV9JRElHSVRTLCIyIikKTE9DVkFMKExPQ0FMRV9JTFpFUk8sIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lORUdOVU1CRVIpICovCkxPQ1ZBTChMT0NBTEVfU05BVElWRURJR0lUUywgIjAxMjM0NTY3ODkiKQpMT0NWQUwoTE9DQUxFX1NDVVJSRU5DWSwia3IiKQpMT0NWQUwoTE9DQUxFX1NJTlRMU1lNQk9MLCAiREtLIikKLyogTE9DVkFMKExPQ0FMRV9TTU9OREVDSU1BTFNFUCkgKi8KLyogTE9DVkFMKExPQ0FMRV9TTU9OVEhPVVNBTkRTRVApICovCkxPQ1ZBTChMT0NBTEVfU01PTkdST1VQSU5HLCIzOzAiKQpMT0NWQUwoTE9DQUxFX0lDVVJSRElHSVRTLCIyIikKLyogTE9DVkFMKExPQ0FMRV9JSU5UTENVUlJESUdJVFMpICovCkxPQ1ZBTChMT0NBTEVfSUNVUlJFTkNZLCIzIikKTE9DVkFMKExPQ0FMRV9JTkVHQ1VSUiwiOCIpCkxPQ1ZBTChMT0NBTEVfU0RBVEUsIi4iKQpMT0NWQUwoTE9DQUxFX1NUSU1FLCI6IikKTE9DVkFMKExPQ0FMRV9TU0hPUlREQVRFLCJkZC5NTS55eXl5IikKTE9DVkFMKExPQ0FMRV9TTE9OR0RBVEUsImRkZCwgZC4gTU1NTSB5eXl5IikKLyogTE9DVkFMKExPQ0FMRV9TVElNRUZPUk1BVCkgKi8KTE9DVkFMKExPQ0FMRV9JREFURSwiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSUxEQVRFKSAqLwpMT0NWQUwoTE9DQUxFX0lUSU1FLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JVElNRU1BUktQT1NOKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lDRU5UVVJZKSAqLwpMT0NWQUwoTE9DQUxFX0lUTFpFUk8sIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lEQVlMWkVSTykgKi8KLyogTE9DVkFMKExPQ0FMRV9JTU9OTFpFUk8pICovCi8qIExPQ1ZBTChMT0NBTEVfUzExNTkpICovCi8qIExPQ1ZBTChMT0NBTEVfUzIzNTkpICovCkxPQ1ZBTChMT0NBTEVfSUNBTEVOREFSVFlQRSwgIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lPUFRJT05BTENBTEVOREFSKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lGSVJTVERBWU9GV0VFSykgKi8KLyogTE9DVkFMKExPQ0FMRV9JRklSU1RXRUVLT0ZZRUFSKSAqLwoKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTEsIm3hbmFkYWd1ciIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUyLCJ0/XNkYWd1ciIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUzLCJtaWt1ZGFndXIiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNCwiaPNzZGFndXIiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNSwiZnLtZ2dqYWRhZ3VyIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTYsImxleWdhcmRhZ3VyIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTcsInN1bm51ZGFndXIiKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTEsIm3hbiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUyLCJ0/XMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMywibWlrIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTQsImjzcyIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU1LCJmcu0iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNiwibGV5IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTcsInN1biIpCgpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxLCJqYW51YXIiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUyLCJmZWJydWFyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMywibWFycyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTQsImFwcmlsIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNSwibWFpIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNiwianVuaSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTcsImp1bGkiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU4LCJhdWd1c3QiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU5LCJzZXB0ZW1iZXIiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMCwib2t0b2JlciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTExLCJub3ZlbWJlciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEyLCJkZXNlbWJlciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEzLCIiKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMSwiamFuIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMiwiZmViIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMywibWFyIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNCwiYXByIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNSwibWFpIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNiwianVuIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNywianVsIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOCwiYXVnIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOSwic2VwIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTAsIm9rdCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTExLCJub3YiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMiwiZGVzIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTMsIiIpCgovKiBMT0NWQUwoTE9DQUxFX1NQT1NJVElWRVNJR04pICovCi8qIExPQ1ZBTChMT0NBTEVfU05FR0FUSVZFU0lHTikgKi8KLyogTE9DVkFMKExPQ0FMRV9JUE9TU0lHTlBPU04pICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR1NJR05QT1NOKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lQT1NTWU1QUkVDRURFUykgKi8KLyogTE9DVkFMKExPQ0FMRV9JUE9TU0VQQllTUEFDRSkgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU1lNUFJFQ0VERVMpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR1NFUEJZU1BBQ0UpICovCi8qIExPQ1ZBTChMT0NBTEVfRk9OVFNJR05BVFVSRSwgIiIpICovCkxPQ1ZBTChMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCJmbyIpCkxPQ1ZBTChMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwiRk8iKQo=