LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgQXJhYmljIChLdXdhaXQpCiAqCiAqCShhcmFiaWMgc3RyaW5ncyBpbiBpc28tODg1OS02KQogKgogKiBDb3B5cmlnaHQgMTk5OCBNYXJjZWwgQmF1cgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMT0NWQUwoTE9DQUxFX0lMQU5HVUFHRSwiMzQwMSIpCi8qIExPQ1ZBTChMT0NBTEVfU0xBTkdVQUdFLCIiKSAqLwpMT0NWQUwoTE9DQUxFX1NFTkdMQU5HVUFHRSwiQXJhYmljIChLdXdhaXQpIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTEFOR05BTUUsImFyayIpCi8qIExPQ1ZBTChMT0NBTEVfU05BVElWRUxBTkdOQU1FLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lDT1VOVFJZLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NDT1VOVFJZLCIiKSAqLwpMT0NWQUwoTE9DQUxFX1NFTkdDT1VOVFJZLCJLdXdhaXQiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZDVFJZTkFNRSwiS1dUIikKLyogTE9DVkFMKExPQ0FMRV9TTkFUSVZFQ1RSWU5BTUUsIiIpICovCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRMQU5HVUFHRSwiMDQwMSIpCi8qIExPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT1VOVFJZLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09ERVBBR0UpICovCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRBTlNJQ09ERVBBR0UsIjEyNTYiKQovKiBMT0NWQUwoTE9DQUxFX1NMSVNULCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lNRUFTVVJFLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NERUNJTUFMLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NUSE9VU0FORCwiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TR1JPVVBJTkcpICovCi8qIExPQ1ZBTChMT0NBTEVfSURJR0lUUywiMiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUxaRVJPLCIxIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHTlVNQkVSKSAqLwpMT0NWQUwoTE9DQUxFX1NOQVRJVkVESUdJVFMsIjAxMjM0NTY3ODkiKQovKiBMT0NWQUwoTE9DQUxFX1NDVVJSRU5DWSwiIikgKi8KTE9DVkFMKExPQ0FMRV9TSU5UTFNZTUJPTCwiS1dEIikKTE9DVkFMKExPQ0FMRV9TTU9OREVDSU1BTFNFUCwiLCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRIT1VTQU5EU0VQLCIuIikKLyogTE9DVkFMKExPQ0FMRV9TTU9OR1JPVVBJTkcpICovCi8qIExPQ1ZBTChMT0NBTEVfSUNVUlJESUdJVFMsIjIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lJTlRMQ1VSUkRJR0lUUykgKi8KLyogTE9DVkFMKExPQ0FMRV9JQ1VSUkVOQ1ksIjMiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdDVVJSLCI4IikgKi8KTE9DVkFMKExPQ0FMRV9TREFURSwiLyIpCkxPQ1ZBTChMT0NBTEVfU1RJTUUsIjoiKQpMT0NWQUwoTE9DQUxFX1NTSE9SVERBVEUsICJ5eXl5L01NL2RkIikKTE9DVkFMKExPQ0FMRV9TTE9OR0RBVEUsICLlIHl5eXkgTU1NTawgZGQgZGRkZCIpCkxPQ1ZBTChMT0NBTEVfU1RJTUVGT1JNQVQsICJ0dCBoOm1tOnNzIikKLyogTE9DVkFMKExPQ0FMRV9JREFURSwiMSIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUxEQVRFKSAqLwpMT0NWQUwoTE9DQUxFX0lUSU1FLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JVElNRU1BUktQT1NOKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lDRU5UVVJZKSAqLwpMT0NWQUwoTE9DQUxFX0lUTFpFUk8sIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lEQVlMWkVSTykgKi8KLyogTE9DVkFMKExPQ0FMRV9JTU9OTFpFUk8pICovCkxPQ1ZBTChMT0NBTEVfUzExNTksICLVIikKTE9DVkFMKExPQ0FMRV9TMjM1OSwgIuUiKQpMT0NWQUwoTE9DQUxFX0lDQUxFTkRBUlRZUEUsICIxIikKLyogTE9DVkFMKExPQ0FMRV9JT1BUSU9OQUxDQUxFTkRBUikgKi8KLyogTE9DVkFMKExPQ0FMRV9JRklSU1REQVlPRldFRUspICovCi8qIExPQ1ZBTChMT0NBTEVfSUZJUlNUV0VFS09GWUVBUikgKi8KCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUxLCLH5MPL5urmIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTIsIsfky+THy8fBIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTMsIsfkw9HI2cfBIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTQsIsfkzuXq0yIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU1LCLH5Mzl2eciKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNiwix+TTyMoiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNywix+TDzc8iKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTEsIuYiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMiwiyyIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUzLCLRIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTQsIs4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNSwizCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU2LCLTIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTcsIs0iKQoKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMSwi6ubH6tEiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUyLCLhyNHH6tEiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUzLCLlx9HTIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNCwixcjR6uQiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU1LCLlx+roIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNiwi6ujm6uciKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU3LCLq6OTq5yIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTgsIsPa09fTIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FOSwi08jK5cjRIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTAsIsPjyujI0SIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTExLCLm6OHlyNEiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMiwiz+rT5cjRIikKLyogTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTMsIiIpICovCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxLCLq5sciKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUyLCLhyNEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUzLCLlx9EiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU0LCLFyNEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU1LCLlx+oiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU2LCLq6OYiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU3LCLq6OQiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU4LCLD2tMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU5LCLTyOUiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMCwiw+PKIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTEsIubo4SIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEyLCLP6tMiKQovKiBMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMywiIikgKi8KCkxPQ1ZBTChMT0NBTEVfU1BPU0lUSVZFU0lHTiwgIiIpCkxPQ1ZBTChMT0NBTEVfU05FR0FUSVZFU0lHTiwgIi0iKQovKiBMT0NWQUwoTE9DQUxFX0lQT1NTSUdOUE9TTiwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR1NJR05QT1NOLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JUE9TU1lNUFJFQ0VERVMsICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lQT1NTRVBCWVNQQUNFLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU1lNUFJFQ0VERVMsICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTRVBCWVNQQUNFLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9GT05UU0lHTkFUVVJFLCAiIikgKi8KTE9DVkFMKExPQ0FMRV9TSVNPNjM5TEFOR05BTUUsImFyIikKTE9DVkFMKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCJLVyIpCg==