LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgTGl0aHVhbmlhCiAqCShMaXRodWFuaWFuIHN0cmluZ3MgaW4gQkFMVElDIGNoYXJzZXQpCiAqCiAqIENvcHlyaWdodCAxOTk4IE1hcmNlbCBCYXVyCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxPQ1ZBTChMT0NBTEVfSUxBTkdVQUdFLCIwNDI3IikKTE9DVkFMKExPQ0FMRV9TTEFOR1VBR0UsIkxpZXR1dmn4IikKTE9DVkFMKExPQ0FMRV9TRU5HTEFOR1VBR0UsIkxpdGh1YW5pYW4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZMQU5HTkFNRSwibHRoIikKTE9DVkFMKExPQ0FMRV9TTkFUSVZFTEFOR05BTUUsIkxpZXR1dmn4IikKTE9DVkFMKExPQ0FMRV9JQ09VTlRSWSwiMzcwIikKTE9DVkFMKExPQ0FMRV9TQ09VTlRSWSwiTGlldHV2YSIpCkxPQ1ZBTChMT0NBTEVfU0VOR0NPVU5UUlksIkxpdGh1YW5pYSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkNUUllOQU1FLCJMVFUiKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVDVFJZTkFNRSwiTGlldHV2YSIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRMQU5HVUFHRSwiMDQyNyIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT1VOVFJZLCIzNzAiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09ERVBBR0UsIjc3NSIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRBTlNJQ09ERVBBR0UsIjEyNTciKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUTUFDQ09ERVBBR0UsIjEwMDI5IikKTE9DVkFMKExPQ0FMRV9TTElTVCwiOyIpCkxPQ1ZBTChMT0NBTEVfSU1FQVNVUkUsIjAiKQpMT0NWQUwoTE9DQUxFX1NERUNJTUFMLCIsIikKTE9DVkFMKExPQ0FMRV9TVEhPVVNBTkQsIi4iKQpMT0NWQUwoTE9DQUxFX1NHUk9VUElORywiMzswIikKTE9DVkFMKExPQ0FMRV9JRElHSVRTLCIyIikKTE9DVkFMKExPQ0FMRV9JTFpFUk8sIjEiKQpMT0NWQUwoTE9DQUxFX0lORUdOVU1CRVIsIjEiKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVESUdJVFMsIjAxMjM0NTY3ODkiKQpMT0NWQUwoTE9DQUxFX1NDVVJSRU5DWSwiTHQiKQpMT0NWQUwoTE9DQUxFX1NJTlRMU1lNQk9MLCJMVEwiKQpMT0NWQUwoTE9DQUxFX1NNT05ERUNJTUFMU0VQLCIsIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhPVVNBTkRTRVAsIi4iKQpMT0NWQUwoTE9DQUxFX1NNT05HUk9VUElORywiMzswIikKTE9DVkFMKExPQ0FMRV9JQ1VSUkRJR0lUUywiMiIpCkxPQ1ZBTChMT0NBTEVfSUlOVExDVVJSRElHSVRTLCIyIikKTE9DVkFMKExPQ0FMRV9JQ1VSUkVOQ1ksIjMiKQpMT0NWQUwoTE9DQUxFX0lORUdDVVJSLCI4IikKTE9DVkFMKExPQ0FMRV9TREFURSwiLiIpCkxPQ1ZBTChMT0NBTEVfU1RJTUUsIjoiKQpMT0NWQUwoTE9DQUxFX1NTSE9SVERBVEUsInl5eXkgTU0gZGQiKQpMT0NWQUwoTE9DQUxFX1NMT05HREFURSwieXl5eSAnbS4nIE1NTU0gZCAnZC4nIikKTE9DVkFMKExPQ0FMRV9TVElNRUZPUk1BVCwiSEg6bW06c3MiKQpMT0NWQUwoTE9DQUxFX0lEQVRFLCIyIikKTE9DVkFMKExPQ0FMRV9JTERBVEUsIjIiKQpMT0NWQUwoTE9DQUxFX0lUSU1FLCIxIikKTE9DVkFMKExPQ0FMRV9JVElNRU1BUktQT1NOLCIwIikKTE9DVkFMKExPQ0FMRV9JQ0VOVFVSWSwiMSIpCkxPQ1ZBTChMT0NBTEVfSVRMWkVSTywiMSIpCkxPQ1ZBTChMT0NBTEVfSURBWUxaRVJPLCIxIikKTE9DVkFMKExPQ0FMRV9JTU9OTFpFUk8sIjEiKQpMT0NWQUwoTE9DQUxFX1MxMTU5LCIiKQpMT0NWQUwoTE9DQUxFX1MyMzU5LCIiKQpMT0NWQUwoTE9DQUxFX0lDQUxFTkRBUlRZUEUsIjEiKQpMT0NWQUwoTE9DQUxFX0lPUFRJT05BTENBTEVOREFSLCIwIikKTE9DVkFMKExPQ0FMRV9JRklSU1REQVlPRldFRUssIjAiKQpMT0NWQUwoTE9DQUxFX0lGSVJTVFdFRUtPRllFQVIsIjAiKQoKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTEsInBpcm1hZGllbmlzIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTIsImFudHJhZGllbmlzIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTMsInRyZehpYWRpZW5pcyIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU0LCJrZXR2aXJ0YWRpZW5pcyIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU1LCJwZW5rdGFkaWVuaXMiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNiwi8GXwdGFkaWVuaXMiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNywic2VrbWFkaWVuaXMiKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTEsIlByIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTIsIkFuIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTMsIlRyIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTQsIkt0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTUsIlBuIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTYsItB0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTcsIlNrIikKCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEsInNhdXNpbyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTIsInZhc2FyaW8iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUzLCJrb3ZvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNCwiYmFsYW5k/mlvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNSwiZ2Vndf7rcyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTYsImJpcv5lbGlvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNywibGllcG9zIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FOCwicnVncGr76GlvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FOSwicnVnc+tqbyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEwLCJzcGFsaW8iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMSwibGFwa3Jp6GlvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTIsImdydW9k/mlvIikKLyogTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTMsIiIpICovCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxLCJTYXUiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUyLCJWYXMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUzLCJLb3YiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU0LCJCYWwiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU1LCJHZWciKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU2LCJCaXIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU3LCJMaWUiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU4LCJSZ3AiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU5LCJSZ3MiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMCwiU3BhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTEsIkxhcCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEyLCJHcmQiKQovKiBMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMywiIikgKi8KCkxPQ1ZBTChMT0NBTEVfU1BPU0lUSVZFU0lHTiwiIikKTE9DVkFMKExPQ0FMRV9TTkVHQVRJVkVTSUdOLCItIikKTE9DVkFMKExPQ0FMRV9JUE9TU0lHTlBPU04sIjEiKQpMT0NWQUwoTE9DQUxFX0lORUdTSUdOUE9TTiwiMSIpCkxPQ1ZBTChMT0NBTEVfSVBPU1NZTVBSRUNFREVTLCIwIikKTE9DVkFMKExPQ0FMRV9JUE9TU0VQQllTUEFDRSwiMSIpCkxPQ1ZBTChMT0NBTEVfSU5FR1NZTVBSRUNFREVTLCIwIikKTE9DVkFMKExPQ0FMRV9JTkVHU0VQQllTUEFDRSwiMSIpCi8qIExPQ1ZBTChMT0NBTEVfRk9OVFNJR05BVFVSRSwgIiIpICovCkxPQ1ZBTChMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCJsdCIpCkxPQ1ZBTChMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwiTFQiKQo=