LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgRHV0Y2ggKEJlbGdpdW0pCiAqCiAqIENvcHlyaWdodCAxOTk4IE1hcmNlbCBCYXVyCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxPQ1ZBTChMT0NBTEVfSUxBTkdVQUdFLCIwODEzIikKTE9DVkFMKExPQ0FMRV9TTEFOR1VBR0UsIk5lZGVybGFuZHMgKEJlbGdp6ykiKQpMT0NWQUwoTE9DQUxFX1NFTkdMQU5HVUFHRSwiRHV0Y2ggKEJlbGdpdW0pIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTEFOR05BTUUsIk5MQiIpCkxPQ1ZBTChMT0NBTEVfU05BVElWRUxBTkdOQU1FLCJOZWRlcmxhbmRzIikKTE9DVkFMKExPQ0FMRV9JQ09VTlRSWSwiMzIiKQpMT0NWQUwoTE9DQUxFX1NDT1VOVFJZLCJCZWxnaesiKQpMT0NWQUwoTE9DQUxFX1NFTkdDT1VOVFJZLCJCZWxnaXVtIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWQ1RSWU5BTUUsIkJFTCIpCkxPQ1ZBTChMT0NBTEVfU05BVElWRUNUUllOQU1FLCJCZWxnaesiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUTEFOR1VBR0UsIjA0MTMiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09VTlRSWSwiMzIiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09ERVBBR0UsIjg1MCIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRBTlNJQ09ERVBBR0UsIjEyNTIiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUTUFDQ09ERVBBR0UsICIxMDAwMCIpCkxPQ1ZBTChMT0NBTEVfU0xJU1QsIjsiKQpMT0NWQUwoTE9DQUxFX0lNRUFTVVJFLCIwIikKTE9DVkFMKExPQ0FMRV9TREVDSU1BTCwiLCIpCkxPQ1ZBTChMT0NBTEVfU1RIT1VTQU5ELCIuIikKTE9DVkFMKExPQ0FMRV9TR1JPVVBJTkcsIjM7MCIpCkxPQ1ZBTChMT0NBTEVfSURJR0lUUywiMiIpCkxPQ1ZBTChMT0NBTEVfSUxaRVJPLCIxIikKTE9DVkFMKExPQ0FMRV9JTkVHTlVNQkVSLCIxIikKTE9DVkFMKExPQ0FMRV9TTkFUSVZFRElHSVRTLCIwMTIzNDU2Nzg5IikKTE9DVkFMKExPQ0FMRV9TQ1VSUkVOQ1ksIqQiKQpMT0NWQUwoTE9DQUxFX1NJTlRMU1lNQk9MLCJFVVIiKQpMT0NWQUwoTE9DQUxFX1NNT05ERUNJTUFMU0VQLCIsIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhPVVNBTkRTRVAsIi4iKQpMT0NWQUwoTE9DQUxFX1NNT05HUk9VUElORywiMzswIikKTE9DVkFMKExPQ0FMRV9JQ1VSUkRJR0lUUywiMiIpCkxPQ1ZBTChMT0NBTEVfSUlOVExDVVJSRElHSVRTLCIyIikKTE9DVkFMKExPQ0FMRV9JQ1VSUkVOQ1ksIjMiKQpMT0NWQUwoTE9DQUxFX0lORUdDVVJSLCI4IikKTE9DVkFMKExPQ0FMRV9TREFURSwiLyIpCkxPQ1ZBTChMT0NBTEVfU1RJTUUsIjoiKQpMT0NWQUwoTE9DQUxFX1NTSE9SVERBVEUsImQvTU0veXl5eSIpCkxPQ1ZBTChMT0NBTEVfU0xPTkdEQVRFLCJkZGRkIGQgTU1NTSB5eXl5IikKTE9DVkFMKExPQ0FMRV9TVElNRUZPUk1BVCwiSDptbTpzcyIpCkxPQ1ZBTChMT0NBTEVfSURBVEUsIjEiKQpMT0NWQUwoTE9DQUxFX0lMREFURSwiMSIpCkxPQ1ZBTChMT0NBTEVfSVRJTUUsIjEiKQpMT0NWQUwoTE9DQUxFX0lUSU1FTUFSS1BPU04sIjAiKQpMT0NWQUwoTE9DQUxFX0lDRU5UVVJZLCIxIikKTE9DVkFMKExPQ0FMRV9JVExaRVJPLCIwIikKTE9DVkFMKExPQ0FMRV9JREFZTFpFUk8sIjAiKQpMT0NWQUwoTE9DQUxFX0lNT05MWkVSTywiMSIpCkxPQ1ZBTChMT0NBTEVfUzExNTksICIiKQpMT0NWQUwoTE9DQUxFX1MyMzU5LCAiIikKTE9DVkFMKExPQ0FMRV9JQ0FMRU5EQVJUWVBFLCAiMSIpCkxPQ1ZBTChMT0NBTEVfSU9QVElPTkFMQ0FMRU5EQVIsIjAiKQpMT0NWQUwoTE9DQUxFX0lGSVJTVERBWU9GV0VFSywiMCIpCkxPQ1ZBTChMT0NBTEVfSUZJUlNUV0VFS09GWUVBUiwiMCIpCgpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMSwibWFhbmRhZyIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUyLCJkaW5zZGFnIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTMsIndvZW5zZGFnIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTQsImRvbmRlcmRhZyIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU1LCJ2cmlqZGFnIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTYsInphdGVyZGFnIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTcsInpvbmRhZyIpCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMSwibWEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMiwiZGkiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMywid28iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNCwiZG8iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNSwidnIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNiwiemEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNywiem8iKQoKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMSwiamFudWFyaSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTIsImZlYnJ1YXJpIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMywibWFhcnQiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU0LCJhcHJpbCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTUsIm1laSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTYsImp1bmkiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU3LCJqdWxpIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FOCwiYXVndXN0dXMiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU5LCJzZXB0ZW1iZXIiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMCwib2t0b2JlciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTExLCJub3ZlbWJlciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEyLCJkZWNlbWJlciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEzLCIiKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMSwiamFuIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMiwiZmViIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMywibXJ0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNCwiYXByIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNSwibWVpIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNiwianVuIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNywianVsIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOCwiYXVnIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOSwic2VwIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTAsIm9rdCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTExLCJub3YiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMiwiZGVjIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTMsIiIpCgpMT0NWQUwoTE9DQUxFX1NQT1NJVElWRVNJR04sICIrIikKTE9DVkFMKExPQ0FMRV9TTkVHQVRJVkVTSUdOLCAiLSIpCkxPQ1ZBTChMT0NBTEVfSVBPU1NJR05QT1NOLCAiMSIpCkxPQ1ZBTChMT0NBTEVfSU5FR1NJR05QT1NOLCAiMSIpCkxPQ1ZBTChMT0NBTEVfSVBPU1NZTVBSRUNFREVTLCAiMCIpCkxPQ1ZBTChMT0NBTEVfSVBPU1NFUEJZU1BBQ0UsICIxIikKTE9DVkFMKExPQ0FMRV9JTkVHU1lNUFJFQ0VERVMsICIwIikKTE9DVkFMKExPQ0FMRV9JTkVHU0VQQllTUEFDRSwgIjEiKQpMT0NWQUwoTE9DQUxFX0ZPTlRTSUdOQVRVUkUsICIvIikgCkxPQ1ZBTChMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCJubCIpCkxPQ1ZBTChMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwiQkUiKQoKTE9DVkFMKExPQ0FMRV9JUEFQRVJTSVpFLCAiOSIpICAvKkE0Ki8K