LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgQXJhYmljIChUdW5pc2lhKQogKgogKgkoYXJhYmljIHN0cmluZ3MgaW4gaXNvLTg4NTktNikKICoKICogQ29weXJpZ2h0IDE5OTggTWFyY2VsIEJhdXIKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKTE9DVkFMKExPQ0FMRV9JTEFOR1VBR0UsIjFjMDEiKQovKiBMT0NWQUwoTE9DQUxFX1NMQU5HVUFHRSwiIikgKi8KTE9DVkFMKExPQ0FMRV9TRU5HTEFOR1VBR0UsIkFyYWJpYyAoVHVuaXNpYSkiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZMQU5HTkFNRSwiYXJ0IikKLyogTE9DVkFMKExPQ0FMRV9TTkFUSVZFTEFOR05BTUUsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUNPVU5UUlksIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU0NPVU5UUlksIiIpICovCkxPQ1ZBTChMT0NBTEVfU0VOR0NPVU5UUlksIlR1bmlzaWEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZDVFJZTkFNRSwiVFVOIikKLyogTE9DVkFMKExPQ0FMRV9TTkFUSVZFQ1RSWU5BTUUsIiIpICovCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRMQU5HVUFHRSwiMDQwMSIpCi8qIExPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT1VOVFJZLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09ERVBBR0UpICovCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRBTlNJQ09ERVBBR0UsIjEyNTYiKQovKiBMT0NWQUwoTE9DQUxFX1NMSVNULCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lNRUFTVVJFLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NERUNJTUFMLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NUSE9VU0FORCwiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TR1JPVVBJTkcpICovCi8qIExPQ1ZBTChMT0NBTEVfSURJR0lUUywiMiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUxaRVJPLCIxIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHTlVNQkVSKSAqLwpMT0NWQUwoTE9DQUxFX1NOQVRJVkVESUdJVFMsIjAxMjM0NTY3ODkiKQovKiBMT0NWQUwoTE9DQUxFX1NDVVJSRU5DWSwiIikgKi8KTE9DVkFMKExPQ0FMRV9TSU5UTFNZTUJPTCwiQUVEIikKTE9DVkFMKExPQ0FMRV9TTU9OREVDSU1BTFNFUCwiLCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRIT1VTQU5EU0VQLCIuIikKLyogTE9DVkFMKExPQ0FMRV9TTU9OR1JPVVBJTkcpICovCi8qIExPQ1ZBTChMT0NBTEVfSUNVUlJESUdJVFMsIjIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lJTlRMQ1VSUkRJR0lUUykgKi8KLyogTE9DVkFMKExPQ0FMRV9JQ1VSUkVOQ1ksIjMiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdDVVJSLCI4IikgKi8KTE9DVkFMKExPQ0FMRV9TREFURSwiLyIpCkxPQ1ZBTChMT0NBTEVfU1RJTUUsIjoiKQpMT0NWQUwoTE9DQUxFX1NTSE9SVERBVEUsICJ5eXl5L01NL2RkIikKTE9DVkFMKExPQ0FMRV9TTE9OR0RBVEUsICLlIHl5eXkgTU1NTawgZGQgZGRkZCIpCkxPQ1ZBTChMT0NBTEVfU1RJTUVGT1JNQVQsICJ0dCBoOm1tOnNzIikKLyogTE9DVkFMKExPQ0FMRV9JREFURSwiMSIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUxEQVRFKSAqLwpMT0NWQUwoTE9DQUxFX0lUSU1FLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JVElNRU1BUktQT1NOKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lDRU5UVVJZKSAqLwpMT0NWQUwoTE9DQUxFX0lUTFpFUk8sIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lEQVlMWkVSTykgKi8KLyogTE9DVkFMKExPQ0FMRV9JTU9OTFpFUk8pICovCkxPQ1ZBTChMT0NBTEVfUzExNTksICLVIikKTE9DVkFMKExPQ0FMRV9TMjM1OSwgIuUiKQpMT0NWQUwoTE9DQUxFX0lDQUxFTkRBUlRZUEUsICIxIikKLyogTE9DVkFMKExPQ0FMRV9JT1BUSU9OQUxDQUxFTkRBUikgKi8KLyogTE9DVkFMKExPQ0FMRV9JRklSU1REQVlPRldFRUspICovCi8qIExPQ1ZBTChMT0NBTEVfSUZJUlNUV0VFS09GWUVBUikgKi8KCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUxLCLH5MPL5urmIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTIsIsfky+THy8fBIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTMsIsfkw9HI2cfBIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTQsIsfkzuXq0yIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU1LCLH5Mzl2eciKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNiwix+TTyMoiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNywix+TDzc8iKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTEsIuYiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMiwiyyIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUzLCLRIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTQsIs4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNSwizCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU2LCLTIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTcsIs0iKQoKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMSwi6ubH6tEiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUyLCLhyNHH6tEiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUzLCLlx9HTIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNCwixcjR6uQiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU1LCLlx+roIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNiwi6ujm6uciKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU3LCLq6OTq5yIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTgsIsPa09fTIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FOSwi08jK5cjRIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTAsIsPjyujI0SIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTExLCLm6OHlyNEiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMiwiz+rT5cjRIikKLyogTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTMsIiIpICovCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxLCLq5sciKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUyLCLhyNEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUzLCLlx9EiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU0LCLFyNEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU1LCLlx+oiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU2LCLq6OYiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU3LCLq6OQiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU4LCLD2tMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU5LCLTyOUiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMCwiw+PKIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTEsIubo4SIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEyLCLP6tMiKQovKiBMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMywiIikgKi8KCkxPQ1ZBTChMT0NBTEVfU1BPU0lUSVZFU0lHTiwgIiIpCkxPQ1ZBTChMT0NBTEVfU05FR0FUSVZFU0lHTiwgIi0iKQovKiBMT0NWQUwoTE9DQUxFX0lQT1NTSUdOUE9TTiwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR1NJR05QT1NOLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JUE9TU1lNUFJFQ0VERVMsICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lQT1NTRVBCWVNQQUNFLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU1lNUFJFQ0VERVMsICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTRVBCWVNQQUNFLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9GT05UU0lHTkFUVVJFLCAiIikgKi8KTE9DVkFMKExPQ0FMRV9TSVNPNjM5TEFOR05BTUUsImFyIikKTE9DVkFMKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCJUTiIpCg==