LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgTm9yd2F5IChCb2ttYWFsKQogKgkoTm9yd2VnaWFuIHN0cmluZ3MgaW4gY3AxMjUyKQogKgogKiBDb3B5cmlnaHQgMTk5OCBNYXJjZWwgQmF1cgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMT0NWQUwoTE9DQUxFX0lMQU5HVUFHRSwiMDQxNCIpCkxPQ1ZBTChMT0NBTEVfU0xBTkdVQUdFLCJOb3JzayAoQm9rbeVsKSIpCkxPQ1ZBTChMT0NBTEVfU0VOR0xBTkdVQUdFLCJOb3J3ZWdpYW4gKEJva21hYWwpIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTEFOR05BTUUsIm5vciIpCkxPQ1ZBTChMT0NBTEVfU05BVElWRUxBTkdOQU1FLCJib2tt5WwiKQpMT0NWQUwoTE9DQUxFX0lDT1VOVFJZLCI0NyIpCkxPQ1ZBTChMT0NBTEVfU0NPVU5UUlksIk5vcmdlIikKTE9DVkFMKExPQ0FMRV9TRU5HQ09VTlRSWSwiTm9yd2F5IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWQ1RSWU5BTUUsIk5PUiIpCkxPQ1ZBTChMT0NBTEVfU05BVElWRUNUUllOQU1FLCJOb3JnZSIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRMQU5HVUFHRSwiMDQxNCIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT1VOVFJZLCI0NyIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT0RFUEFHRSwiODUwIikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVEFOU0lDT0RFUEFHRSwiMTI1MiIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRNQUNDT0RFUEFHRSwgIjEwMDAwIikKLyogTE9DVkFMKExPQ0FMRV9TTElTVCwiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTUVBU1VSRSwiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TREVDSU1BTCwiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TVEhPVVNBTkQsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU0dST1VQSU5HKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lESUdJVFMsIjIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lMWkVSTywiMSIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR05VTUJFUikgKi8KTE9DVkFMKExPQ0FMRV9TTkFUSVZFRElHSVRTLCAiMDEyMzQ1Njc4OSIpCkxPQ1ZBTChMT0NBTEVfU0NVUlJFTkNZLCJrciIpCkxPQ1ZBTChMT0NBTEVfU0lOVExTWU1CT0wsIk5PSyIpCkxPQ1ZBTChMT0NBTEVfU01PTkRFQ0lNQUxTRVAsIiwiKQpMT0NWQUwoTE9DQUxFX1NNT05USE9VU0FORFNFUCwiLiIpCkxPQ1ZBTChMT0NBTEVfU01PTkdST1VQSU5HLCIzOzAiKQovKiBMT0NWQUwoTE9DQUxFX0lDVVJSRElHSVRTLCIyIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JSU5UTENVUlJESUdJVFMpICovCi8qIExPQ1ZBTChMT0NBTEVfSUNVUlJFTkNZLCIzIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHQ1VSUiwiOCIpICovCi8qIExPQ1ZBTChMT0NBTEVfU0RBVEUsIi4iKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NUSU1FLCI6IikgKi8KLyogTE9DVkFMKExPQ0FMRV9TU0hPUlREQVRFLCJkZC9NTS15eXl5IikgKi8KLyogTE9DVkFMKExPQ0FMRV9TTE9OR0RBVEUsImRkZCwgZC4gTU1NTSB5eXl5IikgKi8KLyogTE9DVkFMKExPQ0FMRV9TVElNRUZPUk1BVCkgKi8KLyogTE9DVkFMKExPQ0FMRV9JREFURSwiMSIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUxEQVRFKSAqLwpMT0NWQUwoTE9DQUxFX0lUSU1FLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JVElNRU1BUktQT1NOKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lDRU5UVVJZKSAqLwpMT0NWQUwoTE9DQUxFX0lUTFpFUk8sIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lEQVlMWkVSTykgKi8KLyogTE9DVkFMKExPQ0FMRV9JTU9OTFpFUk8pICovCi8qIExPQ1ZBTChMT0NBTEVfUzExNTksICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1MyMzU5LCAiIikgKi8KTE9DVkFMKExPQ0FMRV9JQ0FMRU5EQVJUWVBFLCAiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSU9QVElPTkFMQ0FMRU5EQVIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUZJUlNUREFZT0ZXRUVLKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lGSVJTVFdFRUtPRllFQVIpICovCgpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMSwibWFuZGFnIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTIsInRpcnNkYWciKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMywib25zZGFnIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTQsInRvcnNkYWciKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNSwiZnJlZGFnIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTYsImz4cmRhZyIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU3LCJz+G5kYWciKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTEsIm1hIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTIsInRpIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTMsIm9uIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTQsInRvIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTUsImZyIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTYsImz4IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTcsInP4IikKCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEsImphbnVhciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTIsImZlYnJ1YXIiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUzLCJtYXJzIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNCwiYXByaWwiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU1LCJtYWkiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU2LCJqdW5pIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNywianVsaSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTgsImF1Z3VzdCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTksInNlcHRlbWJlciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEwLCJva3RvYmVyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTEsIm5vdmVtYmVyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTIsImRlc2VtYmVyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTMsIiIpCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxLCJqYW4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUyLCJmZWIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUzLCJtYXIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU0LCJhcHIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU1LCJtYWkiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU2LCJqdW4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU3LCJqdWwiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU4LCJhdWciKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU5LCJzZXAiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMCwib2t0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTEsIm5vdiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEyLCJkZXMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMywiIikKCi8qIExPQ1ZBTChMT0NBTEVfU1BPU0lUSVZFU0lHTiwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU05FR0FUSVZFU0lHTiwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSVBPU1NJR05QT1NOLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU0lHTlBPU04sICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lQT1NTWU1QUkVDRURFUywgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSVBPU1NFUEJZU1BBQ0UsICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTWU1QUkVDRURFUywgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR1NFUEJZU1BBQ0UsICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0ZPTlRTSUdOQVRVUkUsICIiKSAqLwpMT0NWQUwoTE9DQUxFX1NJU082MzlMQU5HTkFNRSwibm8iKQpMT0NWQUwoTE9DQUxFX1NJU08zMTY2Q1RSWU5BTUUsIk5PIikKCi8qIGdyZWdvcmlhbnNrIGthbGVuZGVyICovCg==