LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgRXNwZXJhbnRvCiAqICAgICAgCiAqICAgICAgRXNwZXJhbnRvIHNlZW1zIG5vdCB0byBiZSBzdXBwb3J0ZWQgYnkgV2luZG93cwogKgogKiAgICAgIFRPRE86IE1TIG51bWVyaWNhbCBJRCBmb3IgbGFuZ3VhZ2UgPwogKgogKglJIGNob29zZSAweDhmIGZvciBlc3BlcmFudG8gbGFuZ3VhZ2UgYXMgaXQgaXMgaGlnaCBlbm91Z2gKICoJbm90IHRvIGJlIGF0dHJpYnV0ZWQgdG8gYW5vdGhlciBsYW5ndWFnZSBpbiB0aGUgaW1tZWRpYXRlCiAqCWZ1dHVyZSAoYXMgb2YgMTk5ODA5MDEgdGhlIGxhc3Qgb2ZmaWNpYWwgbGFuZ3VhZ2VJRCBpcyAweDUxKQogKgogKiAJTm8gV2luZG93cyAxMjVbMC04XSBjb2RlcGFnZSBoYXMgdGhlIGNeIGdeIGheIGpeIHNeIHVzZWQgYnkgZXNwZXJhbnRvLgogKglBbmQgZm9yIERPUyBjb2RlcGFnZSA/CiAqCiAqCUlTTyAyIGxldHRlciBjb2RlIGZvciBlc3BlcmFudG8gaXMgImVvIiBidXQgYXMgV2luZG93cyB1c2UKICoJdGhyZWUgbGV0dGVyIGNvZGVzIEkgYWRkZWQgYW4gIngiIHRvIHRoZSBlbmQuCQogKgogKgkoZXNwZXJhbnRvIHN0cmluZ3MgaW4gaXNvLTg4NTktMykKICovCgpMT0NWQUwoTE9DQUxFX0lMQU5HVUFHRSwiMDQ4ZiIpCkxPQ1ZBTChMT0NBTEVfU0xBTkdVQUdFLCJFc3BlcmFudG8iKQpMT0NWQUwoTE9DQUxFX1NFTkdMQU5HVUFHRSwiRXNwZXJhbnRvIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTEFOR05BTUUsImVveCIpCkxPQ1ZBTChMT0NBTEVfU05BVElWRUxBTkdOQU1FLCJFc3BlcmFudG8iKQovKiBMT0NWQUwoTE9DQUxFX0lDT1VOVFJZLCIiKSBub3Qgb2ZmaWNpYWwgaW4gYW55IG9uZSBjb3VudHJ5ICovCi8qIExPQ1ZBTChMT0NBTEVfU0NPVU5UUlksIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU0VOR0NPVU5UUlksIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU0FCQlJFVkNUUllOQU1FLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NOQVRJVkVDVFJZTkFNRSwiIikgKi8KTE9DVkFMKExPQ0FMRV9JREVGQVVMVExBTkdVQUdFLCIwNDhmIikgLyogTVMgTEFOR0lEIFRPRE8gKi8KLyogTE9DVkFMKExPQ0FMRV9JREVGQVVMVENPVU5UUlksIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT0RFUEFHRSwiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JREVGQVVMVEFOU0lDT0RFUEFHRSwiIikgKi8KTE9DVkFMKExPQ0FMRV9TTElTVCwiOyIpCkxPQ1ZBTChMT0NBTEVfSU1FQVNVUkUsIjAiKQpMT0NWQUwoTE9DQUxFX1NERUNJTUFMLCIsIikKTE9DVkFMKExPQ0FMRV9TVEhPVVNBTkQsIi4iKQovKiBMT0NWQUwoTE9DQUxFX1NHUk9VUElORykgKi8KTE9DVkFMKExPQ0FMRV9JRElHSVRTLCIyIikKTE9DVkFMKExPQ0FMRV9JTFpFUk8sIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lORUdOVU1CRVIpICovCi8qIExPQ1ZBTChMT0NBTEVfU05BVElWRURJR0lUUykgKi8KLyogZXVybyBzeW1ib2w7IGl0IGlzIDB4YTQgaW4gaXNvLTg4NTktMTUgYW5kIDB4ODAgaW4gY3AxMjUyICovCkxPQ1ZBTChMT0NBTEVfU0NVUlJFTkNZLCKkIikKTE9DVkFMKExPQ0FMRV9TSU5UTFNZTUJPTCwiRU1VIikgCkxPQ1ZBTChMT0NBTEVfU01PTkRFQ0lNQUxTRVAsIiwiKQpMT0NWQUwoTE9DQUxFX1NNT05USE9VU0FORFNFUCwiLiIpCi8qIExPQ1ZBTChMT0NBTEVfU01PTkdST1VQSU5HKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lDVVJSRElHSVRTLCIyIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JSU5UTENVUlJESUdJVFMpICovCkxPQ1ZBTChMT0NBTEVfSUNVUlJFTkNZLCIzIikKTE9DVkFMKExPQ0FMRV9JTkVHQ1VSUiwiOCIpCkxPQ1ZBTChMT0NBTEVfU0RBVEUsIi4iKQpMT0NWQUwoTE9DQUxFX1NUSU1FLCI6IikKTE9DVkFMKExPQ0FMRV9TU0hPUlREQVRFLCJ5eXl5Lm1tLmRkIikKTE9DVkFMKExPQ0FMRV9TTE9OR0RBVEUsImRkZCwgZC4gTU1NTSB5eXl5IikKLyogTE9DVkFMKExPQ0FMRV9TVElNRUZPUk1BVCkgKi8KTE9DVkFMKExPQ0FMRV9JREFURSwiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSUxEQVRFKSAqLwpMT0NWQUwoTE9DQUxFX0lUSU1FLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JVElNRU1BUktQT1NOKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lDRU5UVVJZKSAqLwpMT0NWQUwoTE9DQUxFX0lUTFpFUk8sIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lEQVlMWkVSTykgKi8KLyogTE9DVkFMKExPQ0FMRV9JTU9OTFpFUk8pICovCi8qIExPQ1ZBTChMT0NBTEVfUzExNTkpICovCi8qIExPQ1ZBTChMT0NBTEVfUzIzNTkpICovCkxPQ1ZBTChMT0NBTEVfSUNBTEVOREFSVFlQRSwgIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lPUFRJT05BTENBTEVOREFSKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lGSVJTVERBWU9GV0VFSykgKi8KLyogTE9DVkFMKExPQ0FMRV9JRklSU1RXRUVLT0ZZRUFSKSAqLwoKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTEsImx1bmRvIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTIsIm1hcmRvIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTMsIm1lcmtyZWRvIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTQsIrxh/WRvIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTUsInZlbmRyZWRvIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTYsInNhYmF0byIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU3LCJkaW1hbuZvIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTEsImx1IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTIsIm1hIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTMsIm1lIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTQsIrxhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTUsInZlIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTYsInNhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTcsImRpIikKCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEsImphbnVhcm8iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUyLCJmZWJydWFybyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTMsIm1hcnRvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNCwiYXByaWxvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNSwibWFqbyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTYsImp1bmlvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNywianVsaW8iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU4LCJh/Wd1c3RvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FOSwic2VwdGVtYnJvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTAsIm9rdG9icm8iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMSwibm92ZW1icm8iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMiwiZGVjZW1icm8iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMywiIikKCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEsImphbiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTIsImZlYiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTMsIm1hciIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTQsImFwciIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTUsIm1haiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTYsImp1biIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTcsImp1bCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTgsImH9ZyIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTksInNlcCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEwLCJva3QiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMSwibm92IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTIsImRlYyIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEzLCIiKQoKLyogTE9DVkFMKExPQ0FMRV9TUE9TSVRJVkVTSUdOKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NORUdBVElWRVNJR04pICovCi8qIExPQ1ZBTChMT0NBTEVfSVBPU1NJR05QT1NOKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTSUdOUE9TTikgKi8KLyogTE9DVkFMKExPQ0FMRV9JUE9TU1lNUFJFQ0VERVMpICovCi8qIExPQ1ZBTChMT0NBTEVfSVBPU1NFUEJZU1BBQ0UpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR1NZTVBSRUNFREVTKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTRVBCWVNQQUNFKSAqLwovKiBMT0NWQUwoTE9DQUxFX0ZPTlRTSUdOQVRVUkUsICIiKSAqLwpMT0NWQUwoTE9DQUxFX1NJU082MzlMQU5HTkFNRSwiZW8iKQovKiBMT0NWQUwoTE9DQUxFX1NJU08zMTY2Q1RSWU5BTUUsICIiKSAqLwoK