ZGlmZiAtLWdpdCBhL2Jvb3N0L2Fzc2VydC5ocHAgYi9ib29zdC9hc3NlcnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjNzBlOTEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9hc3NlcnQuaHBwCkBAIC0wLDAgKzEsMTMxIEBACisvLworLy8gIGJvb3N0L2Fzc2VydC5ocHAgLSBCT09TVF9BU1NFUlQoZXhwcikKKy8vICAgICAgICAgICAgICAgICAgICAgQk9PU1RfQVNTRVJUX01TRyhleHByLCBtc2cpCisvLyAgICAgICAgICAgICAgICAgICAgIEJPT1NUX1ZFUklGWShleHByKQorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDcgUGV0ZXIgRGltb3YKKy8vICBDb3B5cmlnaHQgKGMpIEJlbWFuIERhd2VzIDIwMTEKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gIE5vdGU6IFRoZXJlIGFyZSBubyBpbmNsdWRlIGd1YXJkcy4gVGhpcyBpcyBpbnRlbnRpb25hbC4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdXRpbGl0eS9hc3NlcnQuaHRtbCBmb3IgZG9jdW1lbnRhdGlvbi4KKy8vCisKKy8vCisvLyBTdG9wIGluc3BlY3QgY29tcGxhaW5pbmcgYWJvdXQgdXNlIG9mICdhc3NlcnQnOgorLy8KKy8vIGJvb3N0aW5zcGVjdDpuYWFzc2VydF9tYWNybworLy8KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9BU1NFUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisjdW5kZWYgQk9PU1RfQVNTRVJUCisKKyNpZiBkZWZpbmVkKEJPT1NUX0RJU0FCTEVfQVNTRVJUUykKKworIyBkZWZpbmUgQk9PU1RfQVNTRVJUKGV4cHIpICgodm9pZCkwKQorCisjZWxpZiBkZWZpbmVkKEJPT1NUX0VOQUJMRV9BU1NFUlRfSEFORExFUikKKworI2luY2x1ZGUgPGJvb3N0L2N1cnJlbnRfZnVuY3Rpb24uaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKyAgdm9pZCBhc3NlcnRpb25fZmFpbGVkKGNoYXIgY29uc3QgKiBleHByLAorICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjb25zdCAqIGZ1bmN0aW9uLCBjaGFyIGNvbnN0ICogZmlsZSwgbG9uZyBsaW5lKTsgLy8gdXNlciBkZWZpbmVkCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZGVmaW5lIEJPT1NUX0FTU0VSVChleHByKSAoKGV4cHIpIFwKKyAgPyAoKHZvaWQpMCkgXAorICA6IDo6bmRuYm9vc3Q6OmFzc2VydGlvbl9mYWlsZWQoI2V4cHIsIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT04sIF9fRklMRV9fLCBfX0xJTkVfXykpCisKKyNlbHNlCisjIGluY2x1ZGUgPGFzc2VydC5oPiAvLyAuaCB0byBzdXBwb3J0IG9sZCBsaWJyYXJpZXMgdy9vIDxjYXNzZXJ0PiAtIGVmZmVjdCBpcyB0aGUgc2FtZQorIyBkZWZpbmUgQk9PU1RfQVNTRVJUKGV4cHIpIGFzc2VydChleHByKQorI2VuZGlmCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX0FTU0VSVF9NU0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworIyB1bmRlZiBCT09TVF9BU1NFUlRfTVNHCisKKyNpZiBkZWZpbmVkKEJPT1NUX0RJU0FCTEVfQVNTRVJUUykgfHwgZGVmaW5lZChOREVCVUcpCisKKyAgI2RlZmluZSBCT09TVF9BU1NFUlRfTVNHKGV4cHIsIG1zZykgKCh2b2lkKTApCisKKyNlbGlmIGRlZmluZWQoQk9PU1RfRU5BQkxFX0FTU0VSVF9IQU5ETEVSKQorCisgICNpbmNsdWRlIDxib29zdC9jdXJyZW50X2Z1bmN0aW9uLmhwcD4KKworICBuYW1lc3BhY2UgbmRuYm9vc3QKKyAgeworICAgIHZvaWQgYXNzZXJ0aW9uX2ZhaWxlZF9tc2coY2hhciBjb25zdCAqIGV4cHIsIGNoYXIgY29uc3QgKiBtc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNvbnN0ICogZnVuY3Rpb24sIGNoYXIgY29uc3QgKiBmaWxlLCBsb25nIGxpbmUpOyAvLyB1c2VyIGRlZmluZWQKKyAgfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworICAjZGVmaW5lIEJPT1NUX0FTU0VSVF9NU0coZXhwciwgbXNnKSAoKGV4cHIpIFwKKyAgICA/ICgodm9pZCkwKSBcCisgICAgOiA6Om5kbmJvb3N0Ojphc3NlcnRpb25fZmFpbGVkX21zZygjZXhwciwgbXNnLCBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OLCBfX0ZJTEVfXywgX19MSU5FX18pKQorCisjZWxzZQorICAjaWZuZGVmIEJPT1NUX0FTU0VSVF9IUFAKKyAgICAjZGVmaW5lIEJPT1NUX0FTU0VSVF9IUFAKKyAgICAjaW5jbHVkZSA8Y3N0ZGxpYj4KKyAgICAjaW5jbHVkZSA8aW9zdHJlYW0+CisgICAgI2luY2x1ZGUgPGJvb3N0L2N1cnJlbnRfZnVuY3Rpb24uaHBwPgorCisgICAgLy8gIElERSdzIGxpa2UgVmlzdWFsIFN0dWRpbyBwZXJmb3JtIGJldHRlciBpZiBvdXRwdXQgZ29lcyB0byBzdGQ6OmNvdXQgb3IKKyAgICAvLyAgc29tZSBvdGhlciBzdHJlYW0sIHNvIGFsbG93IHVzZXIgdG8gY29uZmlndXJlIG91dHB1dCBzdHJlYW06CisgICAgI2lmbmRlZiBCT09TVF9BU1NFUlRfTVNHX09TVFJFQU0KKyAgICAjIGRlZmluZSBCT09TVF9BU1NFUlRfTVNHX09TVFJFQU0gc3RkOjpjZXJyCisgICAgI2VuZGlmCisKKyAgICBuYW1lc3BhY2UgbmRuYm9vc3QKKyAgICB7IAorICAgICAgbmFtZXNwYWNlIGFzc2VydGlvbiAKKyAgICAgIHsgCisgICAgICAgIG5hbWVzcGFjZSBkZXRhaWwKKyAgICAgICAgeworICAgICAgICAgIGlubGluZSB2b2lkIGFzc2VydGlvbl9mYWlsZWRfbXNnKGNoYXIgY29uc3QgKiBleHByLCBjaGFyIGNvbnN0ICogbXNnLCBjaGFyIGNvbnN0ICogZnVuY3Rpb24sCisgICAgICAgICAgICBjaGFyIGNvbnN0ICogZmlsZSwgbG9uZyBsaW5lKQorICAgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX0FTU0VSVF9NU0dfT1NUUkVBTQorICAgICAgICAgICAgICA8PCAiKioqKiogSW50ZXJuYWwgUHJvZ3JhbSBFcnJvciAtIGFzc2VydGlvbiAoIiA8PCBleHByIDw8ICIpIGZhaWxlZCBpbiAiCisgICAgICAgICAgICAgIDw8IGZ1bmN0aW9uIDw8ICI6XG4iCisgICAgICAgICAgICAgIDw8IGZpbGUgPDwgJygnIDw8IGxpbmUgPDwgIik6ICIgPDwgbXNnIDw8IHN0ZDo6ZW5kbDsKKyAgICAgICAgICAgIHN0ZDo6YWJvcnQoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0gLy8gZGV0YWlsCisgICAgICB9IC8vIGFzc2VydGlvbgorICAgIH0gLy8gZGV0YWlsCisgICNlbmRpZgorCisgICNkZWZpbmUgQk9PU1RfQVNTRVJUX01TRyhleHByLCBtc2cpICgoZXhwcikgXAorICAgID8gKCh2b2lkKTApIFwKKyAgICA6IDo6bmRuYm9vc3Q6OmFzc2VydGlvbjo6ZGV0YWlsOjphc3NlcnRpb25fZmFpbGVkX21zZygjZXhwciwgbXNnLCBcCisgICAgICAgICAgQk9PU1RfQ1VSUkVOVF9GVU5DVElPTiwgX19GSUxFX18sIF9fTElORV9fKSkKKyNlbmRpZgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX1ZFUklGWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyN1bmRlZiBCT09TVF9WRVJJRlkKKworI2lmIGRlZmluZWQoQk9PU1RfRElTQUJMRV9BU1NFUlRTKSB8fCAoICFkZWZpbmVkKEJPT1NUX0VOQUJMRV9BU1NFUlRfSEFORExFUikgJiYgZGVmaW5lZChOREVCVUcpICkKKworIyBkZWZpbmUgQk9PU1RfVkVSSUZZKGV4cHIpICgodm9pZCkoZXhwcikpCisKKyNlbHNlCisKKyMgZGVmaW5lIEJPT1NUX1ZFUklGWShleHByKSBCT09TVF9BU1NFUlQoZXhwcikKKworI2VuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9jaGVja2VkX2RlbGV0ZS5ocHAgYi9ib29zdC9jaGVja2VkX2RlbGV0ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBlYzBkYgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NoZWNrZWRfZGVsZXRlLmhwcApAQCAtMCwwICsxLDY5IEBACisjaWZuZGVmIEJPT1NUX0NIRUNLRURfREVMRVRFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9DSEVDS0VEX0RFTEVURV9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYm9vc3QvY2hlY2tlZF9kZWxldGUuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMiwgMjAwMyBQZXRlciBEaW1vdgorLy8gIENvcHlyaWdodCAoYykgMjAwMyBEYW5pZWwgRnJleQorLy8gIENvcHlyaWdodCAoYykgMjAwMyBIb3dhcmQgSGlubmFudAorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdXRpbGl0eS9jaGVja2VkX2RlbGV0ZS5odG1sIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKKy8vIHZlcmlmeSB0aGF0IHR5cGVzIGFyZSBjb21wbGV0ZSBmb3IgaW5jcmVhc2VkIHNhZmV0eQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgdm9pZCBjaGVja2VkX2RlbGV0ZShUICogeCkKK3sKKyAgICAvLyBpbnRlbnRpb25hbGx5IGNvbXBsZXggLSBzaW1wbGlmaWNhdGlvbiBjYXVzZXMgcmVncmVzc2lvbnMKKyAgICB0eXBlZGVmIGNoYXIgdHlwZV9tdXN0X2JlX2NvbXBsZXRlWyBzaXplb2YoVCk/IDE6IC0xIF07CisgICAgKHZvaWQpIHNpemVvZih0eXBlX211c3RfYmVfY29tcGxldGUpOworICAgIGRlbGV0ZSB4OworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgdm9pZCBjaGVja2VkX2FycmF5X2RlbGV0ZShUICogeCkKK3sKKyAgICB0eXBlZGVmIGNoYXIgdHlwZV9tdXN0X2JlX2NvbXBsZXRlWyBzaXplb2YoVCk/IDE6IC0xIF07CisgICAgKHZvaWQpIHNpemVvZih0eXBlX211c3RfYmVfY29tcGxldGUpOworICAgIGRlbGV0ZSBbXSB4OworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgY2hlY2tlZF9kZWxldGVyCit7CisgICAgdHlwZWRlZiB2b2lkIHJlc3VsdF90eXBlOworICAgIHR5cGVkZWYgVCAqIGFyZ3VtZW50X3R5cGU7CisKKyAgICB2b2lkIG9wZXJhdG9yKCkoVCAqIHgpIGNvbnN0CisgICAgeworICAgICAgICAvLyBuZG5ib29zdDo6IGRpc2FibGVzIEFETAorICAgICAgICBuZG5ib29zdDo6Y2hlY2tlZF9kZWxldGUoeCk7CisgICAgfQorfTsKKwordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IGNoZWNrZWRfYXJyYXlfZGVsZXRlcgoreworICAgIHR5cGVkZWYgdm9pZCByZXN1bHRfdHlwZTsKKyAgICB0eXBlZGVmIFQgKiBhcmd1bWVudF90eXBlOworCisgICAgdm9pZCBvcGVyYXRvcigpKFQgKiB4KSBjb25zdAorICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OmNoZWNrZWRfYXJyYXlfZGVsZXRlKHgpOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9DSEVDS0VEX0RFTEVURV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy5ocHAgYi9ib29zdC9jb25maWcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNzU4NWUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcuaHBwCkBAIC0wLDAgKzEsNzAgQEAKKy8vICBCb29zdCBjb25maWcuaHBwIGNvbmZpZ3VyYXRpb24gaGVhZGVyIGZpbGUgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAyLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9jb25maWcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBCb29zdCBjb25maWcuaHBwIHBvbGljeSBhbmQgcmF0aW9uYWxlIGRvY3VtZW50YXRpb24gaGFzIGJlZW4gbW92ZWQgdG8KKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL2NvbmZpZworLy8KKy8vICBDQVVUSU9OOiBUaGlzIGZpbGUgaXMgaW50ZW5kZWQgdG8gYmUgY29tcGxldGVseSBzdGFibGUgLQorLy8gICAgICAgICAgIERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIQorLy8KKworI2lmbmRlZiBCT09TVF9DT05GSUdfSFBQCisjZGVmaW5lIEJPT1NUX0NPTkZJR19IUFAKKworLy8gaWYgd2UgZG9uJ3QgaGF2ZSBhIHVzZXIgY29uZmlnLCB0aGVuIHVzZSB0aGUgZGVmYXVsdCBsb2NhdGlvbjoKKyNpZiAhZGVmaW5lZChCT09TVF9VU0VSX0NPTkZJRykgJiYgIWRlZmluZWQoQk9PU1RfTk9fVVNFUl9DT05GSUcpCisjICBkZWZpbmUgQk9PU1RfVVNFUl9DT05GSUcgPGJvb3N0L2NvbmZpZy91c2VyLmhwcD4KKyNlbmRpZgorLy8gaW5jbHVkZSBpdCBmaXJzdDoKKyNpZmRlZiBCT09TVF9VU0VSX0NPTkZJRworIyAgaW5jbHVkZSBCT09TVF9VU0VSX0NPTkZJRworI2VuZGlmCisKKy8vIGlmIHdlIGRvbid0IGhhdmUgYSBjb21waWxlciBjb25maWcgc2V0LCB0cnkgYW5kIGZpbmQgb25lOgorI2lmICFkZWZpbmVkKEJPT1NUX0NPTVBJTEVSX0NPTkZJRykgJiYgIWRlZmluZWQoQk9PU1RfTk9fQ09NUElMRVJfQ09ORklHKSAmJiAhZGVmaW5lZChCT09TVF9OT19DT05GSUcpCisjICBpbmNsdWRlIDxib29zdC9jb25maWcvc2VsZWN0X2NvbXBpbGVyX2NvbmZpZy5ocHA+CisjZW5kaWYKKy8vIGlmIHdlIGhhdmUgYSBjb21waWxlciBjb25maWcsIGluY2x1ZGUgaXQgbm93OgorI2lmZGVmIEJPT1NUX0NPTVBJTEVSX0NPTkZJRworIyAgaW5jbHVkZSBCT09TVF9DT01QSUxFUl9DT05GSUcKKyNlbmRpZgorCisvLyBpZiB3ZSBkb24ndCBoYXZlIGEgc3RkIGxpYnJhcnkgY29uZmlnIHNldCwgdHJ5IGFuZCBmaW5kIG9uZToKKyNpZiAhZGVmaW5lZChCT09TVF9TVERMSUJfQ09ORklHKSAmJiAhZGVmaW5lZChCT09TVF9OT19TVERMSUJfQ09ORklHKSAmJiAhZGVmaW5lZChCT09TVF9OT19DT05GSUcpICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCisjICBpbmNsdWRlIDxib29zdC9jb25maWcvc2VsZWN0X3N0ZGxpYl9jb25maWcuaHBwPgorI2VuZGlmCisvLyBpZiB3ZSBoYXZlIGEgc3RkIGxpYnJhcnkgY29uZmlnLCBpbmNsdWRlIGl0IG5vdzoKKyNpZmRlZiBCT09TVF9TVERMSUJfQ09ORklHCisjICBpbmNsdWRlIEJPT1NUX1NURExJQl9DT05GSUcKKyNlbmRpZgorCisvLyBpZiB3ZSBkb24ndCBoYXZlIGEgcGxhdGZvcm0gY29uZmlnIHNldCwgdHJ5IGFuZCBmaW5kIG9uZToKKyNpZiAhZGVmaW5lZChCT09TVF9QTEFURk9STV9DT05GSUcpICYmICFkZWZpbmVkKEJPT1NUX05PX1BMQVRGT1JNX0NPTkZJRykgJiYgIWRlZmluZWQoQk9PU1RfTk9fQ09ORklHKQorIyAgaW5jbHVkZSA8Ym9vc3QvY29uZmlnL3NlbGVjdF9wbGF0Zm9ybV9jb25maWcuaHBwPgorI2VuZGlmCisvLyBpZiB3ZSBoYXZlIGEgcGxhdGZvcm0gY29uZmlnLCBpbmNsdWRlIGl0IG5vdzoKKyNpZmRlZiBCT09TVF9QTEFURk9STV9DT05GSUcKKyMgIGluY2x1ZGUgQk9PU1RfUExBVEZPUk1fQ09ORklHCisjZW5kaWYKKworLy8gZ2V0IGNvbmZpZyBzdWZmaXggY29kZToKKyNpbmNsdWRlIDxib29zdC9jb25maWcvc3VmZml4LmhwcD4KKworI2VuZGlmICAvLyBCT09TVF9DT05GSUdfSFBQCisKKworCisKKworCisKKworCisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2FiaS9ib3JsYW5kX3ByZWZpeC5ocHAgYi9ib29zdC9jb25maWcvYWJpL2JvcmxhbmRfcHJlZml4LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTBlNWFlCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2FiaS9ib3JsYW5kX3ByZWZpeC5ocHAKQEAgLTAsMCArMSwyNyBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDMuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIGZvciBDKysgQnVpbGRlciB0aGUgZm9sbG93aW5nIG9wdGlvbnMgZWZmZWN0IHRoZSBBQkk6CisvLworLy8gIC1iIChvbiBvciBvZmYgLSBlZmZlY3QgZW11bSBzaXplcykKKy8vICAtVnggIChvbiBvciBvZmYgLSBlbXB0eSBtZW1iZXJzKQorLy8gIC1WZSAob24gb3Igb2ZmIC0gZW1wdHkgYmFzZSBjbGFzc2VzKQorLy8gIC1hWCAoYWxpZ25tZW50IC0gNSBvcHRpb25zKS4KKy8vICAtcFggKENhbGxpbmcgY29udmVudGlvbiAtIDQgb3B0aW9ucykKKy8vICAtVm1YIChtZW1iZXIgcG9pbnRlciBzaXplIGFuZCBsYXlvdXQgLSA1IG9wdGlvbnMpCisvLyAgLVZDIChvbiBvciBvZmYsIGNoYW5nZXMgbmFtZSBtYW5nbGluZykKKy8vICAtVmwgKG9uIG9yIG9mZiwgY2hhbmdlcyBzdHJ1Y3QgbGF5b3V0KS4KKworLy8gIEluIGFkZGl0aW9uIHRoZSBmb2xsb3dpbmcgd2FybmluZ3MgYXJlIHN1ZmZpY2llbnRseSBhbm5veWluZyAoYW5kCisvLyAgdW5maXhhYmxlKSB0byBoYXZlIHRoZW0gdHVybmVkIG9mZiBieSBkZWZhdWx0OgorLy8KKy8vICA4MDI3IC0gZnVuY3Rpb25zIGNvbnRhaW5pbmcgW2Zvcnx3aGlsZV0gbG9vcHMgYXJlIG5vdCBleHBhbmRlZCBpbmxpbmUKKy8vICA4MDI2IC0gZnVuY3Rpb25zIHRha2luZyBjbGFzcyBieSB2YWx1ZSBhcmd1bWVudHMgYXJlIG5vdCBleHBhbmRlZCBpbmxpbmUKKworI3ByYWdtYSBub3B1c2hvcHR3YXJuCisjICBwcmFnbWEgb3B0aW9uIHB1c2ggLWE4IC1WeC0gLVZlLSAtYi0gLXBjIC1WbXYgLVZDLSAtVmwtIC13LTgwMjcgLXctODAyNgorCisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2FiaS9ib3JsYW5kX3N1ZmZpeC5ocHAgYi9ib29zdC9jb25maWcvYWJpL2JvcmxhbmRfc3VmZml4LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDA1MzVmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2FiaS9ib3JsYW5kX3N1ZmZpeC5ocHAKQEAgLTAsMCArMSwxMiBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDMuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworIyAgcHJhZ21hIG9wdGlvbiBwb3AKKyNwcmFnbWEgbm9wdXNob3B0d2FybgorCisKKworCisKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9hYmkvbXN2Y19wcmVmaXguaHBwIGIvYm9vc3QvY29uZmlnL2FiaS9tc3ZjX3ByZWZpeC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdmMDZjZAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9hYmkvbXN2Y19wcmVmaXguaHBwCkBAIC0wLDAgKzEsMjIgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAzLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vCisvLyBCb29zdCBiaW5hcmllcyBhcmUgYnVpbHQgd2l0aCB0aGUgY29tcGlsZXIncyBkZWZhdWx0IEFCSSBzZXR0aW5ncywKKy8vIGlmIHRoZSB1c2VyIGNoYW5nZXMgdGhlaXIgZGVmYXVsdCBhbGlnbm1lbnQgaW4gdGhlIFZTIElERSB0aGVuIHRoZWlyCisvLyBjb2RlIHdpbGwgbm8gbG9uZ2VyIGJlIGJpbmFyeSBjb21wYXRpYmxlIHdpdGggdGhlIGJqYW0gYnVpbHQgYmluYXJpZXMKKy8vIHVubGVzcyB0aGlzIGhlYWRlciBpcyBpbmNsdWRlZCB0byBmb3JjZSBCb29zdCBjb2RlIGludG8gYSBjb25zaXN0ZW50IEFCSS4KKy8vCisvLyBOb3RlIHRoYXQgaW5jbHVzaW9uIG9mIHRoaXMgaGVhZGVyIGlzIG9ubHkgbmVjZXNzYXJ5IGZvciBsaWJyYXJpZXMgd2l0aCAKKy8vIHNlcGFyYXRlIHNvdXJjZSwgaGVhZGVyIG9ubHkgbGlicmFyaWVzIERPIE5PVCBuZWVkIHRoaXMgYXMgbG9uZyBhcyBhbGwKKy8vIHRyYW5zbGF0aW9uIHVuaXRzIGFyZSBidWlsdCB3aXRoIHRoZSBzYW1lIG9wdGlvbnMuCisvLworI2lmIGRlZmluZWQoX01fWDY0KQorIyAgcHJhZ21hIHBhY2socHVzaCwxNikKKyNlbHNlCisjICBwcmFnbWEgcGFjayhwdXNoLDgpCisjZW5kaWYKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvYWJpL21zdmNfc3VmZml4LmhwcCBiL2Jvb3N0L2NvbmZpZy9hYmkvbXN2Y19zdWZmaXguaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2NGQ3ODMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvYWJpL21zdmNfc3VmZml4LmhwcApAQCAtMCwwICsxLDggQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAzLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNwcmFnbWEgcGFjayhwb3ApCisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2FiaV9wcmVmaXguaHBwIGIvYm9vc3QvY29uZmlnL2FiaV9wcmVmaXguaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMTM0NzQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvYWJpX3ByZWZpeC5ocHAKQEAgLTAsMCArMSwyNSBAQAorLy8gIGFiaV9wcmVmaXggaGVhZGVyICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworLy8gKGMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMworICAgCisvLyBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisKKyNpZm5kZWYgQk9PU1RfQ09ORklHX0FCSV9QUkVGSVhfSFBQCisjIGRlZmluZSBCT09TVF9DT05GSUdfQUJJX1BSRUZJWF9IUFAKKyNlbHNlCisjIGVycm9yIGRvdWJsZSBpbmNsdXNpb24gb2YgaGVhZGVyIGJvb3N0L2NvbmZpZy9hYmlfcHJlZml4LmhwcCBpcyBhbiBlcnJvcgorI2VuZGlmCisKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCisvLyB0aGlzIG11c3Qgb2NjdXIgYWZ0ZXIgYWxsIG90aGVyIGluY2x1ZGVzIGFuZCBiZWZvcmUgYW55IGNvZGUgYXBwZWFyczoKKyNpZmRlZiBCT09TVF9IQVNfQUJJX0hFQURFUlMKKyMgIGluY2x1ZGUgQk9PU1RfQUJJX1BSRUZJWAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBfX0JPUkxBTkRDX18gKQorI3ByYWdtYSBub3B1c2hvcHR3YXJuCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2FiaV9zdWZmaXguaHBwIGIvYm9vc3QvY29uZmlnL2FiaV9zdWZmaXguaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzOTE2MTYKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvYWJpX3N1ZmZpeC5ocHAKQEAgLTAsMCArMSwyNyBAQAorLy8gIGFiaV9zdWZmZml4IGhlYWRlciAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vIChjKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDMKKyAgIAorLy8gVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorCisvLyBUaGlzIGhlYWRlciBzaG91bGQgYmUgI2luY2x1ZGVkIEFGVEVSIGNvZGUgdGhhdCB3YXMgcHJlY2VkZWQgYnkgYSAjaW5jbHVkZQorLy8gPGJvb3N0L2NvbmZpZy9hYmlfcHJlZml4LmhwcD4uCisKKyNpZm5kZWYgQk9PU1RfQ09ORklHX0FCSV9QUkVGSVhfSFBQCisjIGVycm9yIEhlYWRlciBib29zdC9jb25maWcvYWJpX3N1ZmZpeC5ocHAgbXVzdCBvbmx5IGJlIHVzZWQgYWZ0ZXIgYm9vc3QvY29uZmlnL2FiaV9wcmVmaXguaHBwCisjZWxzZQorIyB1bmRlZiBCT09TVF9DT05GSUdfQUJJX1BSRUZJWF9IUFAKKyNlbmRpZgorCisvLyB0aGUgc3VmZml4IGhlYWRlciBvY2N1cnMgYWZ0ZXIgYWxsIG9mIG91ciBjb2RlOgorI2lmZGVmIEJPT1NUX0hBU19BQklfSEVBREVSUworIyAgaW5jbHVkZSBCT09TVF9BQklfU1VGRklYCisjZW5kaWYKKworI2lmIGRlZmluZWQoIF9fQk9STEFORENfXyApCisjcHJhZ21hIG5vcHVzaG9wdHdhcm4KKyNlbmRpZgorCisKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9hdXRvX2xpbmsuaHBwIGIvYm9vc3QvY29uZmlnL2F1dG9fbGluay5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM2ZDA2YQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9hdXRvX2xpbmsuaHBwCkBAIC0wLDAgKzEsNDIzIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMy4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisgLyoKKyAgKiAgIExPQ0FUSU9OOiAgICBzZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisgICogICBGSUxFICAgICAgICAgYXV0b19saW5rLmhwcAorICAqICAgVkVSU0lPTiAgICAgIHNlZSA8Ym9vc3QvdmVyc2lvbi5ocHA+CisgICogICBERVNDUklQVElPTjogQXV0b21hdGljIGxpYnJhcnkgaW5jbHVzaW9uIGZvciBCb3JsYW5kL01pY3Jvc29mdCBjb21waWxlcnMuCisgICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKK1VTQUdFOgorfn5+fn5+CisKK0JlZm9yZSBpbmNsdWRpbmcgdGhpcyBoZWFkZXIgeW91IG11c3QgZGVmaW5lIG9uZSBvciBtb3JlIG9mIGRlZmluZSB0aGUgZm9sbG93aW5nIG1hY3JvczoKKworQk9PU1RfTElCX05BTUU6ICAgICAgICAgICBSZXF1aXJlZDogQSBzdHJpbmcgY29udGFpbmluZyB0aGUgYmFzZW5hbWUgb2YgdGhlIGxpYnJhcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlIGJvb3N0X3JlZ2V4LgorQk9PU1RfTElCX1RPT0xTRVQ6ICAgICAgICBPcHRpb25hbDogdGhlIGJhc2UgbmFtZSBvZiB0aGUgdG9vbHNldC4KK0JPT1NUX0RZTl9MSU5LOiAgICAgICAgICAgT3B0aW9uYWw6IHdoZW4gc2V0IGxpbmsgdG8gZGxsIHJhdGhlciB0aGFuIHN0YXRpYyBsaWJyYXJ5LgorQk9PU1RfTElCX0RJQUdOT1NUSUM6ICAgICBPcHRpb25hbDogd2hlbiBzZXQgdGhlIGhlYWRlciB3aWxsIHByaW50IG91dCB0aGUgbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICBvZiB0aGUgbGlicmFyeSBzZWxlY3RlZCAodXNlZnVsIGZvciBkZWJ1Z2dpbmcpLgorQk9PU1RfQVVUT19MSU5LX05PTUFOR0xFOiBTcGVjaWZpZXMgdGhhdCB3ZSBzaG91bGQgbGluayB0byBCT09TVF9MSUJfTkFNRS5saWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJhdGhlciB0aGFuIGEgbWFuZ2xlZC1uYW1lIHZlcnNpb24uCitCT09TVF9BVVRPX0xJTktfVEFHR0VEOiAgIFNwZWNpZmllcyB0aGF0IHdlIGxpbmsgdG8gbGlicmFyaWVzIGJ1aWx0IHdpdGggdGhlIC0tbGF5b3V0PXRhZ2dlZCBvcHRpb24uCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgZXNzZW50aWFsbHkgdGhlIHNhbWUgYXMgdGhlIGRlZmF1bHQgbmFtZS1tYW5nbGVkIHZlcnNpb24sIGJ1dCB3aXRob3V0CisgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBjb21waWxlciBuYW1lIGFuZCB2ZXJzaW9uLCBvciB0aGUgQm9vc3QgdmVyc2lvbi4gIEp1c3QgdGhlIGJ1aWxkIG9wdGlvbnMuCisKK1RoZXNlIG1hY3JvcyB3aWxsIGJlIHVuZGVmJ2VkIGF0IHRoZSBlbmQgb2YgdGhlIGhlYWRlciwgZnVydGhlciB0aGlzIGhlYWRlcgoraGFzIG5vIGluY2x1ZGUgZ3VhcmRzIC0gc28gYmUgc3VyZSB0byBpbmNsdWRlIGl0IG9ubHkgb25jZSBmcm9tIHlvdXIgbGlicmFyeSEKKworQWxnb3JpdGhtOgorfn5+fn5+fn5+fgorCitMaWJyYXJpZXMgZm9yIEJvcmxhbmQgYW5kIE1pY3Jvc29mdCBjb21waWxlcnMgYXJlIGF1dG9tYXRpY2FsbHkKK3NlbGVjdGVkIGhlcmUsIHRoZSBuYW1lIG9mIHRoZSBsaWIgaXMgc2VsZWN0ZWQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcKK2Zvcm11bGE6CisKK0JPT1NUX0xJQl9QUkVGSVgKKyAgICsgQk9PU1RfTElCX05BTUUKKyAgICsgIl8iCisgICArIEJPT1NUX0xJQl9UT09MU0VUCisgICArIEJPT1NUX0xJQl9USFJFQURfT1BUCisgICArIEJPT1NUX0xJQl9SVF9PUFQKKyAgICItIgorICAgKyBCT09TVF9MSUJfVkVSU0lPTgorCitUaGVzZSBhcmUgZGVmaW5lZCBhczoKKworQk9PU1RfTElCX1BSRUZJWDogICAgICJsaWIiIGZvciBzdGF0aWMgbGlicmFyaWVzIG90aGVyd2lzZSAiIi4KKworQk9PU1RfTElCX05BTUU6ICAgICAgIFRoZSBiYXNlIG5hbWUgb2YgdGhlIGxpYiAoIGZvciBleGFtcGxlIGJvb3N0X3JlZ2V4KS4KKworQk9PU1RfTElCX1RPT0xTRVQ6ICAgIFRoZSBjb21waWxlciB0b29sc2V0IG5hbWUgKHZjNiwgdmM3LCBiY2I1IGV0YykuCisKK0JPT1NUX0xJQl9USFJFQURfT1BUOiAiLW10IiBmb3IgbXVsdGl0aHJlYWQgYnVpbGRzLCBvdGhlcndpc2Ugbm90aGluZy4KKworQk9PU1RfTElCX1JUX09QVDogICAgIEEgc3VmZml4IHRoYXQgaW5kaWNhdGVzIHRoZSBydW50aW1lIGxpYnJhcnkgdXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICBjb250YWlucyBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIGxldHRlcnMgYWZ0ZXIKKyAgICAgICAgICAgICAgICAgICAgICBhIGh5cGhlbjoKKworICAgICAgICAgICAgICAgICAgICAgIHMgICAgICBzdGF0aWMgcnVudGltZSAoZHluYW1pYyBpZiBub3QgcHJlc2VudCkuCisgICAgICAgICAgICAgICAgICAgICAgZyAgICAgIGRlYnVnL2RpYWdub3N0aWMgcnVudGltZSAocmVsZWFzZSBpZiBub3QgcHJlc2VudCkuCisgICAgICAgICAgICAgICAgICAgICAgeSAgICAgIFB5dGhvbiBkZWJ1Zy9kaWFnbm9zdGljIHJ1bnRpbWUgKHJlbGVhc2UgaWYgbm90IHByZXNlbnQpLgorICAgICAgICAgICAgICAgICAgICAgIGQgICAgICBkZWJ1ZyBidWlsZCAocmVsZWFzZSBpZiBub3QgcHJlc2VudCkuCisgICAgICAgICAgICAgICAgICAgICAgcCAgICAgIFNUTHBvcnQgYnVpbGQuCisgICAgICAgICAgICAgICAgICAgICAgbiAgICAgIFNUTHBvcnQgYnVpbGQgd2l0aG91dCBpdHMgSU9TdHJlYW1zLgorCitCT09TVF9MSUJfVkVSU0lPTjogICAgVGhlIEJvb3N0IHZlcnNpb24sIGluIHRoZSBmb3JtIHhfeSwgZm9yIEJvb3N0IHZlcnNpb24geC55LgorCisKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCisjICBpZm5kZWYgQk9PU1RfQ09ORklHX0hQUAorIyAgICAgaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKyMgIGVuZGlmCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAhZGVmaW5lZChfX01XRVJLU19fKSAmJiAhZGVmaW5lZChfX0VER19WRVJTSU9OX18pCisvLworLy8gQyBsYW5ndWFnZSBjb21wYXRhYmlsaXR5IChubywgaG9uZXN0bHkpCisvLworIyAgZGVmaW5lIEJPT1NUX01TVkMgX01TQ19WRVIKKyMgIGRlZmluZSBCT09TVF9TVFJJTkdJWkUoWCkgQk9PU1RfRE9fU1RSSU5HSVpFKFgpCisjICBkZWZpbmUgQk9PU1RfRE9fU1RSSU5HSVpFKFgpICNYCisjZW5kaWYKKy8vCisvLyBPbmx5IGluY2x1ZGUgd2hhdCBmb2xsb3dzIGZvciBrbm93biBhbmQgc3VwcG9ydGVkIGNvbXBpbGVyczoKKy8vCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKSBcCisgICAgfHwgZGVmaW5lZChfX0JPUkxBTkRDX18pIFwKKyAgICB8fCAoZGVmaW5lZChfX01XRVJLU19fKSAmJiBkZWZpbmVkKF9XSU4zMikgJiYgKF9fTVdFUktTX18gPj0gMHgzMDAwKSkgXAorICAgIHx8IChkZWZpbmVkKF9fSUNMKSAmJiBkZWZpbmVkKF9NU0NfRVhURU5TSU9OUykgJiYgKF9NU0NfVkVSID49IDEyMDApKQorCisjaWZuZGVmIEJPT1NUX1ZFUlNJT05fSFBQCisjICBpbmNsdWRlIDxib29zdC92ZXJzaW9uLmhwcD4KKyNlbmRpZgorCisjaWZuZGVmIEJPT1NUX0xJQl9OQU1FCisjICBlcnJvciAiTWFjcm8gQk9PU1RfTElCX05BTUUgbm90IHNldCAoaW50ZXJuYWwgZXJyb3IpIgorI2VuZGlmCisKKy8vCisvLyBlcnJvciBjaGVjazoKKy8vCisjaWYgZGVmaW5lZChfX01TVkNfUlVOVElNRV9DSEVDS1MpICYmICFkZWZpbmVkKF9ERUJVRykKKyMgIHByYWdtYSBtZXNzYWdlKCJVc2luZyB0aGUgL1JUQyBvcHRpb24gd2l0aG91dCBzcGVjaWZ5aW5nIGEgZGVidWcgcnVudGltZSB3aWxsIGxlYWQgdG8gbGlua2VyIGVycm9ycyIpCisjICBwcmFnbWEgbWVzc2FnZSgiSGludDogZ28gdG8gdGhlIGNvZGUgZ2VuZXJhdGlvbiBvcHRpb25zIGFuZCBzd2l0Y2ggdG8gb25lIG9mIHRoZSBkZWJ1Z2dpbmcgcnVudGltZXMiKQorIyAgZXJyb3IgIkluY29tcGF0aWJsZSBidWlsZCBvcHRpb25zIgorI2VuZGlmCisvLworLy8gc2VsZWN0IHRvb2xzZXQgaWYgbm90IGRlZmluZWQgYWxyZWFkeToKKy8vCisjaWZuZGVmIEJPT1NUX0xJQl9UT09MU0VUCisjICBpZiBkZWZpbmVkKEJPT1NUX01TVkMpICYmIChCT09TVF9NU1ZDIDwgMTIwMCkKKyAgICAvLyBOb3RlOiBubyBjb21waWxlcnMgYmVmb3JlIDEyMDAgYXJlIHN1cHBvcnRlZAorIyAgZWxpZiBkZWZpbmVkKEJPT1NUX01TVkMpICYmIChCT09TVF9NU1ZDIDwgMTMwMCkKKworIyAgICBpZmRlZiBVTkRFUl9DRQorICAgICAgIC8vIGVWQzQ6CisjICAgICAgZGVmaW5lIEJPT1NUX0xJQl9UT09MU0VUICJldmM0IgorIyAgICBlbHNlCisgICAgICAgLy8gdmM2OgorIyAgICAgIGRlZmluZSBCT09TVF9MSUJfVE9PTFNFVCAidmM2IgorIyAgICBlbmRpZgorCisjICBlbGlmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgKEJPT1NUX01TVkMgPCAxMzEwKQorCisgICAgIC8vIHZjNzoKKyMgICAgZGVmaW5lIEJPT1NUX0xJQl9UT09MU0VUICJ2YzciCisKKyMgIGVsaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiAoQk9PU1RfTVNWQyA8IDE0MDApCisKKyAgICAgLy8gdmM3MToKKyMgICAgZGVmaW5lIEJPT1NUX0xJQl9UT09MU0VUICJ2YzcxIgorCisjICBlbGlmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgKEJPT1NUX01TVkMgPCAxNTAwKQorCisgICAgIC8vIHZjODA6CisjICAgIGRlZmluZSBCT09TVF9MSUJfVE9PTFNFVCAidmM4MCIKKworIyAgZWxpZiBkZWZpbmVkKEJPT1NUX01TVkMpICYmIChCT09TVF9NU1ZDIDwgMTYwMCkKKworICAgICAvLyB2YzkwOgorIyAgICBkZWZpbmUgQk9PU1RfTElCX1RPT0xTRVQgInZjOTAiCisKKyMgIGVsaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiAoQk9PU1RfTVNWQyA8IDE3MDApCisKKyAgICAgLy8gdmMxMDoKKyMgICAgZGVmaW5lIEJPT1NUX0xJQl9UT09MU0VUICJ2YzEwMCIKKworIyAgZWxpZiBkZWZpbmVkKEJPT1NUX01TVkMpCisKKyAgICAgLy8gdmMxMToKKyMgICAgZGVmaW5lIEJPT1NUX0xJQl9UT09MU0VUICJ2YzExMCIKKworIyAgZWxpZiBkZWZpbmVkKF9fQk9STEFORENfXykKKworICAgICAvLyBDQnVpbGRlciA2OgorIyAgICBkZWZpbmUgQk9PU1RfTElCX1RPT0xTRVQgImJjYiIKKworIyAgZWxpZiBkZWZpbmVkKF9fSUNMKQorCisgICAgIC8vIEludGVsIEMrKywgbm8gdmVyc2lvbiBudW1iZXI6CisjICAgIGRlZmluZSBCT09TVF9MSUJfVE9PTFNFVCAiaXciCisKKyMgIGVsaWYgZGVmaW5lZChfX01XRVJLU19fKSAmJiAoX19NV0VSS1NfXyA8PSAweDMxRkYgKQorCisgICAgIC8vIE1ldHJvd2Vya3MgQ29kZVdhcnJpb3IgOC54CisjICAgIGRlZmluZSBCT09TVF9MSUJfVE9PTFNFVCAiY3c4IgorCisjICBlbGlmIGRlZmluZWQoX19NV0VSS1NfXykgJiYgKF9fTVdFUktTX18gPD0gMHgzMkZGICkKKworICAgICAvLyBNZXRyb3dlcmtzIENvZGVXYXJyaW9yIDkueAorIyAgICBkZWZpbmUgQk9PU1RfTElCX1RPT0xTRVQgImN3OSIKKworIyAgZW5kaWYKKyNlbmRpZiAvLyBCT09TVF9MSUJfVE9PTFNFVAorCisvLworLy8gc2VsZWN0IHRocmVhZCBvcHQ6CisvLworI2lmIGRlZmluZWQoX01UKSB8fCBkZWZpbmVkKF9fTVRfXykKKyMgIGRlZmluZSBCT09TVF9MSUJfVEhSRUFEX09QVCAiLW10IgorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9MSUJfVEhSRUFEX09QVAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fTVdFUktTX18pCisKKyMgIGlmZGVmIF9ETEwKKworIyAgICAgaWYgKGRlZmluZWQoX19TR0lfU1RMX1BPUlQpIHx8IGRlZmluZWQoX1NUTFBPUlRfVkVSU0lPTikpICYmIChkZWZpbmVkKF9TVExQX09XTl9JT1NUUkVBTVMpIHx8IGRlZmluZWQoX19TVExfT1dOX0lPU1RSRUFNUykpCisKKyMgICAgICAgIGlmIGRlZmluZWQoX0RFQlVHKSAmJiAoZGVmaW5lZChfX1NUTF9ERUJVRykgfHwgZGVmaW5lZChfU1RMUF9ERUJVRykpXAorICAgICAgICAgICAgICAgJiYgZGVmaW5lZChCT09TVF9ERUJVR19QWVRIT04pICYmIGRlZmluZWQoQk9PU1RfTElOS0lOR19QWVRIT04pCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1neWRwIgorIyAgICAgICAgZWxpZiBkZWZpbmVkKF9ERUJVRykgJiYgKGRlZmluZWQoX19TVExfREVCVUcpIHx8IGRlZmluZWQoX1NUTFBfREVCVUcpKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItZ2RwIgorIyAgICAgICAgZWxpZiBkZWZpbmVkKF9ERUJVRylcCisgICAgICAgICAgICAgICAmJiBkZWZpbmVkKEJPT1NUX0RFQlVHX1BZVEhPTikgJiYgZGVmaW5lZChCT09TVF9MSU5LSU5HX1BZVEhPTikKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLWd5ZHAiCisjICAgICAgICAgICAgcHJhZ21hIG1lc3NhZ2UoIndhcm5pbmc6IFNUTHBvcnQgZGVidWcgdmVyc2lvbnMgYXJlIGJ1aWx0IHdpdGggL0RfU1RMUF9ERUJVRz0xIikKKyMgICAgICAgICAgICBlcnJvciAiQnVpbGQgb3B0aW9ucyBhcmVuJ3QgY29tcGF0aWJsZSB3aXRoIHByZS1idWlsdCBsaWJyYXJpZXMiCisjICAgICAgICBlbGlmIGRlZmluZWQoX0RFQlVHKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItZ2RwIgorIyAgICAgICAgICAgIHByYWdtYSBtZXNzYWdlKCJ3YXJuaW5nOiBTVExwb3J0IGRlYnVnIHZlcnNpb25zIGFyZSBidWlsdCB3aXRoIC9EX1NUTFBfREVCVUc9MSIpCisjICAgICAgICAgICAgZXJyb3IgIkJ1aWxkIG9wdGlvbnMgYXJlbid0IGNvbXBhdGlibGUgd2l0aCBwcmUtYnVpbHQgbGlicmFyaWVzIgorIyAgICAgICAgZWxzZQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItcCIKKyMgICAgICAgIGVuZGlmCisKKyMgICAgIGVsaWYgZGVmaW5lZChfX1NHSV9TVExfUE9SVCkgfHwgZGVmaW5lZChfU1RMUE9SVF9WRVJTSU9OKQorCisjICAgICAgICBpZiBkZWZpbmVkKF9ERUJVRykgJiYgKGRlZmluZWQoX19TVExfREVCVUcpIHx8IGRlZmluZWQoX1NUTFBfREVCVUcpKVwKKyAgICAgICAgICAgICAgICYmIGRlZmluZWQoQk9PU1RfREVCVUdfUFlUSE9OKSAmJiBkZWZpbmVkKEJPT1NUX0xJTktJTkdfUFlUSE9OKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItZ3lkcG4iCisjICAgICAgICBlbGlmIGRlZmluZWQoX0RFQlVHKSAmJiAoZGVmaW5lZChfX1NUTF9ERUJVRykgfHwgZGVmaW5lZChfU1RMUF9ERUJVRykpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1nZHBuIgorIyAgICAgICAgZWxpZiBkZWZpbmVkKF9ERUJVRylcCisgICAgICAgICAgICAgICAmJiBkZWZpbmVkKEJPT1NUX0RFQlVHX1BZVEhPTikgJiYgZGVmaW5lZChCT09TVF9MSU5LSU5HX1BZVEhPTikKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLWd5ZHBuIgorIyAgICAgICAgICAgIHByYWdtYSBtZXNzYWdlKCJ3YXJuaW5nOiBTVExwb3J0IGRlYnVnIHZlcnNpb25zIGFyZSBidWlsdCB3aXRoIC9EX1NUTFBfREVCVUc9MSIpCisjICAgICAgICAgICAgZXJyb3IgIkJ1aWxkIG9wdGlvbnMgYXJlbid0IGNvbXBhdGlibGUgd2l0aCBwcmUtYnVpbHQgbGlicmFyaWVzIgorIyAgICAgICAgZWxpZiBkZWZpbmVkKF9ERUJVRykKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLWdkcG4iCisjICAgICAgICAgICAgcHJhZ21hIG1lc3NhZ2UoIndhcm5pbmc6IFNUTHBvcnQgZGVidWcgdmVyc2lvbnMgYXJlIGJ1aWx0IHdpdGggL0RfU1RMUF9ERUJVRz0xIikKKyMgICAgICAgICAgICBlcnJvciAiQnVpbGQgb3B0aW9ucyBhcmVuJ3QgY29tcGF0aWJsZSB3aXRoIHByZS1idWlsdCBsaWJyYXJpZXMiCisjICAgICAgICBlbHNlCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1wbiIKKyMgICAgICAgIGVuZGlmCisKKyMgICAgIGVsc2UKKworIyAgICAgICAgaWYgZGVmaW5lZChfREVCVUcpICYmIGRlZmluZWQoQk9PU1RfREVCVUdfUFlUSE9OKSAmJiBkZWZpbmVkKEJPT1NUX0xJTktJTkdfUFlUSE9OKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItZ3lkIgorIyAgICAgICAgZWxpZiBkZWZpbmVkKF9ERUJVRykKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLWdkIgorIyAgICAgICAgZWxzZQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUCisjICAgICAgICBlbmRpZgorCisjICAgICBlbmRpZgorCisjICBlbHNlCisKKyMgICAgIGlmIChkZWZpbmVkKF9fU0dJX1NUTF9QT1JUKSB8fCBkZWZpbmVkKF9TVExQT1JUX1ZFUlNJT04pKSAmJiAoZGVmaW5lZChfU1RMUF9PV05fSU9TVFJFQU1TKSB8fCBkZWZpbmVkKF9fU1RMX09XTl9JT1NUUkVBTVMpKQorCisjICAgICAgICBpZiBkZWZpbmVkKF9ERUJVRykgJiYgKGRlZmluZWQoX19TVExfREVCVUcpIHx8IGRlZmluZWQoX1NUTFBfREVCVUcpKVwKKyAgICAgICAgICAgICAgICYmIGRlZmluZWQoQk9PU1RfREVCVUdfUFlUSE9OKSAmJiBkZWZpbmVkKEJPT1NUX0xJTktJTkdfUFlUSE9OKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItc2d5ZHAiCisjICAgICAgICBlbGlmIGRlZmluZWQoX0RFQlVHKSAmJiAoZGVmaW5lZChfX1NUTF9ERUJVRykgfHwgZGVmaW5lZChfU1RMUF9ERUJVRykpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1zZ2RwIgorIyAgICAgICAgZWxpZiBkZWZpbmVkKF9ERUJVRylcCisgICAgICAgICAgICAgICAmJiBkZWZpbmVkKEJPT1NUX0RFQlVHX1BZVEhPTikgJiYgZGVmaW5lZChCT09TVF9MSU5LSU5HX1BZVEhPTikKKyMgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1zZ3lkcCIKKyMgICAgICAgICAgICBwcmFnbWEgbWVzc2FnZSgid2FybmluZzogU1RMcG9ydCBkZWJ1ZyB2ZXJzaW9ucyBhcmUgYnVpbHQgd2l0aCAvRF9TVExQX0RFQlVHPTEiKQorIyAgICAgICAgICAgIGVycm9yICJCdWlsZCBvcHRpb25zIGFyZW4ndCBjb21wYXRpYmxlIHdpdGggcHJlLWJ1aWx0IGxpYnJhcmllcyIKKyMgICAgICAgIGVsaWYgZGVmaW5lZChfREVCVUcpCisjICAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItc2dkcCIKKyMgICAgICAgICAgICBwcmFnbWEgbWVzc2FnZSgid2FybmluZzogU1RMcG9ydCBkZWJ1ZyB2ZXJzaW9ucyBhcmUgYnVpbHQgd2l0aCAvRF9TVExQX0RFQlVHPTEiKQorIyAgICAgICAgICAgIGVycm9yICJCdWlsZCBvcHRpb25zIGFyZW4ndCBjb21wYXRpYmxlIHdpdGggcHJlLWJ1aWx0IGxpYnJhcmllcyIKKyMgICAgICAgIGVsc2UKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLXNwIgorIyAgICAgICAgZW5kaWYKKworIyAgICAgZWxpZiBkZWZpbmVkKF9fU0dJX1NUTF9QT1JUKSB8fCBkZWZpbmVkKF9TVExQT1JUX1ZFUlNJT04pCisKKyMgICAgICAgIGlmIGRlZmluZWQoX0RFQlVHKSAmJiAoZGVmaW5lZChfX1NUTF9ERUJVRykgfHwgZGVmaW5lZChfU1RMUF9ERUJVRykpXAorICAgICAgICAgICAgICAgJiYgZGVmaW5lZChCT09TVF9ERUJVR19QWVRIT04pICYmIGRlZmluZWQoQk9PU1RfTElOS0lOR19QWVRIT04pCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1zZ3lkcG4iCisjICAgICAgICBlbGlmIGRlZmluZWQoX0RFQlVHKSAmJiAoZGVmaW5lZChfX1NUTF9ERUJVRykgfHwgZGVmaW5lZChfU1RMUF9ERUJVRykpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1zZ2RwbiIKKyMgICAgICAgIGVsaWYgZGVmaW5lZChfREVCVUcpXAorICAgICAgICAgICAgICAgJiYgZGVmaW5lZChCT09TVF9ERUJVR19QWVRIT04pICYmIGRlZmluZWQoQk9PU1RfTElOS0lOR19QWVRIT04pCisjICAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItc2d5ZHBuIgorIyAgICAgICAgICAgIHByYWdtYSBtZXNzYWdlKCJ3YXJuaW5nOiBTVExwb3J0IGRlYnVnIHZlcnNpb25zIGFyZSBidWlsdCB3aXRoIC9EX1NUTFBfREVCVUc9MSIpCisjICAgICAgICAgICAgZXJyb3IgIkJ1aWxkIG9wdGlvbnMgYXJlbid0IGNvbXBhdGlibGUgd2l0aCBwcmUtYnVpbHQgbGlicmFyaWVzIgorIyAgICAgICAgZWxpZiBkZWZpbmVkKF9ERUJVRykKKyMgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1zZ2RwbiIKKyMgICAgICAgICAgICBwcmFnbWEgbWVzc2FnZSgid2FybmluZzogU1RMcG9ydCBkZWJ1ZyB2ZXJzaW9ucyBhcmUgYnVpbHQgd2l0aCAvRF9TVExQX0RFQlVHPTEiKQorIyAgICAgICAgICAgIGVycm9yICJCdWlsZCBvcHRpb25zIGFyZW4ndCBjb21wYXRpYmxlIHdpdGggcHJlLWJ1aWx0IGxpYnJhcmllcyIKKyMgICAgICAgIGVsc2UKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLXNwbiIKKyMgICAgICAgIGVuZGlmCisKKyMgICAgIGVsc2UKKworIyAgICAgICAgaWYgZGVmaW5lZChfREVCVUcpXAorICAgICAgICAgICAgICAgJiYgZGVmaW5lZChCT09TVF9ERUJVR19QWVRIT04pICYmIGRlZmluZWQoQk9PU1RfTElOS0lOR19QWVRIT04pCisjICAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItc2d5ZCIKKyMgICAgICAgIGVsaWYgZGVmaW5lZChfREVCVUcpCisjICAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItc2dkIgorIyAgICAgICAgZWxzZQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItcyIKKyMgICAgICAgIGVuZGlmCisKKyMgICAgIGVuZGlmCisKKyMgIGVuZGlmCisKKyNlbGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKQorCisvLworLy8gZmlndXJlIG91dCB3aGV0aGVyIHdlIHdhbnQgdGhlIGRlYnVnIGJ1aWxkcyBvciBub3Q6CisvLworI2lmIF9fQk9STEFORENfXyA+IDB4NTYxCisjcHJhZ21hIGRlZmluZW9ub3B0aW9uIEJPT1NUX0JPUkxBTkRfREVCVUcgLXYKKyNlbmRpZgorLy8KKy8vIHNhbml0eSBjaGVjazoKKy8vCisjaWYgZGVmaW5lZChfX1NUTF9ERUJVRykgfHwgZGVmaW5lZChfU1RMUF9ERUJVRykKKyNlcnJvciAiUHJlLWJ1aWx0IHZlcnNpb25zIG9mIHRoZSBCb29zdCBsaWJyYXJpZXMgYXJlIG5vdCBwcm92aWRlZCBpbiBTVExwb3J0LWRlYnVnIGZvcm0iCisjZW5kaWYKKworIyAgaWZkZWYgX1JUTERMTAorCisjICAgICBpZiBkZWZpbmVkKEJPT1NUX0JPUkxBTkRfREVCVUcpXAorICAgICAgICAgICAgICAgJiYgZGVmaW5lZChCT09TVF9ERUJVR19QWVRIT04pICYmIGRlZmluZWQoQk9PU1RfTElOS0lOR19QWVRIT04pCisjICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi15ZCIKKyMgICAgIGVsaWYgZGVmaW5lZChCT09TVF9CT1JMQU5EX0RFQlVHKQorIyAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItZCIKKyMgICAgIGVsaWYgZGVmaW5lZChCT09TVF9ERUJVR19QWVRIT04pICYmIGRlZmluZWQoQk9PU1RfTElOS0lOR19QWVRIT04pCisjICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgLXkKKyMgICAgIGVsc2UKKyMgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVAorIyAgICAgZW5kaWYKKworIyAgZWxzZQorCisjICAgICBpZiBkZWZpbmVkKEJPT1NUX0JPUkxBTkRfREVCVUcpXAorICAgICAgICAgICAgICAgJiYgZGVmaW5lZChCT09TVF9ERUJVR19QWVRIT04pICYmIGRlZmluZWQoQk9PU1RfTElOS0lOR19QWVRIT04pCisjICAgICAgICAgZGVmaW5lIEJPT1NUX0xJQl9SVF9PUFQgIi1zeWQiCisjICAgICBlbGlmIGRlZmluZWQoQk9PU1RfQk9STEFORF9ERUJVRykKKyMgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLXNkIgorIyAgICAgZWxpZiBkZWZpbmVkKEJPT1NUX0RFQlVHX1BZVEhPTikgJiYgZGVmaW5lZChCT09TVF9MSU5LSU5HX1BZVEhPTikKKyMgICAgICAgICBkZWZpbmUgQk9PU1RfTElCX1JUX09QVCAiLXN5IgorIyAgICAgZWxzZQorIyAgICAgICAgIGRlZmluZSBCT09TVF9MSUJfUlRfT1BUICItcyIKKyMgICAgIGVuZGlmCisKKyMgIGVuZGlmCisKKyNlbmRpZgorCisvLworLy8gc2VsZWN0IGxpbmthZ2Ugb3B0OgorLy8KKyNpZiAoZGVmaW5lZChfRExMKSB8fCBkZWZpbmVkKF9SVExETEwpKSAmJiBkZWZpbmVkKEJPT1NUX0RZTl9MSU5LKQorIyAgZGVmaW5lIEJPT1NUX0xJQl9QUkVGSVgKKyNlbGlmIGRlZmluZWQoQk9PU1RfRFlOX0xJTkspCisjICBlcnJvciAiTWl4aW5nIGEgZGxsIGJvb3N0IGxpYnJhcnkgd2l0aCBhIHN0YXRpYyBydW50aW1lIGlzIGEgcmVhbGx5IGJhZCBpZGVhLi4uIgorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9MSUJfUFJFRklYICJsaWIiCisjZW5kaWYKKworLy8KKy8vIG5vdyBpbmNsdWRlIHRoZSBsaWI6CisvLworI2lmIGRlZmluZWQoQk9PU1RfTElCX05BTUUpIFwKKyAgICAgICYmIGRlZmluZWQoQk9PU1RfTElCX1BSRUZJWCkgXAorICAgICAgJiYgZGVmaW5lZChCT09TVF9MSUJfVE9PTFNFVCkgXAorICAgICAgJiYgZGVmaW5lZChCT09TVF9MSUJfVEhSRUFEX09QVCkgXAorICAgICAgJiYgZGVmaW5lZChCT09TVF9MSUJfUlRfT1BUKSBcCisgICAgICAmJiBkZWZpbmVkKEJPT1NUX0xJQl9WRVJTSU9OKQorCisjaWZkZWYgQk9PU1RfQVVUT19MSU5LX1RBR0dFRAorIyAgcHJhZ21hIGNvbW1lbnQobGliLCBCT09TVF9MSUJfUFJFRklYIEJPT1NUX1NUUklOR0laRShCT09TVF9MSUJfTkFNRSkgQk9PU1RfTElCX1RIUkVBRF9PUFQgQk9PU1RfTElCX1JUX09QVCAiLmxpYiIpCisjICBpZmRlZiBCT09TVF9MSUJfRElBR05PU1RJQworIyAgICAgcHJhZ21hIG1lc3NhZ2UgKCJMaW5raW5nIHRvIGxpYiBmaWxlOiAiIEJPT1NUX0xJQl9QUkVGSVggQk9PU1RfU1RSSU5HSVpFKEJPT1NUX0xJQl9OQU1FKSBCT09TVF9MSUJfVEhSRUFEX09QVCBCT09TVF9MSUJfUlRfT1BUICIubGliIikKKyMgIGVuZGlmCisjZWxpZiBkZWZpbmVkKEJPT1NUX0FVVE9fTElOS19OT01BTkdMRSkKKyMgIHByYWdtYSBjb21tZW50KGxpYiwgQk9PU1RfU1RSSU5HSVpFKEJPT1NUX0xJQl9OQU1FKSAiLmxpYiIpCisjICBpZmRlZiBCT09TVF9MSUJfRElBR05PU1RJQworIyAgICAgcHJhZ21hIG1lc3NhZ2UgKCJMaW5raW5nIHRvIGxpYiBmaWxlOiAiIEJPT1NUX1NUUklOR0laRShCT09TVF9MSUJfTkFNRSkgIi5saWIiKQorIyAgZW5kaWYKKyNlbHNlCisjICBwcmFnbWEgY29tbWVudChsaWIsIEJPT1NUX0xJQl9QUkVGSVggQk9PU1RfU1RSSU5HSVpFKEJPT1NUX0xJQl9OQU1FKSAiLSIgQk9PU1RfTElCX1RPT0xTRVQgQk9PU1RfTElCX1RIUkVBRF9PUFQgQk9PU1RfTElCX1JUX09QVCAiLSIgQk9PU1RfTElCX1ZFUlNJT04gIi5saWIiKQorIyAgaWZkZWYgQk9PU1RfTElCX0RJQUdOT1NUSUMKKyMgICAgIHByYWdtYSBtZXNzYWdlICgiTGlua2luZyB0byBsaWIgZmlsZTogIiBCT09TVF9MSUJfUFJFRklYIEJPT1NUX1NUUklOR0laRShCT09TVF9MSUJfTkFNRSkgIi0iIEJPT1NUX0xJQl9UT09MU0VUIEJPT1NUX0xJQl9USFJFQURfT1BUIEJPT1NUX0xJQl9SVF9PUFQgIi0iIEJPT1NUX0xJQl9WRVJTSU9OICIubGliIikKKyMgIGVuZGlmCisjZW5kaWYKKworI2Vsc2UKKyMgIGVycm9yICJzb21lIHJlcXVpcmVkIG1hY3JvcyB3aGVyZSBub3QgZGVmaW5lZCAoaW50ZXJuYWwgbG9naWMgZXJyb3IpLiIKKyNlbmRpZgorCisKKyNlbmRpZiAvLyBfTVNDX1ZFUiB8fCBfX0JPUkxBTkRDX18KKworLy8KKy8vIGZpbmFsbHkgdW5kZWYgYW55IG1hY3JvcyB3ZSBtYXkgaGF2ZSBzZXQ6CisvLworI2lmZGVmIEJPT1NUX0xJQl9QUkVGSVgKKyMgIHVuZGVmIEJPT1NUX0xJQl9QUkVGSVgKKyNlbmRpZgorI2lmIGRlZmluZWQoQk9PU1RfTElCX05BTUUpCisjICB1bmRlZiBCT09TVF9MSUJfTkFNRQorI2VuZGlmCisvLyBEb24ndCB1bmRlZiB0aGlzIG9uZTogaXQgY2FuIGJlIHNldCBieSB0aGUgdXNlciBhbmQgc2hvdWxkIGJlIHRoZSAKKy8vIHNhbWUgZm9yIGFsbCBsaWJyYXJpZXM6CisvLyNpZiBkZWZpbmVkKEJPT1NUX0xJQl9UT09MU0VUKQorLy8jICB1bmRlZiBCT09TVF9MSUJfVE9PTFNFVAorLy8jZW5kaWYKKyNpZiBkZWZpbmVkKEJPT1NUX0xJQl9USFJFQURfT1BUKQorIyAgdW5kZWYgQk9PU1RfTElCX1RIUkVBRF9PUFQKKyNlbmRpZgorI2lmIGRlZmluZWQoQk9PU1RfTElCX1JUX09QVCkKKyMgIHVuZGVmIEJPT1NUX0xJQl9SVF9PUFQKKyNlbmRpZgorI2lmIGRlZmluZWQoQk9PU1RfTElCX0xJTktfT1BUKQorIyAgdW5kZWYgQk9PU1RfTElCX0xJTktfT1BUCisjZW5kaWYKKyNpZiBkZWZpbmVkKEJPT1NUX0xJQl9ERUJVR19PUFQpCisjICB1bmRlZiBCT09TVF9MSUJfREVCVUdfT1BUCisjZW5kaWYKKyNpZiBkZWZpbmVkKEJPT1NUX0RZTl9MSU5LKQorIyAgdW5kZWYgQk9PU1RfRFlOX0xJTksKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvY29tcGlsZXIvYm9ybGFuZC5ocHAgYi9ib29zdC9jb25maWcvY29tcGlsZXIvYm9ybGFuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZmYThlYQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9jb21waWxlci9ib3JsYW5kLmhwcApAQCAtMCwwICsxLDI4NyBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLgorLy8gIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMiAtIDIwMDMuCisvLyAgKEMpIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDIuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIEJvcmxhbmQgQysrIGNvbXBpbGVyIHNldHVwOgorCisvLworLy8gdmVyc2lvbnMgY2hlY2s6CisvLyB3ZSBkb24ndCBzdXBwb3J0IEJvcmxhbmQgcHJpb3IgdG8gdmVyc2lvbiA1LjQ6CisjaWYgX19CT1JMQU5EQ19fIDwgMHg1NDAKKyMgIGVycm9yICJDb21waWxlciBub3Qgc3VwcG9ydGVkIG9yIGNvbmZpZ3VyZWQgLSBwbGVhc2UgcmVjb25maWd1cmUiCisjZW5kaWYKKworLy8gbGFzdCBrbm93biBjb21waWxlciB2ZXJzaW9uOgorI2lmIChfX0JPUkxBTkRDX18gPiAweDYxMykKKy8vIyAgaWYgZGVmaW5lZChCT09TVF9BU1NFUlRfQ09ORklHKQorIyAgICAgZXJyb3IgIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIgorLy8jICBlbHNlCisvLyMgICAgIHByYWdtYSBtZXNzYWdlKCAiVW5rbm93biBjb21waWxlciB2ZXJzaW9uIC0gcGxlYXNlIHJ1biB0aGUgY29uZmlndXJlIHRlc3RzIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMiKQorLy8jICBlbmRpZgorI2VsaWYgKF9fQk9STEFORENfXyA9PSAweDYwMCkKKyMgIGVycm9yICJDQnVpbGRlclggcHJldmlldyBjb21waWxlciBpcyBubyBsb25nZXIgc3VwcG9ydGVkIgorI2VuZGlmCisKKy8vCisvLyBTdXBwb3J0IG1hY3JvcyB0byBoZWxwIHdpdGggc3RhbmRhcmQgbGlicmFyeSBkZXRlY3Rpb24KKyNpZiAoX19CT1JMQU5EQ19fIDwgMHg1NjApIHx8IGRlZmluZWQoX1VTRV9PTERfUldfU1RMKQorIyAgZGVmaW5lIEJPT1NUX0JDQl9XSVRIX1JPR1VFX1dBVkUKKyNlbGlmIF9fQk9STEFORENfXyA8IDB4NTcwCisjICBkZWZpbmUgQk9PU1RfQkNCX1dJVEhfU1RMUE9SVAorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9CQ0JfV0lUSF9ESU5LVU1XQVJFCisjZW5kaWYKKworLy8KKy8vIFZlcnNpb24gNS4wIGFuZCBiZWxvdzoKKyMgICBpZiBfX0JPUkxBTkRDX18gPD0gMHgwNTUwCisvLyBCb3JsYW5kIEMrK0J1aWxkZXIgNCBhbmQgNToKKyMgICAgIGRlZmluZSBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVfRlJJRU5EUworIyAgICAgaWYgX19CT1JMQU5EQ19fID09IDB4MDU1MAorLy8gQm9ybGFuZCBDKytCdWlsZGVyIDUsIGNvbW1hbmQtbGluZSBjb21waWxlciA1LjU6CisjICAgICAgIGRlZmluZSBCT09TVF9OT19PUEVSQVRPUlNfSU5fTkFNRVNQQUNFCisjICAgICBlbmRpZgorLy8gVmFyaWFkaWMgbWFjcm9zIGRvIG5vdCBleGlzdCBmb3IgQysrIEJ1aWxkZXIgdmVyc2lvbnMgNSBhbmQgYmVsb3cKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjICAgZW5kaWYKKworLy8gVmVyc2lvbiA1LjUxIGFuZCBiZWxvdzoKKyNpZiAoX19CT1JMQU5EQ19fIDw9IDB4NTUxKQorIyAgZGVmaW5lIEJPT1NUX05PX0NWX1NQRUNJQUxJWkFUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fREVEVUNFRF9UWVBFTkFNRQorLy8gd29ya2Fyb3VuZCBmb3IgbWlzc2luZyBXQ0hBUl9NQVgvV0NIQVJfTUlOOgorI2lmZGVmIF9fY3BsdXNwbHVzCisjaW5jbHVkZSA8Y2xpbWl0cz4KKyNpbmNsdWRlIDxjd2NoYXI+CisjZWxzZQorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHdjaGFyLmg+CisjZW5kaWYgLy8gX19jcGx1c3BsdXMKKyNpZm5kZWYgV0NIQVJfTUFYCisjICBkZWZpbmUgV0NIQVJfTUFYIDB4ZmZmZgorI2VuZGlmCisjaWZuZGVmIFdDSEFSX01JTgorIyAgZGVmaW5lIFdDSEFSX01JTiAwCisjZW5kaWYKKyNlbmRpZgorCisvLyBCb3JsYW5kIEMrKyBCdWlsZGVyIDYgYW5kIGJlbG93OgorI2lmIChfX0JPUkxBTkRDX18gPD0gMHg1NjQpCisKKyMgIGlmIGRlZmluZWQoTkRFQlVHKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorICAgICAgLy8gZml4IGJyb2tlbiA8Y3N0cmluZz4gc28gdGhhdCBCb29zdC50ZXN0IHdvcmtzOgorIyAgICAgaW5jbHVkZSA8Y3N0cmluZz4KKyMgICAgIHVuZGVmIHN0cmNtcAorIyAgZW5kaWYKKyAgIC8vIGZpeCBicm9rZW4gZXJybm8gZGVjbGFyYXRpb246CisjICBpbmNsdWRlIDxlcnJuby5oPgorIyAgaWZuZGVmIGVycm5vCisjICAgICBkZWZpbmUgZXJybm8gZXJybm8KKyMgIGVuZGlmCisKKyNlbmRpZgorCisvLworLy8gbmV3IGJ1ZyBpbiA1LjYxOgorI2lmIChfX0JPUkxBTkRDX18gPj0gMHg1NjEpICYmIChfX0JPUkxBTkRDX18gPD0gMHg1ODApCisgICAvLyB0aGlzIHNlZW1zIHRvIGJlIG5lZWRlZCBieSB0aGUgY29tbWFuZCBsaW5lIGNvbXBpbGVyLCBidXQgbm90IHRoZSBJREU6CisjICBkZWZpbmUgQk9PU1RfTk9fTUVNQkVSX0ZVTkNUSU9OX1NQRUNJQUxJWkFUSU9OUworI2VuZGlmCisKKy8vIEJvcmxhbmQgQysrIEJ1aWxkZXIgMjAwNiBVcGRhdGUgMiBhbmQgYmVsb3c6CisjaWYgKF9fQk9STEFORENfXyA8PSAweDU4MikKKyMgIGRlZmluZSBCT09TVF9OT19TRklOQUUKKyMgIGRlZmluZSBCT09TVF9CQ0JfUEFSVElBTF9TUEVDSUFMSVpBVElPTl9CVUcKKyMgIGRlZmluZSBCT09TVF9OT19URU1QTEFURV9URU1QTEFURVMKKworIyAgZGVmaW5lIEJPT1NUX05PX1BSSVZBVEVfSU5fQUdHUkVHQVRFCisKKyMgIGlmZGVmIF9XSU4zMgorIyAgICAgZGVmaW5lIEJPT1NUX05PX1NXUFJJTlRGCisjICBlbGlmIGRlZmluZWQobGludXgpIHx8IGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fbGludXgpCisgICAgICAvLyB3ZSBzaG91bGQgcmVhbGx5IGJlIGFibGUgdG8gZG8gd2l0aG91dCB0aGlzCisgICAgICAvLyBidXQgdGhlIHdjcyogZnVuY3Rpb25zIGFyZW4ndCBpbXBvcnRlZCBpbnRvIHN0ZDo6CisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKKyAgICAgIC8vIF9DUFBVTldJTkQgZG9lc24ndCBnZXQgYXV0b21hdGljYWxseSBzZXQgZm9yIHNvbWUgcmVhc29uOgorIyAgICAgcHJhZ21hIGRlZmluZW9ub3B0aW9uIEJPT1NUX0NQUFVOV0lORCAteAorIyAgZW5kaWYKKyNlbmRpZgorCisjaWYgKF9fQk9STEFORENfXyA8PSAweDYxMykgIC8vIEJlbWFuIGhhcyBhc2tlZCBBbGlzZGFpciBmb3IgbW9yZSBpbmZvCisgICAvLyB3ZSBzaG91bGRuJ3QgcmVhbGx5IG5lZWQgdGhpcyAtIGJ1dCB0b28gbWFueSB0aGluZ3MgY2hva2UKKyAgIC8vIHdpdGhvdXQgaXQsIHRoaXMgbmVlZHMgbW9yZSBpbnZlc3RpZ2F0aW9uOgorIyAgZGVmaW5lIEJPT1NUX05PX0xJTUlUU19DT01QSUxFX1RJTUVfQ09OU1RBTlRTCisjICBkZWZpbmUgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKKyMgIGRlZmluZSBCT09TVF9OT19GVU5DVElPTl9UWVBFX1NQRUNJQUxJWkFUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX1VTSU5HX1RFTVBMQVRFCisjICBkZWZpbmUgQk9PU1RfU1BfTk9fU1BfQ09OVkVSVElCTEUKKworLy8gVGVtcG9yYXJ5IHdvcmthcm91bmQKKyNkZWZpbmUgQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworI2VuZGlmCisKKy8vIEJvcmxhbmQgQysrIEJ1aWxkZXIgMjAwOCBhbmQgYmVsb3c6CisjICBkZWZpbmUgQk9PU1RfTk9fSU5URUdSQUxfSU5UNjRfVAorIyAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwKKyMgIGRlZmluZSBCT09TVF9OT19ERVBFTkRFTlRfTkVTVEVEX0RFUklWQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFX0ZSSUVORFMKKyMgIGRlZmluZSBCT09TVF9OT19UV09fUEhBU0VfTkFNRV9MT09LVVAKKyMgIGRlZmluZSBCT09TVF9OT19VU0lOR19ERUNMQVJBVElPTl9PVkVSTE9BRFNfRlJPTV9UWVBFTkFNRV9CQVNFCisjICBkZWZpbmUgQk9PU1RfTk9fTkVTVEVEX0ZSSUVORFNISVAKKyMgIGRlZmluZSBCT09TVF9OT19UWVBFTkFNRV9XSVRIX0NUT1IKKyNpZiAoX19CT1JMQU5EQ19fIDwgMHg2MDApCisjICBkZWZpbmUgQk9PU1RfSUxMRUdBTF9DVl9SRUZFUkVOQ0VTCisjZW5kaWYKKworLy8KKy8vICBQb3NpdGl2ZSBGZWF0dXJlIGRldGVjdGlvbgorLy8KKy8vIEJvcmxhbmQgQysrIEJ1aWxkZXIgMjAwOCBhbmQgYmVsb3c6CisjaWYgKF9fQk9STEFORENfXyA+PSAweDU5OSkKKyMgIHByYWdtYSBkZWZpbmVvbm9wdGlvbiBCT09TVF9DT0RFR0VBUl8wWF9TVVBQT1JUIC1BeAorI2VuZGlmCisvLworLy8gQysrMHggTWFjcm9zOgorLy8KKyNpZiAhZGVmaW5lZCggQk9PU1RfQ09ERUdFQVJfMFhfU1VQUE9SVCApIHx8IChfX0JPUkxBTkRDX18gPCAweDYxMCkKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMTZfVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIzMl9UCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9FWFBMSUNJVF9DT05WRVJTSU9OX09QRVJBVE9SUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYVEVSTl9URU1QTEFURQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTIAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfSEFTX0FMSUdOT0YKKyMgIGRlZmluZSBCT09TVF9IQVNfQ0hBUjE2X1QKKyMgIGRlZmluZSBCT09TVF9IQVNfQ0hBUjMyX1QKKyMgIGRlZmluZSBCT09TVF9IQVNfREVDTFRZUEUKKyMgIGRlZmluZSBCT09TVF9IQVNfRVhQTElDSVRfQ09OVkVSU0lPTl9PUFMKKyMgIGRlZmluZSBCT09TVF9IQVNfUkVGX1FVQUxJRklFUgorIyAgZGVmaW5lIEJPT1NUX0hBU19SVkFMVUVfUkVGUworIyAgZGVmaW5lIEJPT1NUX0hBU19TVEFUSUNfQVNTRVJUCisjZW5kaWYKKworI2RlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX0RFQ0xBUkFUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NPTlNURVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUZBVUxURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFTEVURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0ZVTkNUSU9OX1RFTVBMQVRFX0RFRkFVTFRfQVJHUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9MQU1CREFTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xPQ0FMX0NMQVNTX1RFTVBMQVRFX1BBUkFNRVRFUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQU5HRV9CQVNFRF9GT1IKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFXX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworI2RlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9URU1QTEFURV9BTElBU0VTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMgICAgLy8gVVRGLTggc3RpbGwgbm90IHN1cHBvcnRlZAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgKKworI2lmIF9fQk9STEFORENfXyA+PSAweDU5MAorIyAgZGVmaW5lIEJPT1NUX0hBU19UUjFfSEFTSAorCisjICBkZWZpbmUgQk9PU1RfSEFTX01BQ1JPX1VTRV9GQUNFVAorI2VuZGlmCisKKy8vCisvLyBQb3N0IDB4NTYxIHdlIGhhdmUgbG9uZyBsb25nIGFuZCBzdGRpbnQuaDoKKyNpZiBfX0JPUkxBTkRDX18gPj0gMHg1NjEKKyMgIGlmbmRlZiBfX05PX0xPTkdfTE9ORworIyAgICAgZGVmaW5lIEJPT1NUX0hBU19MT05HX0xPTkcKKyMgIGVsc2UKKyMgICAgIGRlZmluZSBCT09TVF9OT19MT05HX0xPTkcKKyMgIGVuZGlmCisgICAvLyBPbiBub24tV2luMzIgcGxhdGZvcm1zIGxldCB0aGUgcGxhdGZvcm0gY29uZmlnIGZpZ3VyZSB0aGlzIG91dDoKKyMgIGlmZGVmIF9XSU4zMgorIyAgICAgIGRlZmluZSBCT09TVF9IQVNfU1RESU5UX0gKKyMgIGVuZGlmCisjZW5kaWYKKworLy8gQm9ybGFuZCBDKytCdWlsZGVyIDYgZGVmYXVsdHMgdG8gdXNpbmcgU1RMUG9ydC4gIElmIF9VU0VfT0xEX1JXX1NUTCBpcworLy8gZGVmaW5lZCwgdGhlbiB3ZSBoYXZlIDB4NTYwIG9yIGdyZWF0ZXIgd2l0aCB0aGUgUm9ndWUgV2F2ZSBpbXBsZW1lbnRhdGlvbgorLy8gd2hpY2ggcHJlc3VtYWJseSBoYXMgdGhlIHN0ZDo6REJMX01BWCBidWcuCisjaWYgZGVmaW5lZCggQk9PU1RfQkNCX1dJVEhfUk9HVUVfV0FWRSApCisvLyA8Y2xpbWl0cz4gaXMgcGFydGx5IGJyb2tlbiwgc29tZSBtYWNyb3MgZGVmaW5lIHN5bWJvbHMgdGhhdCBhcmUgcmVhbGx5IGluCisvLyBuYW1lc3BhY2Ugc3RkLCBzbyB5b3UgZW5kIHVwIGhhdmluZyB0byB1c2UgaWxsZWdhbCBjb25zdHJ1Y3RzIGxpa2UKKy8vIHN0ZDo6REJMX01BWCwgYXMgYSBmaXggd2UnbGwganVzdCBpbmNsdWRlIGZsb2F0LmggYW5kIGhhdmUgZG9uZSB3aXRoOgorI2luY2x1ZGUgPGZsb2F0Lmg+CisjZW5kaWYKKy8vCisvLyBfX2ludDY0OgorLy8KKyNpZiAoX19CT1JMQU5EQ19fID49IDB4NTMwKSAmJiAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pCisjICBkZWZpbmUgQk9PU1RfSEFTX01TX0lOVDY0CisjZW5kaWYKKy8vCisvLyBjaGVjayBmb3IgZXhjZXB0aW9uIGhhbmRsaW5nIHN1cHBvcnQ6CisvLworI2lmICFkZWZpbmVkKF9DUFBVTldJTkQpICYmICFkZWZpbmVkKEJPT1NUX0NQUFVOV0lORCkgJiYgIWRlZmluZWQoX19FWENFUFRJT05TKSAmJiAhZGVmaW5lZChCT09TVF9OT19FWENFUFRJT05TKQorIyAgZGVmaW5lIEJPT1NUX05PX0VYQ0VQVElPTlMKKyNlbmRpZgorLy8KKy8vIGFsbCB2ZXJzaW9ucyBoYXZlIGEgPGRpcmVudC5oPjoKKy8vCisjaWZuZGVmIF9fU1RSSUNUX0FOU0lfXworIyAgZGVmaW5lIEJPT1NUX0hBU19ESVJFTlRfSAorI2VuZGlmCisvLworLy8gYWxsIHZlcnNpb25zIHN1cHBvcnQgX19kZWNsc3BlYzoKKy8vCisjaWYgZGVmaW5lZChfX1NUUklDVF9BTlNJX18pCisvLyBjb25maWcvcGxhdGZvcm0vd2luMzIuaHBwIHdpbGwgZGVmaW5lIEJPT1NUX1NZTUJPTF9FWFBPUlQsIGV0Yy4sIHVubGVzcyBhbHJlYWR5IGRlZmluZWQgIAorIyAgZGVmaW5lIEJPT1NUX1NZTUJPTF9FWFBPUlQKKyNlbmRpZgorLy8KKy8vIEFCSSBmaXhpbmcgaGVhZGVyczoKKy8vCisjaWYgX19CT1JMQU5EQ19fICE9IDB4NjAwIC8vIG5vdCBpbXBsZW1lbnRlZCBmb3IgdmVyc2lvbiA2IGNvbXBpbGVyIHlldAorI2lmbmRlZiBCT09TVF9BQklfUFJFRklYCisjICBkZWZpbmUgQk9PU1RfQUJJX1BSRUZJWCAiYm9vc3QvY29uZmlnL2FiaS9ib3JsYW5kX3ByZWZpeC5ocHAiCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfQUJJX1NVRkZJWAorIyAgZGVmaW5lIEJPT1NUX0FCSV9TVUZGSVggImJvb3N0L2NvbmZpZy9hYmkvYm9ybGFuZF9zdWZmaXguaHBwIgorI2VuZGlmCisjZW5kaWYKKy8vCisvLyBEaXNhYmxlIFdpbjMyIHN1cHBvcnQgaW4gQU5TSSBtb2RlOgorLy8KKyNpZiBfX0JPUkxBTkRDX18gPCAweDYwMAorIyAgcHJhZ21hIGRlZmluZW9ub3B0aW9uIEJPT1NUX0RJU0FCTEVfV0lOMzIgLUEKKyNlbGlmIGRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQorIyAgZGVmaW5lIEJPT1NUX0RJU0FCTEVfV0lOMzIKKyNlbmRpZgorLy8KKy8vIE1TVkMgY29tcGF0aWJpbGl0eSBtb2RlIGRvZXMgc29tZSBuYXN0eSB0aGluZ3M6CisvLyBUT0RPOiBsb29rIHVwIGlmIHRoaXMgZG9lc24ndCBhcHBseSB0byB0aGUgd2hvbGUgMTJ4eCByYW5nZQorLy8KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPD0gMTIwMCkKKyMgIGRlZmluZSBCT09TVF9OT19BUkdVTUVOVF9ERVBFTkRFTlRfTE9PS1VQCisjICBkZWZpbmUgQk9PU1RfTk9fVk9JRF9SRVRVUk5TCisjZW5kaWYKKworLy8gQm9ybGFuZCBkaWQgbm90IGltcGxlbWVudCB2YWx1ZS1pbml0aWFsaXphdGlvbiBjb21wbGV0ZWx5LCBhcyBJIHJlcG9ydGVkCisvLyBpbiAyMDA3LCBCb3JsYW5kIFJlcG9ydCA1MTg1NCwgIlZhbHVlLWluaXRpYWxpemF0aW9uOiBQT0Qgc3RydWN0IHNob3VsZCBiZQorLy8gemVyby1pbml0aWFsaXplZCIsIGh0dHA6Ly9xYy5lbWJhcmNhZGVyby5jb20vd2MvcWNtYWluLmFzcHg/ZD01MTg1NAorLy8gU2VlIGFsc286IGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdXRpbGl0eS92YWx1ZV9pbml0Lmh0bSNjb21waWxlcl9pc3N1ZXMKKy8vIChOaWVscyBEZWtrZXIsIExLRUIsIEFwcmlsIDIwMTApCisjZGVmaW5lIEJPT1NUX05PX0NPTVBMRVRFX1ZBTFVFX0lOSVRJQUxJWkFUSU9OCisKKyNkZWZpbmUgQk9PU1RfQ09NUElMRVIgIkJvcmxhbmQgQysrIHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoX19CT1JMQU5EQ19fKQorCisKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvY29tcGlsZXIvY2xhbmcuaHBwIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NsYW5nLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGQ2ZTU0Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NsYW5nLmhwcApAQCAtMCwwICsxLDE0NCBAQAorLy8gKEMpIENvcHlyaWdodCBEb3VnbGFzIEdyZWdvciAyMDEwCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gQ2xhbmcgY29tcGlsZXIgc2V0dXAuCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfZXhjZXB0aW9ucykgJiYgIWRlZmluZWQoQk9PU1RfTk9fRVhDRVBUSU9OUykKKyMgIGRlZmluZSBCT09TVF9OT19FWENFUFRJT05TCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9ydHRpKSAmJiAhZGVmaW5lZChCT09TVF9OT19SVFRJKQorIyAgZGVmaW5lIEJPT1NUX05PX1JUVEkKKyNlbmRpZgorCisjaWYgIV9faGFzX2ZlYXR1cmUoY3h4X3J0dGkpICYmICFkZWZpbmVkKEJPT1NUX05PX1RZUEVJRCkKKyMgIGRlZmluZSBCT09TVF9OT19UWVBFSUQKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX2ludDY0KQorIyAgZGVmaW5lIEJPT1NUX0hBU19NU19JTlQ2NAorI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfSEFTX05SVk8KKworLy8gQ2xhbmcgc3VwcG9ydHMgImxvbmcgbG9uZyIgaW4gYWxsIGNvbXBpbGF0aW9uIG1vZGVzLgorI2RlZmluZSBCT09TVF9IQVNfTE9OR19MT05HCisKKy8vCisvLyBEeW5hbWljIHNoYXJlZCBvYmplY3QgKERTTykgYW5kIGR5bmFtaWMtbGluayBsaWJyYXJ5IChETEwpIHN1cHBvcnQKKy8vCisjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChfX1dJTjMyX18pICYmICFkZWZpbmVkKFdJTjMyKQorIyAgZGVmaW5lIEJPT1NUX1NZTUJPTF9FWFBPUlQgX19hdHRyaWJ1dGVfXygoX192aXNpYmlsaXR5X18oImRlZmF1bHQiKSkpCisjICBkZWZpbmUgQk9PU1RfU1lNQk9MX0lNUE9SVAorIyAgZGVmaW5lIEJPT1NUX1NZTUJPTF9WSVNJQkxFIF9fYXR0cmlidXRlX18oKF9fdmlzaWJpbGl0eV9fKCJkZWZhdWx0IikpKQorI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfYXV0b190eXBlKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworI2VuZGlmCisKKyNpZiAhKGRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pIHx8IF9fY3BsdXNwbHVzID49IDIwMTEwM0wpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMzJfVAorI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfY29uc3RleHByKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0NPTlNURVhQUgorI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfZGVjbHR5cGUpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyNlbmRpZgorCisjaWYgIV9faGFzX2ZlYXR1cmUoY3h4X2RlY2x0eXBlX2luY29tcGxldGVfcmV0dXJuX3R5cGVzKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2CisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9kZWZhdWx0ZWRfZnVuY3Rpb25zKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyNlbmRpZgorCisjaWYgIV9faGFzX2ZlYXR1cmUoY3h4X2RlbGV0ZWRfZnVuY3Rpb25zKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFTEVURURfRlVOQ1RJT05TCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9leHBsaWNpdF9jb252ZXJzaW9ucykKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9FWFBMSUNJVF9DT05WRVJTSU9OX09QRVJBVE9SUworI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfZGVmYXVsdF9mdW5jdGlvbl90ZW1wbGF0ZV9hcmdzKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0ZVTkNUSU9OX1RFTVBMQVRFX0RFRkFVTFRfQVJHUworI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfZ2VuZXJhbGl6ZWRfaW5pdGlhbGl6ZXJzKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9sYW1iZGFzKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyNlbmRpZgorCisjaWYgIV9faGFzX2ZlYXR1cmUoY3h4X2xvY2FsX3R5cGVfdGVtcGxhdGVfYXJncykKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9MT0NBTF9DTEFTU19URU1QTEFURV9QQVJBTUVURVJTCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9ub2V4Y2VwdCkKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OT0VYQ0VQVAorI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfbnVsbHB0cikKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9yYW5nZV9mb3IpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9yYXdfc3RyaW5nX2xpdGVyYWxzKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBV19MSVRFUkFMUworI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfZ2VuZXJhbGl6ZWRfaW5pdGlhbGl6ZXJzKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9ydmFsdWVfcmVmZXJlbmNlcykKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfc3Ryb25nX2VudW1zKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfc3RhdGljX2Fzc2VydCkKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF9hbGlhc190ZW1wbGF0ZXMpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworI2VuZGlmCisKKyNpZiAhX19oYXNfZmVhdHVyZShjeHhfdW5pY29kZV9saXRlcmFscykKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTCisjZW5kaWYKKworI2lmICFfX2hhc19mZWF0dXJlKGN4eF92YXJpYWRpY190ZW1wbGF0ZXMpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTCisjZW5kaWYKKworLy8gQ2xhbmcgYWx3YXlzIHN1cHBvcnRzIHZhcmlhZGljIG1hY3JvcworLy8gQ2xhbmcgYWx3YXlzIHN1cHBvcnRzIGV4dGVybiB0ZW1wbGF0ZXMKKworI2lmbmRlZiBCT09TVF9DT01QSUxFUgorIyAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJDbGFuZyB2ZXJzaW9uICIgX19jbGFuZ192ZXJzaW9uX18KKyNlbmRpZgorCisvLyBNYWNybyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBDbGFuZyBjb21waWxlci4KKyNkZWZpbmUgQk9PU1RfQ0xBTkcgMQorCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvY29tcGlsZXIvY29kZWdlYXIuaHBwIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvZGVnZWFyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTZkZjMzCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvZGVnZWFyLmhwcApAQCAtMCwwICsxLDE3OSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLgorLy8gIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMiAtIDIwMDMuCisvLyAgKEMpIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDIuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIENvZGVHZWFyIEMrKyBjb21waWxlciBzZXR1cDoKKworI2lmICFkZWZpbmVkKCBCT09TVF9XSVRIX0NPREVHRUFSX1dBUk5JTkdTICkKKy8vIHRoZXNlIHdhcm5pbmdzIG9jY3VyIGZyZXF1ZW50bHkgaW4gb3B0aW1pemVkIHRlbXBsYXRlIGNvZGUKKyMgcHJhZ21hIHdhcm4gLTgwMDQgLy8gdmFyIGFzc2lnbmVkIHZhbHVlLCBidXQgbmV2ZXIgdXNlZAorIyBwcmFnbWEgd2FybiAtODAwOCAvLyBjb25kaXRpb24gYWx3YXlzIHRydWUvZmFsc2UKKyMgcHJhZ21hIHdhcm4gLTgwNjYgLy8gZGVhZCBjb2RlIGNhbiBuZXZlciBleGVjdXRlCisjIHByYWdtYSB3YXJuIC04MTA0IC8vIHN0YXRpYyBtZW1iZXJzIHdpdGggY3RvcnMgbm90IHRocmVhZHNhZmUKKyMgcHJhZ21hIHdhcm4gLTgxMDUgLy8gcmVmZXJlbmNlIG1lbWJlciBpbiBjbGFzcyB3aXRob3V0IGN0b3JzCisjZW5kaWYKKy8vCisvLyB2ZXJzaW9ucyBjaGVjazoKKy8vIGxhc3Qga25vd24gYW5kIGNoZWNrZWQgdmVyc2lvbiBpcyAweDYyMQorI2lmIChfX0NPREVHRUFSQ19fID4gMHg2MjEpCisjICBpZiBkZWZpbmVkKEJPT1NUX0FTU0VSVF9DT05GSUcpCisjICAgICBlcnJvciAiVW5rbm93biBjb21waWxlciB2ZXJzaW9uIC0gcGxlYXNlIHJ1biB0aGUgY29uZmlndXJlIHRlc3RzIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMiCisjICBlbHNlCisjICAgICBwcmFnbWEgbWVzc2FnZSggIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIikKKyMgIGVuZGlmCisjZW5kaWYKKworLy8gQ29kZUdlYXIgQysrIEJ1aWxkZXIgMjAwOQorI2lmIChfX0NPREVHRUFSQ19fIDw9IDB4NjEzKQorIyAgZGVmaW5lIEJPT1NUX05PX0lOVEVHUkFMX0lOVDY0X1QKKyMgIGRlZmluZSBCT09TVF9OT19ERVBFTkRFTlRfTkVTVEVEX0RFUklWQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fUFJJVkFURV9JTl9BR0dSRUdBVEUKKyMgIGRlZmluZSBCT09TVF9OT19VU0lOR19ERUNMQVJBVElPTl9PVkVSTE9BRFNfRlJPTV9UWVBFTkFNRV9CQVNFCisgICAvLyB3ZSBzaG91bGRuJ3QgcmVhbGx5IG5lZWQgdGhpcyAtIGJ1dCB0b28gbWFueSB0aGluZ3MgY2hva2UKKyAgIC8vIHdpdGhvdXQgaXQsIHRoaXMgbmVlZHMgbW9yZSBpbnZlc3RpZ2F0aW9uOgorIyAgZGVmaW5lIEJPT1NUX05PX0xJTUlUU19DT01QSUxFX1RJTUVfQ09OU1RBTlRTCisjICBkZWZpbmUgQk9PU1RfU1BfTk9fU1BfQ09OVkVSVElCTEUKKyNlbmRpZgorCisvLyBDb2RlR2VhciBDKysgQnVpbGRlciAyMDEwCisjaWYgKF9fQ09ERUdFQVJDX18gPD0gMHg2MjEpCisjICBkZWZpbmUgQk9PU1RfTk9fVFlQRU5BTUVfV0lUSF9DVE9SICAgIC8vIENhbm5vdCB1c2UgdHlwZW5hbWUga2V5d29yZCB3aGVuIG1ha2luZyB0ZW1wb3JhcmllcyBvZiBhIGRlcGVuZGFudCB0eXBlCisjICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fU0NPUEVfVVNJTkdfREVDTEFSQVRJT05fQlJFQUtTX0FETAorIyAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9URU1QTEFURV9GUklFTkRTCisjICBkZWZpbmUgQk9PU1RfTk9fTkVTVEVEX0ZSSUVORFNISVAgICAgIC8vIFRDMSBnaXZlcyBuZXN0ZWQgY2xhc3NlcyBhY2Nlc3MgcmlnaHRzIGFzIGFueSBvdGhlciBtZW1iZXIKKyMgIGRlZmluZSBCT09TVF9OT19VU0lOR19URU1QTEFURQorIyAgZGVmaW5lIEJPT1NUX05PX1RXT19QSEFTRV9OQU1FX0xPT0tVUAorLy8gVGVtcG9yYXJ5IGhhY2ssIHVudGlsIHNwZWNpZmljIE1QTCBwcmVwcm9jZXNzZWQgaGVhZGVycyBhcmUgZ2VuZXJhdGVkCisjICBkZWZpbmUgQk9PU1RfTVBMX0NGR19OT19QUkVQUk9DRVNTRURfSEVBREVSUworCisvLyBDb2RlR2VhciBoYXMgbm90IHlldCBjb21wbGV0ZWx5IGltcGxlbWVudGVkIHZhbHVlLWluaXRpYWxpemF0aW9uLCBmb3IKKy8vIGV4YW1wbGUgZm9yIGFycmF5IHR5cGVzLCBhcyBJIHJlcG9ydGVkIGluIDIwMTA6IEVtYmFyY2FkZXJvIFJlcG9ydCA4Mzc1MSwKKy8vICJWYWx1ZS1pbml0aWFsaXphdGlvbjogYXJyYXlzIHNob3VsZCBoYXZlIGVhY2ggZWxlbWVudCB2YWx1ZS1pbml0aWFsaXplZCIsCisvLyBodHRwOi8vcWMuZW1iYXJjYWRlcm8uY29tL3djL3FjbWFpbi5hc3B4P2Q9ODM3NTEKKy8vIExhc3QgY2hlY2tlZCB2ZXJzaW9uOiBFbWJhcmNhZGVybyBDKysgNi4yMQorLy8gU2VlIGFsc286IGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdXRpbGl0eS92YWx1ZV9pbml0Lmh0bSNjb21waWxlcl9pc3N1ZXMKKy8vIChOaWVscyBEZWtrZXIsIExLRUIsIEFwcmlsIDIwMTApCisjICBkZWZpbmUgQk9PU1RfTk9fQ09NUExFVEVfVkFMVUVfSU5JVElBTElaQVRJT04KKworIyAgaWYgZGVmaW5lZChOREVCVUcpICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCisgICAgICAvLyBmaXggYnJva2VuIDxjc3RyaW5nPiBzbyB0aGF0IEJvb3N0LnRlc3Qgd29ya3M6CisjICAgICBpbmNsdWRlIDxjc3RyaW5nPgorIyAgICAgdW5kZWYgc3RyY21wCisjICBlbmRpZgorICAgLy8gZml4IGJyb2tlbiBlcnJubyBkZWNsYXJhdGlvbjoKKyMgIGluY2x1ZGUgPGVycm5vLmg+CisjICBpZm5kZWYgZXJybm8KKyMgICAgIGRlZmluZSBlcnJubyBlcnJubworIyAgZW5kaWYKKworI2VuZGlmCisvLworLy8gQysrMHggbWFjcm9zOgorLy8KKyNpZiAoX19DT0RFR0VBUkNfXyA8PSAweDYyMCkKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVAorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfSEFTX1NUQVRJQ19BU1NFUlQKKyNlbmRpZgorI2RlZmluZSBCT09TVF9IQVNfQ0hBUjE2X1QKKyNkZWZpbmUgQk9PU1RfSEFTX0NIQVIzMl9UCisjZGVmaW5lIEJPT1NUX0hBU19MT05HX0xPTkcKKy8vICNkZWZpbmUgQk9PU1RfSEFTX0FMSUdOT0YKKyNkZWZpbmUgQk9PU1RfSEFTX0RFQ0xUWVBFCisjZGVmaW5lIEJPT1NUX0hBU19FWFBMSUNJVF9DT05WRVJTSU9OX09QUworLy8gI2RlZmluZSBCT09TVF9IQVNfUlZBTFVFX1JFRlMKKyNkZWZpbmUgQk9PU1RfSEFTX1NDT1BFRF9FTlVNCisvLyAjZGVmaW5lIEJPT1NUX0hBU19TVEFUSUNfQVNTRVJUCisjZGVmaW5lIEJPT1NUX0hBU19TVERfVFlQRV9UUkFJVFMKKworI2RlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX0RFQ0xBUkFUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0NPTlNURVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUZBVUxURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFTEVURURfRlVOQ1RJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYVEVSTl9URU1QTEFURQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTEFNQkRBUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9MT0NBTF9DTEFTU19URU1QTEFURV9QQVJBTUVURVJTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05PRVhDRVBUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTExQVFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBV19MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworI2RlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9URU1QTEFURV9BTElBU0VTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisKKy8vCisvLyBUUjEgbWFjcm9zOgorLy8KKyNkZWZpbmUgQk9PU1RfSEFTX1RSMV9IQVNICisjZGVmaW5lIEJPT1NUX0hBU19UUjFfVFlQRV9UUkFJVFMKKyNkZWZpbmUgQk9PU1RfSEFTX1RSMV9VTk9SREVSRURfTUFQCisjZGVmaW5lIEJPT1NUX0hBU19UUjFfVU5PUkRFUkVEX1NFVAorCisjZGVmaW5lIEJPT1NUX0hBU19NQUNST19VU0VfRkFDRVQKKworI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorCisvLyBPbiBub24tV2luMzIgcGxhdGZvcm1zIGxldCB0aGUgcGxhdGZvcm0gY29uZmlnIGZpZ3VyZSB0aGlzIG91dDoKKyNpZmRlZiBfV0lOMzIKKyMgIGRlZmluZSBCT09TVF9IQVNfU1RESU5UX0gKKyNlbmRpZgorCisvLworLy8gX19pbnQ2NDoKKy8vCisjaWYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQorIyAgZGVmaW5lIEJPT1NUX0hBU19NU19JTlQ2NAorI2VuZGlmCisvLworLy8gY2hlY2sgZm9yIGV4Y2VwdGlvbiBoYW5kbGluZyBzdXBwb3J0OgorLy8KKyNpZiAhZGVmaW5lZChfQ1BQVU5XSU5EKSAmJiAhZGVmaW5lZChCT09TVF9DUFBVTldJTkQpICYmICFkZWZpbmVkKF9fRVhDRVBUSU9OUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fRVhDRVBUSU9OUykKKyMgIGRlZmluZSBCT09TVF9OT19FWENFUFRJT05TCisjZW5kaWYKKy8vCisvLyBhbGwgdmVyc2lvbnMgaGF2ZSBhIDxkaXJlbnQuaD46CisvLworI2lmICFkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykKKyMgIGRlZmluZSBCT09TVF9IQVNfRElSRU5UX0gKKyNlbmRpZgorLy8KKy8vIGFsbCB2ZXJzaW9ucyBzdXBwb3J0IF9fZGVjbHNwZWM6CisvLworI2lmIGRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQorLy8gY29uZmlnL3BsYXRmb3JtL3dpbjMyLmhwcCB3aWxsIGRlZmluZSBCT09TVF9TWU1CT0xfRVhQT1JULCBldGMuLCB1bmxlc3MgYWxyZWFkeSBkZWZpbmVkICAKKyMgIGRlZmluZSBCT09TVF9TWU1CT0xfRVhQT1JUCisjZW5kaWYKKy8vCisvLyBBQkkgZml4aW5nIGhlYWRlcnM6CisvLworI2lmbmRlZiBCT09TVF9BQklfUFJFRklYCisjICBkZWZpbmUgQk9PU1RfQUJJX1BSRUZJWCAiYm9vc3QvY29uZmlnL2FiaS9ib3JsYW5kX3ByZWZpeC5ocHAiCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfQUJJX1NVRkZJWAorIyAgZGVmaW5lIEJPT1NUX0FCSV9TVUZGSVggImJvb3N0L2NvbmZpZy9hYmkvYm9ybGFuZF9zdWZmaXguaHBwIgorI2VuZGlmCisvLworLy8gRGlzYWJsZSBXaW4zMiBzdXBwb3J0IGluIEFOU0kgbW9kZToKKy8vCisjICBwcmFnbWEgZGVmaW5lb25vcHRpb24gQk9PU1RfRElTQUJMRV9XSU4zMiAtQQorLy8KKy8vIE1TVkMgY29tcGF0aWJpbGl0eSBtb2RlIGRvZXMgc29tZSBuYXN0eSB0aGluZ3M6CisvLyBUT0RPOiBsb29rIHVwIGlmIHRoaXMgZG9lc24ndCBhcHBseSB0byB0aGUgd2hvbGUgMTJ4eCByYW5nZQorLy8KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPD0gMTIwMCkKKyMgIGRlZmluZSBCT09TVF9OT19BUkdVTUVOVF9ERVBFTkRFTlRfTE9PS1VQCisjICBkZWZpbmUgQk9PU1RfTk9fVk9JRF9SRVRVUk5TCisjZW5kaWYKKworI2RlZmluZSBCT09TVF9DT01QSUxFUiAiQ29kZUdlYXIgQysrIHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoX19DT0RFR0VBUkNfXykKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbWVhdS5ocHAgYi9ib29zdC9jb25maWcvY29tcGlsZXIvY29tZWF1LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzgyMjJkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbWVhdS5ocHAKQEAgLTAsMCArMSw1OSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEuIAorLy8gIChDKSBDb3B5cmlnaHQgRG91Z2xhcyBHcmVnb3IgMjAwMS4gCisvLyAgKEMpIENvcHlyaWdodCBQZXRlciBEaW1vdiAyMDAxLiAKKy8vICAoQykgQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBCZW1hbiBEYXdlcyAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IEplbnMgTWF1cmVyIDIwMDMuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIENvbWVhdSBDKysgY29tcGlsZXIgc2V0dXA6CisKKyNpbmNsdWRlICJib29zdC9jb25maWcvY29tcGlsZXIvY29tbW9uX2VkZy5ocHAiCisKKyNpZiAoX19DT01PX1ZFUlNJT05fXyA8PSA0MjQ1KQorCisjICBpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBfTVNDX1ZFUiA8PSAxMzAwCisjICAgICBpZiBfTVNDX1ZFUiA+IDEwMAorICAgICAgICAgLy8gb25seSBzZXQgdGhpcyBpbiBub24tc3RyaWN0IG1vZGU6CisjICAgICAgICBkZWZpbmUgQk9PU1RfTk9fQVJHVU1FTlRfREVQRU5ERU5UX0xPT0tVUAorIyAgICAgZW5kaWYKKyMgIGVuZGlmCisKKy8vIFZvaWQgcmV0dXJucyBkb24ndCB3b3JrIHdoZW4gZW11bGF0aW5nIFZDIDYgKFBldGVyIERpbW92KQorLy8gVE9ETzogbG9vayB1cCBpZiB0aGlzIGRvZXNuJ3QgYXBwbHkgdG8gdGhlIHdob2xlIDEyeHggcmFuZ2UKKyMgIGlmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA8IDEzMDApCisjICAgICBkZWZpbmUgQk9PU1RfTk9fVk9JRF9SRVRVUk5TCisjICBlbmRpZgorCisjZW5kaWYgIC8vIHZlcnNpb24gNDI0NQorCisvLworLy8gZW5hYmxlIF9faW50NjQgc3VwcG9ydCBpbiBWQyBlbXVsYXRpb24gbW9kZQorLy8KKyMgIGlmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMjAwKQorIyAgICAgZGVmaW5lIEJPT1NUX0hBU19NU19JTlQ2NAorIyAgZW5kaWYKKworI2RlZmluZSBCT09TVF9DT01QSUxFUiAiQ29tZWF1IGNvbXBpbGVyIHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoX19DT01PX1ZFUlNJT05fXykKKworLy8KKy8vIHZlcnNpb25zIGNoZWNrOgorLy8gd2UgZG9uJ3Qga25vdyBDb21lYXUgcHJpb3IgdG8gdmVyc2lvbiA0MjQ1OgorI2lmIF9fQ09NT19WRVJTSU9OX18gPCA0MjQ1CisjICBlcnJvciAiQ29tcGlsZXIgbm90IGNvbmZpZ3VyZWQgLSBwbGVhc2UgcmVjb25maWd1cmUiCisjZW5kaWYKKy8vCisvLyBsYXN0IGtub3duIGFuZCBjaGVja2VkIHZlcnNpb24gaXMgNDI0NToKKyNpZiAoX19DT01PX1ZFUlNJT05fXyA+IDQyNDUpCisjICBpZiBkZWZpbmVkKEJPT1NUX0FTU0VSVF9DT05GSUcpCisjICAgICBlcnJvciAiVW5rbm93biBjb21waWxlciB2ZXJzaW9uIC0gcGxlYXNlIHJ1biB0aGUgY29uZmlndXJlIHRlc3RzIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMiCisjICBlbmRpZgorI2VuZGlmCisKKworCisKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9jb21waWxlci9jb21tb25fZWRnLmhwcCBiL2Jvb3N0L2NvbmZpZy9jb21waWxlci9jb21tb25fZWRnLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDFhMDU1Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbW1vbl9lZGcuaHBwCkBAIC0wLDAgKzEsMTAzIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMS4gCisvLyAgKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAyLiAKKy8vICAoQykgQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi4gCisvLyAgKEMpIENvcHlyaWdodCBNYXJrdXMgU2Nob2VwZmxpbiAyMDA1LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8KKy8vIE9wdGlvbnMgY29tbW9uIHRvIGFsbCBlZGcgYmFzZWQgY29tcGlsZXJzLgorLy8KKy8vIFRoaXMgaXMgaW5jbHVkZWQgZnJvbSB3aXRoaW4gdGhlIGluZGl2aWR1YWwgY29tcGlsZXIgbWluaS1jb25maWdzLgorCisjaWZuZGVmICBfX0VER19WRVJTSU9OX18KKyMgIGVycm9yIFRoaXMgZmlsZSByZXF1aXJlcyB0aGF0IF9fRURHX1ZFUlNJT05fXyBiZSBkZWZpbmVkLgorI2VuZGlmCisKKyNpZiAoX19FREdfVkVSU0lPTl9fIDw9IDIzOCkKKyMgICBkZWZpbmUgQk9PU1RfTk9fSU5URUdSQUxfSU5UNjRfVAorIyAgIGRlZmluZSBCT09TVF9OT19TRklOQUUKKyNlbmRpZgorCisjaWYgKF9fRURHX1ZFUlNJT05fXyA8PSAyNDApCisjICAgZGVmaW5lIEJPT1NUX05PX1ZPSURfUkVUVVJOUworI2VuZGlmCisKKyNpZiAoX19FREdfVkVSU0lPTl9fIDw9IDI0MSkgJiYgIWRlZmluZWQoQk9PU1RfTk9fQVJHVU1FTlRfREVQRU5ERU5UX0xPT0tVUCkKKyMgICBkZWZpbmUgQk9PU1RfTk9fQVJHVU1FTlRfREVQRU5ERU5UX0xPT0tVUAorI2VuZGlmCisKKyNpZiAoX19FREdfVkVSU0lPTl9fIDw9IDI0NCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfVEVNUExBVEVTKQorIyAgIGRlZmluZSBCT09TVF9OT19URU1QTEFURV9URU1QTEFURVMKKyNlbmRpZiAKKworI2lmIChfX0VER19WRVJTSU9OX18gPCAzMDApICYmICFkZWZpbmVkKEJPT1NUX05PX0lTX0FCU1RSQUNUKQorIyAgIGRlZmluZSBCT09TVF9OT19JU19BQlNUUkFDVAorI2VuZGlmIAorCisjaWYgKF9fRURHX1ZFUlNJT05fXyA8PSAzMDMpICYmICFkZWZpbmVkKEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwpCisjICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwKKyNlbmRpZiAKKworLy8gU2VlIGFsc28ga2FpLmhwcCB3aGljaCBjaGVja3MgYSBLYWktc3BlY2lmaWMgc3ltYm9sIGZvciBFSAorIyBpZiAhZGVmaW5lZChfX0tDQykgJiYgIWRlZmluZWQoX19FWENFUFRJT05TKSAmJiAhZGVmaW5lZChCT09TVF9OT19FWENFUFRJT05TKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX0VYQ0VQVElPTlMKKyMgZW5kaWYKKworIyBpZiAhZGVmaW5lZChfX05PX0xPTkdfTE9ORykKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfTE9OR19MT05HCisjIGVsc2UKKyMgICAgIGRlZmluZSBCT09TVF9OT19MT05HX0xPTkcKKyMgZW5kaWYKKworLy8KKy8vIEMrKzB4IGZlYXR1cmVzCisvLworLy8gICBTZWUgYWJvdmUgZm9yIEJPT1NUX05PX0xPTkdfTE9ORworLy8KKyNpZiAoX19FREdfVkVSU0lPTl9fIDwgMzEwKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYVEVSTl9URU1QTEFURQorI2VuZGlmCisjaWYgKF9fRURHX1ZFUlNJT05fXyA8PSAzMTApCisvLyBObyBzdXBwb3J0IGZvciBpbml0aWFsaXplciBsaXN0cworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjZW5kaWYKKyNpZiAoX19FREdfVkVSU0lPTl9fIDwgNDAwKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX01BQ1JPUworI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMTZfVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMzJfVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9DT05TVEVYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEVfTjMyNzYKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9FWFBMSUNJVF9DT05WRVJTSU9OX09QRVJBVE9SUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTEFNQkRBUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9MT0NBTF9DTEFTU19URU1QTEFURV9QQVJBTUVURVJTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05PRVhDRVBUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTExQVFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBV19MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9TQ09QRURfRU5VTVMKKyNkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFX0VYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9URU1QTEFURV9BTElBU0VTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisKKyNpZmRlZiBjX3BsdXNwbHVzCisvLyBFREcgaGFzICJsb25nIGxvbmciIGluIG5vbi1zdHJpY3QgbW9kZQorLy8gSG93ZXZlciwgc29tZSBsaWJyYXJpZXMgaGF2ZSBpbnN1ZmZpY2llbnQgImxvbmcgbG9uZyIgc3VwcG9ydAorLy8gI2RlZmluZSBCT09TVF9IQVNfTE9OR19MT05HCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9jb21waWxlci9jb21wYXFfY3h4LmhwcCBiL2Jvb3N0L2NvbmZpZy9jb21waWxlci9jb21wYXFfY3h4LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDQ0ODZjCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbXBhcV9jeHguaHBwCkBAIC0wLDAgKzEsMTkgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgVHJ1NjQgQysrIGNvbXBpbGVyIHNldHVwIChub3cgSFApOgorCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJIUCBUcnU2NCBDKysgIiBCT09TVF9TVFJJTkdJWkUoX19ERUNDWFhfVkVSKQorCisjaW5jbHVkZSAiYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbW1vbl9lZGcuaHBwIgorCisvLworLy8gdmVyc2lvbnMgY2hlY2s6CisvLyBOb3RoaW5nIHRvIGRvIGhlcmU/CisKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvY29tcGlsZXIvY3JheS5ocHAgYi9ib29zdC9jb25maWcvY29tcGlsZXIvY3JheS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ2M2VhMAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9jb21waWxlci9jcmF5LmhwcApAQCAtMCwwICsxLDYzIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAxMS4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgR3JlZW5oaWxscyBDIGNvbXBpbGVyIHNldHVwOgorCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJDcmF5IEMgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfUkVMRUFTRSkKKworI2lmIF9SRUxFQVNFIDwgNworIyAgZXJyb3IgIkJvb3N0IGlzIG5vdCBjb25maWd1cmVkIGZvciBDcmF5IGNvbXBpbGVycyBwcmlvciB0byB2ZXJzaW9uIDcsIHBsZWFzZSB0cnkgdGhlIGNvbmZpZ3VyZSBzY3JpcHQuIgorI2VuZGlmCisKKy8vCisvLyBDaGVjayB0aGlzIGlzIGEgcmVjZW50IEVERyBiYXNlZCBjb21waWxlciwgb3RoZXJ3aXNlIHdlIGRvbid0IHN1cHBvcnQgaXQgaGVyZToKKy8vCisjaWZuZGVmIF9fRURHX1ZFUlNJT05fXworIyAgZXJyb3IgIlVuc3VwcG9ydGVkIENyYXkgY29tcGlsZXIsIHBsZWFzZSB0cnkgcnVubmluZyB0aGUgY29uZmlndXJlIHNjcmlwdC4iCisjZW5kaWYKKworI2luY2x1ZGUgImJvb3N0L2NvbmZpZy9jb21waWxlci9jb21tb25fZWRnLmhwcCIKKworLy8KKy8vIENyYXkgcGVjdWxpYXJpdGllcywgcHJvYmFibHkgdmVyc2lvbiA3IHNwZWNpZmljOgorLy8KKyN1bmRlZiBCT09TVF9OT19DWFgxMV9BVVRPX0RFQ0xBUkFUSU9OUworI3VuZGVmIEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfSEFTX05SVk8KKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjZGVmaW5lIEJPT1NUX0hBU19OUlZPCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1RFTVBMQVRFX0FMSUFTRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVAorI2RlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9TQ09QRURfRU5VTVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBV19MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05PRVhDRVBUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9DT05TVEVYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ09NUExFVEVfVkFMVUVfSU5JVElBTElaQVRJT04KKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjMyX1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QKKy8vI2RlZmluZSBCT09TVF9CQ0JfUEFSVElBTF9TUEVDSUFMSVpBVElPTl9CVUcKKyNkZWZpbmUgQk9PU1RfTUFUSF9ESVNBQkxFX1NURF9GUENMQVNTSUZZCisvLyNkZWZpbmUgQk9PU1RfSEFTX0ZQQ0xBU1NJRlkKKworI2RlZmluZSBCT09TVF9TUF9VU0VfUFRIUkVBRFMgCisjZGVmaW5lIEJPT1NUX0FDX1VTRV9QVEhSRUFEUyAKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2RpZ2l0YWxtYXJzLmhwcCBiL2Jvb3N0L2NvbmZpZy9jb21waWxlci9kaWdpdGFsbWFycy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTVjYzIwOQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9jb21waWxlci9kaWdpdGFsbWFycy5ocHAKQEAgLTAsMCArMSwxMDMgQEAKKy8vICBDb3B5cmlnaHQgKEMpIENocmlzdG9mIE1lZXJ3YWxkIDIwMDMKKy8vICBDb3B5cmlnaHQgKEMpIERhbiBXYXRraW5zIDIwMDMKKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgRGlnaXRhbCBNYXJzIEMrKyBjb21waWxlciBzZXR1cDoKKyNkZWZpbmUgQk9PU1RfQ09NUElMRVIgX19ETUNfVkVSU0lPTl9TVFJJTkdfXworCisjZGVmaW5lIEJPT1NUX0hBU19MT05HX0xPTkcKKyNkZWZpbmUgQk9PU1RfSEFTX1BSQUdNQV9PTkNFCisKKyNpZiAoX19ETUNfXyA8PSAweDgzMykKKyNkZWZpbmUgQk9PU1RfRlVOQ1RJT05fU0NPUEVfVVNJTkdfREVDTEFSQVRJT05fQlJFQUtTX0FETAorI2RlZmluZSBCT09TVF9OT19URU1QTEFURV9URU1QTEFURVMKKyNkZWZpbmUgQk9PU1RfTkVFRFNfVE9LRU5fUEFTVElOR19PUF9GT1JfVE9LRU5TX0pVWFRBUE9TSU5HCisjZGVmaW5lIEJPT1NUX05PX0FSUkFZX1RZUEVfU1BFQ0lBTElaQVRJT05TCisjZGVmaW5lIEJPT1NUX05PX0VYUExJQ0lUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1VNRU5UUworI2VuZGlmCisjaWYgKF9fRE1DX18gPD0gMHg4NDApIHx8ICFkZWZpbmVkKEJPT1NUX1NUUklDVF9DT05GSUcpCisjZGVmaW5lIEJPT1NUX05PX0VYUExJQ0lUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1VNRU5UUworI2RlZmluZSBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVfRlJJRU5EUworI2RlZmluZSBCT09TVF9OT19PUEVSQVRPUlNfSU5fTkFNRVNQQUNFCisjZGVmaW5lIEJPT1NUX05PX1VOUkVBQ0hBQkxFX1JFVFVSTl9ERVRFQ1RJT04KKyNkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFCisjZGVmaW5lIEJPT1NUX05PX1VTSU5HX1RFTVBMQVRFCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwKKyNlbmRpZgorCisvLworLy8gaGFzIG1hY3JvczoKKyNpZiAoX19ETUNfXyA+PSAweDg0MCkKKyNkZWZpbmUgQk9PU1RfSEFTX0RJUkVOVF9ICisjZGVmaW5lIEJPT1NUX0hBU19TVERJTlRfSAorI2RlZmluZSBCT09TVF9IQVNfV0lOVEhSRUFEUworI2VuZGlmCisKKyNpZiAoX19ETUNfXyA+PSAweDg0NykKKyNkZWZpbmUgQk9PU1RfSEFTX0VYUE0xCisjZGVmaW5lIEJPT1NUX0hBU19MT0cxUAorI2VuZGlmCisKKy8vCisvLyBJcyB0aGlzIHJlYWxseSB0aGUgYmVzdCB3YXkgdG8gZGV0ZWN0IHdoZXRoZXIgdGhlIHN0ZCBsaWIgaXMgaW4gbmFtZXNwYWNlIHN0ZD8KKy8vCisjaWZkZWYgX19jcGx1c3BsdXMKKyNpbmNsdWRlIDxjc3RkZGVmPgorI2VuZGlmCisjaWYgIWRlZmluZWQoX19TVExfSU1QT1JUX1ZFTkRPUl9DU1REKSAmJiAhZGVmaW5lZChfU1RMUF9JTVBPUlRfVkVORE9SX0NTVEQpCisjICBkZWZpbmUgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKKyNlbmRpZgorCisKKy8vIGNoZWNrIGZvciBleGNlcHRpb24gaGFuZGxpbmcgc3VwcG9ydDoKKyNpZiAhZGVmaW5lZChfQ1BQVU5XSU5EKSAmJiAhZGVmaW5lZChCT09TVF9OT19FWENFUFRJT05TKQorIyAgZGVmaW5lIEJPT1NUX05PX0VYQ0VQVElPTlMKKyNlbmRpZgorCisvLworLy8gQysrMHggZmVhdHVyZXMKKy8vCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjMyX1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2CisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhURVJOX1RFTVBMQVRFCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9OT0VYQ0VQVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBTkdFX0JBU0VEX0ZPUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQVdfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU0NPUEVEX0VOVU1TCisjZGVmaW5lIEJPT1NUX05PX1NGSU5BRV9FWFBSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9VTklGSUVEX0lOSVRJQUxJWkFUSU9OX1NZTlRBWAorCisjaWYgKF9fRE1DX18gPCAweDgxMikKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjZW5kaWYKKworI2lmIF9fRE1DX18gPCAweDgwMAorI2Vycm9yICJDb21waWxlciBub3Qgc3VwcG9ydGVkIG9yIGNvbmZpZ3VyZWQgLSBwbGVhc2UgcmVjb25maWd1cmUiCisjZW5kaWYKKy8vCisvLyBsYXN0IGtub3duIGFuZCBjaGVja2VkIHZlcnNpb24gaXMgLi4uOgorI2lmIChfX0RNQ19fID4gMHg4NDgpCisjICBpZiBkZWZpbmVkKEJPT1NUX0FTU0VSVF9DT05GSUcpCisjICAgICBlcnJvciAiVW5rbm93biBjb21waWxlciB2ZXJzaW9uIC0gcGxlYXNlIHJ1biB0aGUgY29uZmlndXJlIHRlc3RzIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMiCisjICBlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvY29tcGlsZXIvZ2NjLmhwcCBiL2Jvb3N0L2NvbmZpZy9jb21waWxlci9nY2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwYWMzMGEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvY29tcGlsZXIvZ2NjLmhwcApAQCAtMCwwICsxLDI2MCBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IERhcmluIEFkbGVyIDIwMDEgLSAyMDAyLiAKKy8vICAoQykgQ29weXJpZ2h0IEplbnMgTWF1cmVyIDIwMDEgLSAyMDAyLiAKKy8vICAoQykgQ29weXJpZ2h0IEJlbWFuIERhd2VzIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IERvdWdsYXMgR3JlZ29yIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMiAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgU3luZ2UgVG9kbyAyMDAzLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBHTlUgQysrIGNvbXBpbGVyIHNldHVwOgorCisjaWYgX19HTlVDX18gPCAzCisjICAgaWYgX19HTlVDX01JTk9SX18gPT0gOTEKKyAgICAgICAvLyBlZ2NzIDEuMSB3b24ndCBwYXJzZSBzaGFyZWRfcHRyLmhwcCB3aXRob3V0IHRoaXM6CisjICAgICAgZGVmaW5lIEJPT1NUX05PX0FVVE9fUFRSCisjICAgZW5kaWYKKyMgICBpZiBfX0dOVUNfTUlOT1JfXyA8IDk1CisgICAgICAvLworICAgICAgLy8gUHJpb3IgdG8gZ2NjIDIuOTUgbWVtYmVyIHRlbXBsYXRlcyBvbmx5IHBhcnRseQorICAgICAgLy8gd29yayAtIGRlZmluZSBCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTCisgICAgICAvLyBpbnN0ZWFkIHNpbmNlIGlubGluZSBtZW1iZXIgdGVtcGxhdGVzIG1vc3RseSB3b3JrLgorICAgICAgLy8KKyMgICAgIGRlZmluZSBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVTCisjICAgICBpZiBfX0dOVUNfTUlOT1JfXyA+PSA5CisjICAgICAgIGRlZmluZSBCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTCisjICAgICBlbmRpZgorIyAgIGVuZGlmCisKKyMgICBpZiBfX0dOVUNfTUlOT1JfXyA8IDk2CisjICAgICBkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFCisjICAgZW5kaWYKKworIyAgIGlmIF9fR05VQ19NSU5PUl9fIDw9IDk3CisjICAgICBkZWZpbmUgQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFX0ZSSUVORFMKKyMgICAgIGRlZmluZSBCT09TVF9OT19PUEVSQVRPUlNfSU5fTkFNRVNQQUNFCisjICAgZW5kaWYKKworIyAgIGRlZmluZSBCT09TVF9OT19VU0lOR19ERUNMQVJBVElPTl9PVkVSTE9BRFNfRlJPTV9UWVBFTkFNRV9CQVNFCisjICAgZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwKKyMgICBkZWZpbmUgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKKyMgICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhURVJOX1RFTVBMQVRFCisvLyBWYXJpYWRpYyBtYWNyb3MgZG8gbm90IGV4aXN0IGZvciBnY2MgdmVyc2lvbnMgYmVmb3JlIDMuMAorIyAgIGRlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MKKyNlbGlmIF9fR05VQ19fID09IDMKKyMgIGlmIGRlZmluZWQgKF9fUEFUSFNDQUxFX18pCisjICAgICBkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjICAgICBkZWZpbmUgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKKyMgIGVuZGlmCisgICAvLworICAgLy8gZ2NjLTMueCBwcm9ibGVtczoKKyAgIC8vCisgICAvLyBCdWcgc3BlY2lmaWMgdG8gZ2NjIDMuMSBhbmQgMy4yOgorICAgLy8KKyMgIGlmICgoX19HTlVDX01JTk9SX18gPT0gMSkgfHwgKF9fR05VQ19NSU5PUl9fID09IDIpKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX0VYUExJQ0lUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1VNRU5UUworIyAgZW5kaWYKKyMgIGlmIF9fR05VQ19NSU5PUl9fIDwgNAorIyAgICAgZGVmaW5lIEJPT1NUX05PX0lTX0FCU1RSQUNUCisjICBlbmRpZgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYVEVSTl9URU1QTEFURQorI2VuZGlmCisjaWYgX19HTlVDX18gPCA0CisvLworLy8gQWxsIHByb2JsZW1zIHRvIGdjYy0zLnggYW5kIGVhcmxpZXIgaGVyZToKKy8vCisjZGVmaW5lIEJPT1NUX05PX1RXT19QSEFTRV9OQU1FX0xPT0tVUAorIyAgaWZkZWYgX19PUEVONjRfXworIyAgICAgZGVmaW5lIEJPT1NUX05PX0lTX0FCU1RSQUNUCisjICBlbmRpZgorI2VuZGlmCisKKyNpZiBfX0dOVUNfXyA8IDQgfHwgKCBfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgNCApCisvLyBQcmV2aW91cyB2ZXJzaW9ucyBvZiBHQ0MgZGlkIG5vdCBjb21wbGV0ZWx5IGltcGxlbWVudCB2YWx1ZS1pbml0aWFsaXphdGlvbjoKKy8vIEdDQyBCdWcgMzAxMTEsICJWYWx1ZS1pbml0aWFsaXphdGlvbiBvZiBQT0QgYmFzZSBjbGFzcyBkb2Vzbid0IGluaXRpYWxpemUKKy8vIG1lbWJlcnMiLCByZXBvcnRlZCBieSBKb25hdGhhbiBXYWtlbHkgaW4gMjAwNiwKKy8vIGh0dHA6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzAxMTEgKGZpeGVkIGZvciBHQ0MgNC40KQorLy8gR0NDIEJ1ZyAzMzkxNiwgIkRlZmF1bHQgY29uc3RydWN0b3IgZmFpbHMgdG8gaW5pdGlhbGl6ZSBhcnJheSBtZW1iZXJzIiwKKy8vIHJlcG9ydGVkIGJ5IE1pY2hhZWwgRWxpemFiZXRoIENoYXN0YWluIGluIDIwMDcsCisvLyBodHRwOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTMzOTE2IChmaXhlZCBmb3IgR0NDIDQuMi40KQorLy8gU2VlIGFsc286IGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdXRpbGl0eS92YWx1ZV9pbml0Lmh0bSNjb21waWxlcl9pc3N1ZXMKKyNkZWZpbmUgQk9PU1RfTk9fQ09NUExFVEVfVkFMVUVfSU5JVElBTElaQVRJT04KKyNlbmRpZgorCisjaWYgIWRlZmluZWQoX19FWENFUFRJT05TKSAmJiAhZGVmaW5lZChCT09TVF9OT19FWENFUFRJT05TKQorIyBkZWZpbmUgQk9PU1RfTk9fRVhDRVBUSU9OUworI2VuZGlmCisKKworLy8KKy8vIFRocmVhZGluZyBzdXBwb3J0OiBUdXJuIHRoaXMgb24gdW5jb25kaXRpb25hbGx5IGhlcmUgKGV4Y2VwdCBmb3IKKy8vIHRob3NlIHBsYXRmb3JtcyB3aGVyZSB3ZSBjYW4ga25vdyBmb3Igc3VyZSkuIEl0IHdpbGwgZ2V0IHR1cm5lZCBvZmYgYWdhaW4KKy8vIGxhdGVyIGlmIG5vIHRocmVhZGluZyBBUEkgaXMgZGV0ZWN0ZWQuCisvLworI2lmICFkZWZpbmVkKF9fTUlOR1czMl9fKSAmJiAhZGVmaW5lZChsaW51eCkgJiYgIWRlZmluZWQoX19saW51eCkgJiYgIWRlZmluZWQoX19saW51eF9fKQorIyBkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyNlbmRpZiAKKworLy8KKy8vIGdjYyBoYXMgImxvbmcgbG9uZyIKKy8vCisjZGVmaW5lIEJPT1NUX0hBU19MT05HX0xPTkcKKworLy8KKy8vIGdjYyBpbXBsZW1lbnRzIHRoZSBuYW1lZCByZXR1cm4gdmFsdWUgb3B0aW1pemF0aW9uIHNpbmNlIHZlcnNpb24gMy4xCisvLworI2lmIF9fR05VQ19fID4gMyB8fCAoIF9fR05VQ19fID09IDMgJiYgX19HTlVDX01JTk9SX18gPj0gMSApCisjZGVmaW5lIEJPT1NUX0hBU19OUlZPCisjZW5kaWYKKworLy8KKy8vIER5bmFtaWMgc2hhcmVkIG9iamVjdCAoRFNPKSBhbmQgZHluYW1pYy1saW5rIGxpYnJhcnkgKERMTCkgc3VwcG9ydAorLy8KKyNpZiBfX0dOVUNfXyA+PSA0CisjICBpZiAoZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX19XSU4zMl9fKSB8fCBkZWZpbmVkKFdJTjMyKSkgJiYgIWRlZmluZWQoX19DWUdXSU5fXykKKyAgICAgLy8gQWxsIFdpbjMyIGRldmVsb3BtZW50IGVudmlyb25tZW50cywgaW5jbHVkaW5nIDY0LWJpdCBXaW5kb3dzIGFuZCBNaW5HVywgZGVmaW5lIAorICAgICAvLyBfV0lOMzIgb3Igb25lIG9mIGl0cyB2YXJpYW50IHNwZWxsaW5ncy4gTm90ZSB0aGF0IEN5Z3dpbiBpcyBhIFBPU0lYIGVudmlyb25tZW50LAorICAgICAvLyBzbyBkb2VzIG5vdCBkZWZpbmUgX1dJTjMyIG9yIGl0cyB2YXJpYW50cy4KKyMgICAgZGVmaW5lIEJPT1NUX0hBU19ERUNMU1BFQworIyAgICBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVCBfX2F0dHJpYnV0ZV9fKChkbGxleHBvcnQpKQorIyAgICBkZWZpbmUgQk9PU1RfU1lNQk9MX0lNUE9SVCBfX2F0dHJpYnV0ZV9fKChkbGxpbXBvcnQpKQorIyAgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVCBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorIyAgICBkZWZpbmUgQk9PU1RfU1lNQk9MX0lNUE9SVAorIyAgZW5kaWYKKyMgIGRlZmluZSBCT09TVF9TWU1CT0xfVklTSUJMRSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2Vsc2UKKy8vIGNvbmZpZy9wbGF0Zm9ybS93aW4zMi5ocHAgd2lsbCBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVCwgZXRjLiwgdW5sZXNzIGFscmVhZHkgZGVmaW5lZCAgCisjICBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVAorI2VuZGlmCisKKy8vCisvLyBSVFRJIGFuZCB0eXBlaW5mbyBkZXRlY3Rpb24gaXMgcG9zc2libGUgcG9zdCBnY2MtNC4zOgorLy8KKyNpZiBfX0dOVUNfXyAqIDEwMCArIF9fR05VQ19NSU5PUl9fID49IDQwMworIyAgaWZuZGVmIF9fR1hYX1JUVEkKKyMgICAgIGlmbmRlZiBCT09TVF9OT19UWVBFSUQKKyMgICAgICAgIGRlZmluZSBCT09TVF9OT19UWVBFSUQKKyMgICAgIGVuZGlmCisjICAgICBpZm5kZWYgQk9PU1RfTk9fUlRUSQorIyAgICAgICAgZGVmaW5lIEJPT1NUX05PX1JUVEkKKyMgICAgIGVuZGlmCisjICBlbmRpZgorI2VuZGlmCisKKy8vCisvLyBSZWNlbnQgR0NDIHZlcnNpb25zIGhhdmUgX19pbnQxMjggd2hlbiBpbiA2NC1iaXQgbW9kZToKKy8vCisjaWYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKKyMgIGRlZmluZSBCT09TVF9IQVNfSU5UMTI4CisjZW5kaWYKKworLy8gQysrMHggZmVhdHVyZXMgaW4gNC4zLm4gYW5kIGxhdGVyCisvLworI2lmIChfX0dOVUNfXyA+IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPiAyKSkgJiYgZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykKKy8vIEMrKzB4IGZlYXR1cmVzIGFyZSBvbmx5IGVuYWJsZWQgd2hlbiAtc3RkPWMrKzB4IG9yIC1zdGQ9Z251KysweCBhcmUKKy8vIHBhc3NlZCBvbiB0aGUgY29tbWFuZCBsaW5lLCB3aGljaCBpbiB0dXJuIGRlZmluZXMKKy8vIF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fLgorIyAgZGVmaW5lIEJPT1NUX0hBU19ERUNMVFlQRQorIyAgZGVmaW5lIEJPT1NUX0hBU19SVkFMVUVfUkVGUworIyAgZGVmaW5lIEJPT1NUX0hBU19TVEFUSUNfQVNTRVJUCisjICBkZWZpbmUgQk9PU1RfSEFTX1ZBUklBRElDX1RNUEwKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKworLy8gVmFyaWFkaWMgdGVtcGxhdGVzIGNvbXBpbGVyOiAKKy8vICAgaHR0cDovL3d3dy5nZW5lcmljLXByb2dyYW1taW5nLm9yZy9+ZGdyZWdvci9jcHAvdmFyaWFkaWMtdGVtcGxhdGVzLmh0bWwKKyMgIGlmIGRlZmluZWQoX19WQVJJQURJQ19URU1QTEFURVMpIHx8IChfX0dOVUNfXyA+IDQpIHx8ICgoX19HTlVDX18gPT0gNCkgJiYgKF9fR05VQ19NSU5PUl9fID49IDQpICYmIGRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pKQorIyAgICBkZWZpbmUgQk9PU1RfSEFTX1ZBUklBRElDX1RNUEwKKyMgIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUworIyAgZW5kaWYKKyNlbmRpZgorCisvLyBDKysweCBmZWF0dXJlcyBpbiA0LjQubiBhbmQgbGF0ZXIKKy8vCisjaWYgX19HTlVDX18gPCA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgNCkgfHwgIWRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMzJfVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFTEVURURfRlVOQ1RJT05TCisjZW5kaWYKKworI2lmIF9fR05VQ19fIDwgNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA8IDUpCisjICBkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFX0VYUFIKKyNlbmRpZgorCisvLyBDKysweCBmZWF0dXJlcyBpbiA0LjUuMCBhbmQgbGF0ZXIKKy8vCisjaWYgX19HTlVDX18gPCA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgNSkgfHwgIWRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9MQU1CREFTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBV19MSVRFUkFMUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMKKyNlbmRpZgorCisvLyBDKysweCBmZWF0dXJlcyBpbiA0LjUuMSBhbmQgbGF0ZXIKKy8vCisjaWYgKF9fR05VQ19fKjEwMDAwICsgX19HTlVDX01JTk9SX18qMTAwICsgX19HTlVDX1BBVENITEVWRUxfXyA8IDQwNTAxKSB8fCAhZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykKKy8vIHNjb3BlZCBlbnVtcyBoYXZlIGEgc2VyaW91cyBidWcgaW4gNC40LjAsIHNvIGRlZmluZSBCT09TVF9OT19DWFgxMV9TQ09QRURfRU5VTVMgYmVmb3JlIDQuNS4xCisvLyBTZWUgaHR0cDovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zODA2NAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworI2VuZGlmCisKKy8vIEMrKzB4IGZlYXR1cmVzIGluIDQuNi5uIGFuZCBsYXRlcgorLy8KKyNpZiBfX0dOVUNfXyA8IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPCA2KSB8fCAhZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05PRVhDRVBUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTExQVFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisjZW5kaWYKKworI2lmIF9fR05VQ19fIDwgNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA8IDcpIHx8ICFkZWZpbmVkKF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1RFTVBMQVRFX0FMSUFTRVMKKyNlbmRpZgorLy8gQysrMHggZmVhdHVyZXMgbm90IHN1cHBvcnRlZCBhdCBhbGwgeWV0CisvLworI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NgorCisjaWZuZGVmIEJPT1NUX0NPTVBJTEVSCisjICBkZWZpbmUgQk9PU1RfQ09NUElMRVIgIkdOVSBDKysgdmVyc2lvbiAiIF9fVkVSU0lPTl9fCisjZW5kaWYKKworLy8gQ29uY2VwdEdDQyBjb21waWxlcjoKKy8vICAgaHR0cDovL3d3dy5nZW5lcmljLXByb2dyYW1taW5nLm9yZy9zb2Z0d2FyZS9Db25jZXB0R0NDLworI2lmZGVmIF9fR1hYX0NPTkNFUFRTX18KKyMgIGRlZmluZSBCT09TVF9IQVNfQ09OQ0VQVFMKKyMgIGRlZmluZSBCT09TVF9DT01QSUxFUiAiQ29uY2VwdEdDQyB2ZXJzaW9uICIgX19WRVJTSU9OX18KKyNlbmRpZgorCisvLyB2ZXJzaW9ucyBjaGVjazoKKy8vIHdlIGRvbid0IGtub3cgZ2NjIHByaW9yIHRvIHZlcnNpb24gMi45MDoKKyNpZiAoX19HTlVDX18gPT0gMikgJiYgKF9fR05VQ19NSU5PUl9fIDwgOTApCisjICBlcnJvciAiQ29tcGlsZXIgbm90IGNvbmZpZ3VyZWQgLSBwbGVhc2UgcmVjb25maWd1cmUiCisjZW5kaWYKKy8vCisvLyBsYXN0IGtub3duIGFuZCBjaGVja2VkIHZlcnNpb24gaXMgNC42IChQcmUtcmVsZWFzZSk6CisjaWYgKF9fR05VQ19fID4gNCkgfHwgKChfX0dOVUNfXyA9PSA0KSAmJiAoX19HTlVDX01JTk9SX18gPiA2KSkKKyMgIGlmIGRlZmluZWQoQk9PU1RfQVNTRVJUX0NPTkZJRykKKyMgICAgIGVycm9yICJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIKKyMgIGVsc2UKKy8vIHdlIGRvbid0IGVtaXQgd2FybmluZ3MgaGVyZSBhbnltb3JlIHNpbmNlIHRoZXJlIGFyZSBubyBkZWZlY3QgbWFjcm9zIGRlZmluZWQgZm9yCisvLyBnY2MgcG9zdCAzLjQsIHNvIGFueSBmYWlsdXJlcyBhcmUgZ2NjIHJlZ3Jlc3Npb25zLi4uCisvLyMgICAgIHdhcm5pbmcgIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIgorIyAgZW5kaWYKKyNlbmRpZgorCisKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9jb21waWxlci9nY2NfeG1sLmhwcCBiL2Jvb3N0L2NvbmZpZy9jb21waWxlci9nY2NfeG1sLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWVkNGI1Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2djY194bWwuaHBwCkBAIC0wLDAgKzEsNjAgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDA2LiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBHQ0MtWE1MIEMrKyBjb21waWxlciBzZXR1cDoKKworIyAgaWYgIWRlZmluZWQoX19HQ0NYTUxfR05VQ19fKSB8fCAoKF9fR0NDWE1MX0dOVUNfXyA8PSAzKSAmJiAoX19HQ0NYTUxfR05VQ19NSU5PUl9fIDw9IDMpKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX0lTX0FCU1RSQUNUCisjICBlbmRpZgorCisvLworLy8gVGhyZWFkaW5nIHN1cHBvcnQ6IFR1cm4gdGhpcyBvbiB1bmNvbmRpdGlvbmFsbHkgaGVyZSAoZXhjZXB0IGZvcgorLy8gdGhvc2UgcGxhdGZvcm1zIHdoZXJlIHdlIGNhbiBrbm93IGZvciBzdXJlKS4gSXQgd2lsbCBnZXQgdHVybmVkIG9mZiBhZ2FpbgorLy8gbGF0ZXIgaWYgbm8gdGhyZWFkaW5nIEFQSSBpcyBkZXRlY3RlZC4KKy8vCisjaWYgIWRlZmluZWQoX19NSU5HVzMyX18pICYmICFkZWZpbmVkKF9NU0NfVkVSKSAmJiAhZGVmaW5lZChsaW51eCkgJiYgIWRlZmluZWQoX19saW51eCkgJiYgIWRlZmluZWQoX19saW51eF9fKQorIyBkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyNlbmRpZiAKKworLy8KKy8vIGdjYyBoYXMgImxvbmcgbG9uZyIKKy8vCisjZGVmaW5lIEJPT1NUX0hBU19MT05HX0xPTkcKKworLy8gQysrMHggZmVhdHVyZXM6CisvLworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0NPTlNURVhQUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTExQVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9URU1QTEFURV9BTElBU0VTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0ZVTkNUSU9OX1RFTVBMQVRFX0RFRkFVTFRfQVJHUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX01BQ1JPUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIxNl9UCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjMyX1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9ERUZBVUxURURfRlVOQ1RJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUyAgCisjICBkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFX0VYUFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9FWFBMSUNJVF9DT05WRVJTSU9OX09QRVJBVE9SUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9MT0NBTF9DTEFTU19URU1QTEFURV9QQVJBTUVURVJTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFXX0xJVEVSQUxTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JQ09ERV9MSVRFUkFMUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX05PRVhDRVBUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisKKyNkZWZpbmUgQk9PU1RfQ09NUElMRVIgIkdDQy1YTUwgQysrIHZlcnNpb24gIiBfX0dDQ1hNTF9fCisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2dyZWVuaGlsbHMuaHBwIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2dyZWVuaGlsbHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzOGI2YjIKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvY29tcGlsZXIvZ3JlZW5oaWxscy5ocHAKQEAgLTAsMCArMSwyOCBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIEdyZWVuaGlsbHMgQysrIGNvbXBpbGVyIHNldHVwOgorCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJHcmVlbmhpbGxzIEMrKyB2ZXJzaW9uICIgQk9PU1RfU1RSSU5HSVpFKF9fZ2hzKQorCisjaW5jbHVkZSAiYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbW1vbl9lZGcuaHBwIgorCisvLworLy8gdmVyc2lvbnMgY2hlY2s6CisvLyB3ZSBkb24ndCBzdXBwb3J0IEdyZWVuaGlsbHMgcHJpb3IgdG8gdmVyc2lvbiAwOgorI2lmIF9fZ2hzIDwgMAorIyAgZXJyb3IgIkNvbXBpbGVyIG5vdCBzdXBwb3J0ZWQgb3IgY29uZmlndXJlZCAtIHBsZWFzZSByZWNvbmZpZ3VyZSIKKyNlbmRpZgorLy8KKy8vIGxhc3Qga25vd24gYW5kIGNoZWNrZWQgdmVyc2lvbiBpcyAwOgorI2lmIChfX2docyA+IDApCisjICBpZiBkZWZpbmVkKEJPT1NUX0FTU0VSVF9DT05GSUcpCisjICAgICBlcnJvciAiVW5rbm93biBjb21waWxlciB2ZXJzaW9uIC0gcGxlYXNlIHJ1biB0aGUgY29uZmlndXJlIHRlc3RzIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMiCisjICBlbmRpZgorI2VuZGlmCisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2hwX2FjYy5ocHAgYi9ib29zdC9jb25maWcvY29tcGlsZXIvaHBfYWNjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjVmODFiCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2hwX2FjYy5ocHAKQEAgLTAsMCArMSwxNDAgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMiAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgVG9vbiBLbmFwZW4gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBCb3JpcyBHdWJlbmtvIDIwMDYgLSAyMDA3LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIEhQIGFDQyBDKysgY29tcGlsZXIgc2V0dXA6CisKKyNpZiBkZWZpbmVkKF9fRURHX18pCisjaW5jbHVkZSAiYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbW1vbl9lZGcuaHBwIgorI2VuZGlmCisKKyNpZiAoX19IUF9hQ0MgPD0gMzMxMDApCisjICAgIGRlZmluZSBCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UCisjICAgIGRlZmluZSBCT09TVF9OT19PUEVSQVRPUlNfSU5fTkFNRVNQQUNFCisjICBpZiAhZGVmaW5lZChfTkFNRVNQQUNFX1NURCkKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERfTE9DQUxFCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1RSSU5HU1RSRUFNCisjICBlbmRpZgorI2VuZGlmCisKKyNpZiAoX19IUF9hQ0MgPD0gMzMzMDApCisvLyBtZW1iZXIgdGVtcGxhdGVzIGFyZSBzdWZmaWNpZW50bHkgYnJva2VuIHRoYXQgd2UgZGlzYWJsZSB0aGVtIGZvciBub3cKKyMgICAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9URU1QTEFURVMKKyMgICAgZGVmaW5lIEJPT1NUX05PX0RFUEVOREVOVF9ORVNURURfREVSSVZBVElPTlMKKyMgICAgZGVmaW5lIEJPT1NUX05PX1VTSU5HX0RFQ0xBUkFUSU9OX09WRVJMT0FEU19GUk9NX1RZUEVOQU1FX0JBU0UKKyNlbmRpZgorCisjaWYgKF9fSFBfYUNDIDw9IDM4MDAwKQorIyAgZGVmaW5lIEJPT1NUX05PX1RXT19QSEFTRV9OQU1FX0xPT0tVUAorI2VuZGlmCisKKyNpZiAoX19IUF9hQ0MgPiA1MDAwMCkgJiYgKF9fSFBfYUNDIDwgNjAwMDApCisjICAgIGRlZmluZSBCT09TVF9OT19VTlJFQUNIQUJMRV9SRVRVUk5fREVURUNUSU9OCisjICAgIGRlZmluZSBCT09TVF9OT19URU1QTEFURV9URU1QTEFURVMKKyMgICAgZGVmaW5lIEJPT1NUX05PX1NXUFJJTlRGCisjICAgIGRlZmluZSBCT09TVF9OT19ERVBFTkRFTlRfVFlQRVNfSU5fVEVNUExBVEVfVkFMVUVfUEFSQU1FVEVSUworIyAgICBkZWZpbmUgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKKyMgICAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9URU1QTEFURV9GUklFTkRTCisjZW5kaWYgCisKKy8vIG9wdGlvbmFsIGZlYXR1cmVzIHJhdGhlciB0aGFuIGRlZmVjdHM6CisjaWYgKF9fSFBfYUNDID49IDMzOTAwKQorIyAgICBkZWZpbmUgQk9PU1RfSEFTX0xPTkdfTE9ORworIyAgICBkZWZpbmUgQk9PU1RfSEFTX1BBUlRJQUxfU1REX0FMTE9DQVRPUgorI2VuZGlmCisKKyNpZiAoX19IUF9hQ0MgPj0gNTAwMDAgKSAmJiAoX19IUF9hQ0MgPD0gNTM4MDAgKSB8fCAoX19IUF9hQ0MgPCAzMTMwMCApCisjICAgIGRlZmluZSBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVfS0VZV09SRAorI2VuZGlmCisKKy8vIFRoaXMgbWFjcm8gc2hvdWxkIG5vdCBiZSBkZWZpbmVkIHdoZW4gY29tcGlsaW5nIGluIHN0cmljdCBhbnNpCisvLyBtb2RlLCBidXQsIGN1cnJlbnRseSwgd2UgZG9uJ3QgaGF2ZSB0aGUgYWJpbGl0eSB0byBkZXRlcm1pbmUKKy8vIHdoYXQgc3RhbmRhcmQgbW9kZSB3ZSBhcmUgY29tcGlsaW5nIHdpdGguIFNvbWUgZnV0dXJlIHZlcnNpb24KKy8vIG9mIGFDQzYgY29tcGlsZXIgd2lsbCBwcm92aWRlIHByZWRlZmluZWQgbWFjcm9zIHJlZmxlY3RpbmcgdGhlCisvLyBjb21waWxhdGlvbiBvcHRpb25zLCBpbmNsdWRpbmcgdGhlIHN0YW5kYXJkIG1vZGUuCisjaWYgKF9fSFBfYUNDID49IDYwMDAwKSB8fCAoKF9fSFBfYUNDID4gMzgwMDApICYmIGRlZmluZWQoX19ocHhzdGQ5OCkpCisjICAgIGRlZmluZSBCT09TVF9OT19UV09fUEhBU0VfTkFNRV9MT09LVVAKKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJIUCBhQ0MgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfX0hQX2FDQykKKworLy8KKy8vIHZlcnNpb25zIGNoZWNrOgorLy8gd2UgZG9uJ3Qgc3VwcG9ydCBIUCBhQ0MgcHJpb3IgdG8gdmVyc2lvbiAzMzAwMDoKKyNpZiBfX0hQX2FDQyA8IDMzMDAwCisjICBlcnJvciAiQ29tcGlsZXIgbm90IHN1cHBvcnRlZCBvciBjb25maWd1cmVkIC0gcGxlYXNlIHJlY29uZmlndXJlIgorI2VuZGlmCisKKy8vCisvLyBFeHRlbmRlZCBjaGVja3MgZm9yIHN1cHBvcnRpbmcgYUNDIG9uIFBBLVJJU0MKKyNpZiBfX0hQX2FDQyA+IDMwMDAwICYmIF9fSFBfYUNDIDwgNTAwMDAKKyMgIGlmIF9fSFBfYUNDIDwgMzgwMDAKKyAgICAgIC8vIHZlcnNpb25zIHByaW9yIHRvIHZlcnNpb24gQS4wMy44MCBub3Qgc3VwcG9ydGVkCisjICAgICBlcnJvciAiQ29tcGlsZXIgdmVyc2lvbiBub3Qgc3VwcG9ydGVkIC0gdmVyc2lvbiBBLjAzLjgwIG9yIGhpZ2hlciBpcyByZXF1aXJlZCIKKyMgIGVsaWYgIWRlZmluZWQoX19ocHhzdGQ5OCkKKyAgICAgIC8vIG11c3QgY29tcGlsZSB1c2luZyB0aGUgb3B0aW9uICtocHhzdGQ5OCB3aXRoIHZlcnNpb24gQS4wMy44MCBhbmQgYWJvdmUKKyMgICAgIGVycm9yICJDb21waWxlciBvcHRpb24gJytocHhzdGQ5OCcgaXMgcmVxdWlyZWQgZm9yIHByb3BlciBzdXBwb3J0IgorIyAgZW5kaWYgLy9QQS1SSVNDCisjZW5kaWYKKworLy8KKy8vIEMrKzB4IGZlYXR1cmVzCisvLworLy8gICBTZWUgYm9vc3RcY29uZmlnXHN1ZmZpeC5ocHAgZm9yIEJPT1NUX05PX0xPTkdfTE9ORworLy8KKyNpZiAhZGVmaW5lZChfX0VER19fKQorCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjMyX1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2CisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhURVJOX1RFTVBMQVRFCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0ZVTkNUSU9OX1RFTVBMQVRFX0RFRkFVTFRfQVJHUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9MQU1CREFTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xPQ0FMX0NMQVNTX1RFTVBMQVRFX1BBUkFNRVRFUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQU5HRV9CQVNFRF9GT1IKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFXX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworI2RlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1RFTVBMQVRFX0FMSUFTRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JQ09ERV9MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKworLyogCisgIFNlZSBodHRwczovL2ZvcnVtczEzLml0cmMuaHAuY29tL3NlcnZpY2UvZm9ydW1zL3F1ZXN0aW9uYW5zd2VyLmRvP3RocmVhZElkPTE0NDMzMzEgYW5kCisgICAgICBodHRwczovL2ZvcnVtczEzLml0cmMuaHAuY29tL3NlcnZpY2UvZm9ydW1zL3F1ZXN0aW9uYW5zd2VyLmRvP3RocmVhZElkPTE0NDM0MzYKKyovCisKKyNpZiAoX19IUF9hQ0MgPCA2MjUwMCkgfHwgIWRlZmluZWQoSFBfQ1hYMHhfU09VUkNFKQorICAjZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX01BQ1JPUworI2VuZGlmCisKKyNlbmRpZgorCisvLworLy8gbGFzdCBrbm93biBhbmQgY2hlY2tlZCB2ZXJzaW9uIGZvciBIUC1VWC9pYTY0IGlzIDYxMzAwCisvLyBsYXN0IGtub3duIGFuZCBjaGVja2VkIHZlcnNpb24gZm9yIFBBLVJJU0MgaXMgMzgwMDAKKyNpZiAoKF9fSFBfYUNDID4gNjEzMDApIHx8ICgoX19IUF9hQ0MgPiAzODAwMCkgJiYgZGVmaW5lZChfX2hweHN0ZDk4KSkpCisjICBpZiBkZWZpbmVkKEJPT1NUX0FTU0VSVF9DT05GSUcpCisjICAgICBlcnJvciAiVW5rbm93biBjb21waWxlciB2ZXJzaW9uIC0gcGxlYXNlIHJ1biB0aGUgY29uZmlndXJlIHRlc3RzIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMiCisjICBlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvY29tcGlsZXIvaW50ZWwuaHBwIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2ludGVsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Yzc0NmMxCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2ludGVsLmhwcApAQCAtMCwwICsxLDI3MiBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEtOC4KKy8vICAoQykgQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEuCisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAxLgorLy8gIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMiAtIDIwMDMuCisvLyAgKEMpIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDIgLSAyMDAzLgorLy8gIChDKSBDb3B5cmlnaHQgR3VpbGxhdW1lIE1lbHF1aW9uZCAyMDAyIC0gMjAwMy4KKy8vICAoQykgQ29weXJpZ2h0IEJlbWFuIERhd2VzIDIwMDMuCisvLyAgKEMpIENvcHlyaWdodCBNYXJ0aW4gV2lsbGUgMjAwMy4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgSW50ZWwgY29tcGlsZXIgc2V0dXA6CisKKyNpbmNsdWRlICJib29zdC9jb25maWcvY29tcGlsZXIvY29tbW9uX2VkZy5ocHAiCisKKyNpZiBkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpCisjICBkZWZpbmUgQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04gX19JTlRFTF9DT01QSUxFUgorI2VsaWYgZGVmaW5lZChfX0lDTCkKKyMgIGRlZmluZSBCT09TVF9JTlRFTF9DWFhfVkVSU0lPTiBfX0lDTAorI2VsaWYgZGVmaW5lZChfX0lDQykKKyMgIGRlZmluZSBCT09TVF9JTlRFTF9DWFhfVkVSU0lPTiBfX0lDQworI2VsaWYgZGVmaW5lZChfX0VDQykKKyMgIGRlZmluZSBCT09TVF9JTlRFTF9DWFhfVkVSU0lPTiBfX0VDQworI2VuZGlmCisKKy8vIEZsYWdzIGRldGVybWluZWQgYnkgY29tcGFyaW5nIG91dHB1dCBvZiAnaWNwYyAtZE0gLUUnIHdpdGggYW5kIHdpdGhvdXQgJy1zdGQ9YysrMHgnCisjaWYgKCEoZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX1dJTjY0KSkgJiYgZGVmaW5lZChfX1NURENfSE9TVEVEX18pICYmIChfX1NURENfSE9TVEVEX18gJiYgKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OIDw9IDEyMDApKSkgfHwgZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1BQMFhfXykKKyMgIGRlZmluZSBCT09TVF9JTlRFTF9TVERDWFgwWAorI2VuZGlmCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDE2MDApCisjICBkZWZpbmUgQk9PU1RfSU5URUxfU1REQ1hYMFgKKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfSU5URUxfU1REQ1hYMFgKKyNkZWZpbmUgQk9PU1RfQ09NUElMRVIgIkludGVsIEMrKyBDKysweCBtb2RlIHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04pCisjZWxzZQorI2RlZmluZSBCT09TVF9DT01QSUxFUiAiSW50ZWwgQysrIHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04pCisjZW5kaWYKKyNkZWZpbmUgQk9PU1RfSU5URUwgQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04KKworI2lmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9XSU42NCkKKyMgIGRlZmluZSBCT09TVF9JTlRFTF9XSU4gQk9PU1RfSU5URUwKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfSU5URUxfTElOVVggQk9PU1RfSU5URUwKKyNlbmRpZgorCisjaWYgKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OIDw9IDUwMCkgJiYgZGVmaW5lZChfTVNDX1ZFUikKKyMgIGRlZmluZSBCT09TVF9OT19FWFBMSUNJVF9GVU5DVElPTl9URU1QTEFURV9BUkdVTUVOVFMKKyMgIGRlZmluZSBCT09TVF9OT19URU1QTEFURV9URU1QTEFURVMKKyNlbmRpZgorCisjaWYgKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OIDw9IDYwMCkKKworIyAgaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSIDw9IDEzMDApIC8vIGFkZGVkIGNoZWNrIGZvciA8PSBWQyA3IChQZXRlciBEaW1vdikKKworLy8gQm9vc3QgbGlicmFyaWVzIGFzc3VtZSBzdHJvbmcgc3RhbmRhcmQgY29uZm9ybWFuY2UgdW5sZXNzIG90aGVyd2lzZQorLy8gaW5kaWNhdGVkIGJ5IGEgY29uZmlnIG1hY3JvLiBBcyBjb25maWd1cmVkIGJ5IEludGVsLCB0aGUgRURHIGZyb250LWVuZAorLy8gcmVxdWlyZXMgY2VydGFpbiBjb21waWxlciBvcHRpb25zIGJlIHNldCB0byBhY2hpZXZlIHRoYXQgc3Ryb25nIGNvbmZvcm1hbmNlLgorLy8gUGFydGljdWxhcmx5IC9Rb3B0aW9uLGMsLS1hcmdfZGVwX2xvb2t1cCAocmVwb3J0ZWQgYnkgS2lyayBLbG9iZSAmIFRob21hcyBXaXR0KQorLy8gYW5kIC9aYzp3Y2hhcl90LGZvclNjb3BlLiBTZWUgYm9vc3Qtcm9vdC90b29scy9idWlsZC9pbnRlbC13aW4zMi10b29scy5qYW0gZm9yCisvLyBkZXRhaWxzIGFzIHRoZXkgYXBwbHkgdG8gcGFydGljdWxhciB2ZXJzaW9ucyBvZiB0aGUgY29tcGlsZXIuIFdoZW4gdGhlCisvLyBjb21waWxlciBkb2VzIG5vdCBwcmVkZWZpbmUgYSBtYWNybyBpbmRpY2F0aW5nIGlmIGFuIG9wdGlvbiBoYXMgYmVlbiBzZXQsCisvLyB0aGlzIGNvbmZpZyBmaWxlIHNpbXBseSBhc3N1bWVzIHRoZSBvcHRpb24gaGFzIGJlZW4gc2V0LgorLy8gVGh1cyBCT09TVF9OT19BUkdVTUVOVF9ERVBFTkRFTlRfTE9PS1VQIHdpbGwgbm90IGJlIGRlZmluZWQsIGV2ZW4gaWYKKy8vIHRoZSBjb21waWxlciBvcHRpb24gaXMgbm90IGVuYWJsZWQuCisKKyMgICAgIGRlZmluZSBCT09TVF9OT19TV1BSSU5URgorIyAgZW5kaWYKKworLy8gVm9pZCByZXR1cm5zLCA2NCBiaXQgaW50ZWdyYWxzIGRvbid0IHdvcmsgd2hlbiBlbXVsYXRpbmcgVkMgNiAoUGV0ZXIgRGltb3YpCisKKyMgIGlmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA8PSAxMjAwKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX1ZPSURfUkVUVVJOUworIyAgICAgZGVmaW5lIEJPT1NUX05PX0lOVEVHUkFMX0lOVDY0X1QKKyMgIGVuZGlmCisKKyNlbmRpZgorCisjaWYgKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OIDw9IDcxMCkgJiYgZGVmaW5lZChfV0lOMzIpCisjICBkZWZpbmUgQk9PU1RfTk9fUE9JTlRFUl9UT19NRU1CRVJfVEVNUExBVEVfUEFSQU1FVEVSUworI2VuZGlmCisKKy8vIFNlZSBodHRwOi8vYXNwbi5hY3RpdmVzdGF0ZS5jb20vQVNQTi9NYWlsL01lc3NhZ2UvYm9vc3QvMTYxNDg2NAorI2lmIEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OIDwgNjAwCisjICBkZWZpbmUgQk9PU1RfTk9fSU5UUklOU0lDX1dDSEFSX1QKKyNlbHNlCisvLyBXZSBzaG91bGQgdGVzdCB0aGUgbWFjcm8gX1dDSEFSX1RfREVGSU5FRCB0byBjaGVjayBpZiB0aGUgY29tcGlsZXIKKy8vIHN1cHBvcnRzIHdjaGFyX3QgbmF0aXZlbHkuICpCVVQqIHRoZXJlIGlzIGEgcHJvYmxlbSBoZXJlOiB0aGUgc3RhbmRhcmQKKy8vIGhlYWRlcnMgZGVmaW5lIHRoaXMgbWFjcm8gaWYgdGhleSB0eXBlZGVmIHdjaGFyX3QuIEFueXdheSwgd2UncmUgbHVja3kKKy8vIGJlY2F1c2UgdGhleSBkZWZpbmUgaXQgd2l0aG91dCBhIHZhbHVlLCB3aGlsZSBJbnRlbCBDKysgZGVmaW5lcyBpdAorLy8gdG8gMS4gU28gd2UgY2FuIGNoZWNrIGl0cyB2YWx1ZSB0byBzZWUgaWYgdGhlIG1hY3JvIHdhcyBkZWZpbmVkIG5hdGl2ZWx5CisvLyBvciBub3QuCisvLyBVbmRlciBVTklYLCB0aGUgc2l0dWF0aW9uIGlzIGV4YWN0bHkgdGhlIHNhbWUsIGJ1dCB0aGUgbWFjcm8gX1dDSEFSX1QKKy8vIGlzIHVzZWQgaW5zdGVhZC4KKyMgIGlmICgoX1dDSEFSX1RfREVGSU5FRCArIDApID09IDApICYmICgoX1dDSEFSX1QgKyAwKSA9PSAwKQorIyAgICBkZWZpbmUgQk9PU1RfTk9fSU5UUklOU0lDX1dDSEFSX1QKKyMgIGVuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19HTlVDX18pICYmICFkZWZpbmVkKEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwpCisvLworLy8gRmlndXJlIG91dCB3aGVuIEludGVsIGlzIGVtdWxhdGluZyB0aGlzIGdjYyBidWcKKy8vIChBbGwgSW50ZWwgdmVyc2lvbnMgcHJpb3IgdG8gOS4wLjI2LCBhbmQgdmVyc2lvbnMKKy8vIGxhdGVyIHRoYW4gdGhhdCBpZiB0aGV5IGFyZSBzZXQgdXAgdG8gZW11bGF0ZSBnY2MgMy4yCisvLyBvciBlYXJsaWVyKToKKy8vCisjICBpZiAoKF9fR05VQ19fID09IDMpICYmIChfX0dOVUNfTUlOT1JfXyA8PSAyKSkgfHwgKEJPT1NUX0lOVEVMIDwgOTAwKSB8fCAoX19JTlRFTF9DT01QSUxFUl9CVUlMRF9EQVRFIDwgMjAwNTA5MTIpCisjICAgICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fU0NPUEVfVVNJTkdfREVDTEFSQVRJT05fQlJFQUtTX0FETAorIyAgZW5kaWYKKyNlbmRpZgorI2lmIChkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPCA0KSkgfHwgZGVmaW5lZChfV0lOMzIpIHx8IChCT09TVF9JTlRFTF9DWFhfVkVSU0lPTiA8PSAxMjAwKQorLy8gR0NDIG9yIFZDIGVtdWxhdGlvbjoKKyNkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjZW5kaWYKKy8vCisvLyBWZXJpZnkgdGhhdCB3ZSBoYXZlIGFjdHVhbGx5IGdvdCBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVAorLy8gc2V0IGNvcnJlY3RseSwgaWYgd2UgZG9uJ3QgZG8gdGhpcyBub3csIHdlIHdpbGwgZ2V0IGVycm9ycyBsYXRlcgorLy8gaW4gdHlwZV90cmFpdHMgY29kZSBhbW9uZyBvdGhlciB0aGluZ3MsIGdldHRpbmcgdGhpcyBjb3JyZWN0CisvLyBmb3IgdGhlIEludGVsIGNvbXBpbGVyIGlzIGFjdHVhbGx5IHJlbWFya2FibHkgZnJhZ2lsZSBhbmQgdHJpY2t5OgorLy8KKyNpZmRlZiBfX2NwbHVzcGx1cworI2lmIGRlZmluZWQoQk9PU1RfTk9fSU5UUklOU0lDX1dDSEFSX1QpCisjaW5jbHVkZSA8Y3djaGFyPgordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgYXNzZXJ0X25vX2ludHJpbnNpY193Y2hhcl90OwordGVtcGxhdGU8PiBzdHJ1Y3QgYXNzZXJ0X25vX2ludHJpbnNpY193Y2hhcl90PHdjaGFyX3Q+IHsgdHlwZWRlZiB2b2lkIHR5cGU7IH07CisvLyBpZiB5b3Ugc2VlIGFuIGVycm9yIGhlcmUgdGhlbiB5b3UgbmVlZCB0byB1bnNldCBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVAorLy8gd2hlcmUgaXQgaXMgZGVmaW5lZCBhYm92ZToKK3R5cGVkZWYgYXNzZXJ0X25vX2ludHJpbnNpY193Y2hhcl90PHVuc2lnbmVkIHNob3J0Pjo6dHlwZSBhc3NlcnRfbm9faW50cmluc2ljX3djaGFyX3RfOworI2Vsc2UKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGFzc2VydF9pbnRyaW5zaWNfd2NoYXJfdDsKK3RlbXBsYXRlPD4gc3RydWN0IGFzc2VydF9pbnRyaW5zaWNfd2NoYXJfdDx3Y2hhcl90PiB7fTsKKy8vIGlmIHlvdSBzZWUgYW4gZXJyb3IgaGVyZSB0aGVuIGRlZmluZSBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVCBvbiB0aGUgY29tbWFuZCBsaW5lOgordGVtcGxhdGU8PiBzdHJ1Y3QgYXNzZXJ0X2ludHJpbnNpY193Y2hhcl90PHVuc2lnbmVkIHNob3J0PiB7fTsKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIrMCA+PSAxMDAwKQorIyAgaWYgX01TQ19WRVIgPj0gMTIwMAorIyAgICAgZGVmaW5lIEJPT1NUX0hBU19NU19JTlQ2NAorIyAgZW5kaWYKKyMgIGRlZmluZSBCT09TVF9OT19TV1BSSU5URgorIyAgZGVmaW5lIEJPT1NUX05PX1RXT19QSEFTRV9OQU1FX0xPT0tVUAorI2VsaWYgZGVmaW5lZChfV0lOMzIpCisjICBkZWZpbmUgQk9PU1RfRElTQUJMRV9XSU4zMgorI2VuZGlmCisKKy8vIEkgY2hlY2tlZCB2ZXJzaW9uIDYuMCBidWlsZCAwMjAzMTJaLCBpdCBpbXBsZW1lbnRzIHRoZSBOUlZPLgorLy8gQ29ycmVjdCB0aGlzIGFzIHlvdSBmaW5kIG91dCB3aGljaCB2ZXJzaW9uIG9mIHRoZSBjb21waWxlcgorLy8gaW1wbGVtZW50ZWQgdGhlIE5SVk8gZmlyc3QuICAoRGFuaWVsIEZyZXkpCisjaWYgKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OID49IDYwMCkKKyMgIGRlZmluZSBCT09TVF9IQVNfTlJWTworI2VuZGlmCisKKy8vCisvLyB2ZXJzaW9ucyBjaGVjazoKKy8vIHdlIGRvbid0IHN1cHBvcnQgSW50ZWwgcHJpb3IgdG8gdmVyc2lvbiA1LjA6CisjaWYgQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04gPCA1MDAKKyMgIGVycm9yICJDb21waWxlciBub3Qgc3VwcG9ydGVkIG9yIGNvbmZpZ3VyZWQgLSBwbGVhc2UgcmVjb25maWd1cmUiCisjZW5kaWYKKworLy8gSW50ZWwgb24gTWFjT1MgcmVxdWlyZXMKKyNpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgZGVmaW5lZChfX0lOVEVMX0NPTVBJTEVSKQorIyAgZGVmaW5lIEJPT1NUX05PX1RXT19QSEFTRV9OQU1FX0xPT0tVUAorI2VuZGlmCisKKy8vIEludGVsIG9uIEFsdGl4IEl0YW5pdW0KKyNpZiBkZWZpbmVkKF9faXRhbml1bV9fKSAmJiBkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpCisjICBkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjZW5kaWYKKworLy8KKy8vIEFuIGF0dGVtcHQgdG8gdmFsdWUtaW5pdGlhbGl6ZSBhIHBvaW50ZXItdG8tbWVtYmVyIG1heSB0cmlnZ2VyIGFuCisvLyBpbnRlcm5hbCBlcnJvciBvbiBJbnRlbCA8PSAxMS4xIChsYXN0IGNoZWNrZWQgdmVyc2lvbiksIGFzIHdhcyAKKy8vIHJlcG9ydGVkIGJ5IEpvaG4gTWFkZG9jaywgSW50ZWwgc3VwcG9ydCBpc3N1ZSA1ODk4MzIsIE1heSAyMDEwLgorLy8gTW9yZW92ZXIsIGFjY29yZGluZyB0byB0ZXN0IHJlc3VsdHMgZnJvbSBIdWFuZy1WaXN0YS14ODZfMzJfaW50ZWwsCisvLyBpbnRlbC12Yzktd2luLTExLjEgbWF5IGxlYXZlIGEgbm9uLVBPRCBhcnJheSB1bmluaXRpYWxpemVkLCBpbiBzb21lIAorLy8gY2FzZXMgd2hlbiBpdCBzaG91bGQgYmUgdmFsdWUtaW5pdGlhbGl6ZWQuCisvLyAoTmllbHMgRGVra2VyLCBMS0VCLCBNYXkgMjAxMCkKKy8vIEFwcGFyZW50bHkgSW50ZWwgMTIuMSAoY29tcGlsZXIgdmVyc2lvbiBudW1iZXIgOTk5OSAhISkgaGFzIHRoZSBzYW1lIGlzc3VlIChjb21waWxlciByZWdyZXNzaW9uKS4KKyNpZiBkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpCisjICBpZiAoX19JTlRFTF9DT01QSUxFUiA8PSAxMTEwKSB8fCAoX19JTlRFTF9DT01QSUxFUiA9PSA5OTk5KQorIyAgICBkZWZpbmUgQk9PU1RfTk9fQ09NUExFVEVfVkFMVUVfSU5JVElBTElaQVRJT04KKyMgIGVuZGlmCisjZW5kaWYKKworLy8KKy8vIER5bmFtaWMgc2hhcmVkIG9iamVjdCAoRFNPKSBhbmQgZHluYW1pYy1saW5rIGxpYnJhcnkgKERMTCkgc3VwcG9ydAorLy8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPj0gNCkKKyMgIGRlZmluZSBCT09TVF9TWU1CT0xfRVhQT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisjICBkZWZpbmUgQk9PU1RfU1lNQk9MX0lNUE9SVAorIyAgZGVmaW5lIEJPT1NUX1NZTUJPTF9WSVNJQkxFIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisjZW5kaWYKKy8vCisvLyBDKysweCBmZWF0dXJlcworLy8gICAgIC0gSUNDIGFkZGVkIHN0YXRpY19hc3NlcnQgaW4gMTEuMCAoZmlyc3QgdmVyc2lvbiB3aXRoIEMrKzB4IHN1cHBvcnQpCisvLworI2lmIGRlZmluZWQoQk9PU1RfSU5URUxfU1REQ1hYMFgpCisjICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVAorLy8KKy8vIFRoZXNlIHBhc3Mgb3VyIHRlc3QgY2FzZXMsIGJ1dCBhcmVuJ3Qgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYWNjb3JkaW5nIHRvOgorLy8gaHR0cDovL3NvZnR3YXJlLmludGVsLmNvbS9lbi11cy9hcnRpY2xlcy9jMHgtZmVhdHVyZXMtc3VwcG9ydGVkLWJ5LWludGVsLWMtY29tcGlsZXIvCisvLworLy8jICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfTEFNQkRBUworLy8jICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworLy8jICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKy8vIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisvLyMgIHVuZGVmICBCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TCisjZW5kaWYKKworI2lmIGRlZmluZWQoQk9PU1RfSU5URUxfU1REQ1hYMFgpICYmIChCT09TVF9JTlRFTF9DWFhfVkVSU0lPTiA+PSAxMjAwKQorLy8jICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgLy8gRW5hYmxpbmcgdGhpcyBicmVha3MgRmlsZXN5c3RlbSBhbmQgRXhjZXB0aW9uIGxpYnJhcmllcworLy8jICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfU0NPUEVEX0VOVU1TICAvLyBkb2Vzbid0IHJlYWxseSB3b3JrISEKKyMgIHVuZGVmICBCT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUworIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyMgIHVuZGVmICBCT09TVF9OT19DWFgxMV9MQU1CREFTCisjICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFCisjICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKyMgIHVuZGVmICBCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TCisjZW5kaWYKKworLy8gaWNsIFZlcnNpb24gMTIuMS4wLjIzMyBCdWlsZCAyMDExMDgxMSBhbmQgcG9zc2libHkgc29tZSBvdGhlciBidWlsZHMKKy8vIGhhZCBhbiBpbmNvcnJlY3QgX19JTlRFTF9DT01QSUxFUiB2YWx1ZSBvZiA5OTk5LiBJbnRlbCBzYXkgdGhpcyBoYXMgYmVlbiBmaXhlZC4gCisjaWYgZGVmaW5lZChCT09TVF9JTlRFTF9TVERDWFgwWCkgJiYgKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OID4gMTIwMCkKKyMgIHVuZGVmICBCT09TVF9OT19DWFgxMV9GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MKKyMgIHVuZGVmICBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjICB1bmRlZiAgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyMgIHVuZGVmICBCT09TVF9OT19TRklOQUVfRVhQUgorIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX1RFTVBMQVRFX0FMSUFTRVMKKyMgIHVuZGVmICBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKworLy8gaHR0cDovL3NvZnR3YXJlLmludGVsLmNvbS9lbi11cy9hcnRpY2xlcy9jMHgtZmVhdHVyZXMtc3VwcG9ydGVkLWJ5LWludGVsLWMtY29tcGlsZXIvCisvLyBjb250aW51ZXMgdG8gbGlzdCBzY29wZWQgZW51bSBzdXBwb3J0IGFzICJQYXJ0aWFsIiAKKy8vIyAgdW5kZWYgIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUyAKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSIDw9IDE3MDApCisvLworLy8gQWx0aG91Z2ggdGhlIEludGVsIGNvbXBpbGVyIGlzIGNhcGFibGUgb2Ygc3VwcG9ydGluZyB0aGVzZSwgaXQgYXBwZWFycyBub3QgdG8gaW4gTVNWQyBjb21wYXRpYmlsaXR5IG1vZGU6CisvLworIyAgZGVmaW5lICBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorIyAgZGVmaW5lICBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKyMgIGRlZmluZSAgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMKKyMgIGRlZmluZSAgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUworIyAgZGVmaW5lICBCT09TVF9OT19DWFgxMV9URU1QTEFURV9BTElBU0VTCisjZW5kaWYKKworI2lmIChCT09TVF9JTlRFTF9DWFhfVkVSU0lPTiA8IDEyMDApCisvLworLy8gZmVudi5oIGFwcGVhcnMgbm90IHRvIHdvcmsgd2l0aCBJbnRlbCBwcmlvciB0byAxMi4wOgorLy8KKyMgIGRlZmluZSBCT09TVF9OT19GRU5WX0gKKyNlbmRpZgorCisvLworLy8gbGFzdCBrbm93biBhbmQgY2hlY2tlZCB2ZXJzaW9uOgorI2lmIChCT09TVF9JTlRFTF9DWFhfVkVSU0lPTiA+IDEyMDApCisjICBpZiBkZWZpbmVkKEJPT1NUX0FTU0VSVF9DT05GSUcpCisjICAgICBlcnJvciAiVW5rbm93biBjb21waWxlciB2ZXJzaW9uIC0gcGxlYXNlIHJ1biB0aGUgY29uZmlndXJlIHRlc3RzIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMiCisjICBlbGlmIGRlZmluZWQoX01TQ19WRVIpCisvLworLy8gICAgICBXZSBkb24ndCBlbWl0IHRoaXMgd2FybmluZyBhbnkgbW9yZSwgc2luY2Ugd2UgaGF2ZSBzbyBmZXcKKy8vICAgICAgZGVmZWN0IG1hY3JvcyBzZXQgYW55d2F5IChqdXN0IHRoZSBvbmUpLgorLy8KKy8vIyAgICAgcHJhZ21hIG1lc3NhZ2UoIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIikKKyMgIGVuZGlmCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2thaS5ocHAgYi9ib29zdC9jb25maWcvY29tcGlsZXIva2FpLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzM3ZTZhCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL2thaS5ocHAKQEAgLTAsMCArMSwzMyBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEuIAorLy8gIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMi4gCisvLyAgKEMpIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDIuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIEthaSBDKysgY29tcGlsZXIgc2V0dXA6CisKKyNpbmNsdWRlICJib29zdC9jb25maWcvY29tcGlsZXIvY29tbW9uX2VkZy5ocHAiCisKKyMgICBpZiAoX19LQ0NfVkVSU0lPTiA8PSA0MDAxKSB8fCAhZGVmaW5lZChCT09TVF9TVFJJQ1RfQ09ORklHKQorICAgICAgLy8gYXQgbGVhc3Qgb24gU3VuLCB0aGUgY29udGVudHMgb2YgPGN3Y2hhcj4gaXMgbm90IGluIG5hbWVzcGFjZSBzdGQKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERDX05BTUVTUEFDRQorIyAgIGVuZGlmCisKKy8vIHNlZSBhbHNvIGNvbW1vbl9lZGcuaHBwIHdoaWNoIG5lZWRzIGEgc3BlY2lhbCBjaGVjayBmb3IgX19LQ0MKKyMgaWYgIWRlZmluZWQoX0VYQ0VQVElPTlMpICYmICFkZWZpbmVkKEJPT1NUX05PX0VYQ0VQVElPTlMpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fRVhDRVBUSU9OUworIyBlbmRpZgorCisvLworLy8gbGFzdCBrbm93biBhbmQgY2hlY2tlZCB2ZXJzaW9uIGlzIDQwMDE6CisjaWYgKF9fS0NDX1ZFUlNJT04gPiA0MDAxKQorIyAgaWYgZGVmaW5lZChCT09TVF9BU1NFUlRfQ09ORklHKQorIyAgICAgZXJyb3IgIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIgorIyAgZW5kaWYKKyNlbmRpZgorCisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2NvbXBpbGVyL21ldHJvd2Vya3MuaHBwIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL21ldHJvd2Vya3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NGNiNzEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvY29tcGlsZXIvbWV0cm93ZXJrcy5ocHAKQEAgLTAsMCArMSwxNDQgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxLiAKKy8vICAoQykgQ29weXJpZ2h0IERhcmluIEFkbGVyIDIwMDEuIAorLy8gIChDKSBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS4gCisvLyAgKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAxIC0gMjAwMi4gCisvLyAgKEMpIENvcHlyaWdodCBCZW1hbiBEYXdlcyAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBTdGVmYW4gU2xhcGV0YSAyMDA0LiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBNZXRyb3dlcmtzIEMrKyBjb21waWxlciBzZXR1cDoKKworLy8gbG9jYWxlIHN1cHBvcnQgaXMgZGlzYWJsZWQgd2hlbiBsaW5raW5nIHdpdGggdGhlIGR5bmFtaWMgcnVudGltZQorIyAgIGlmZGVmIF9NU0xfTk9fTE9DQUxFCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REX0xPQ0FMRQorIyAgIGVuZGlmIAorCisjICAgaWYgX19NV0VSS1NfXyA8PSAweDIzMDEgIC8vIDUuMworIyAgICAgZGVmaW5lIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HCisjICAgICBkZWZpbmUgQk9PU1RfTk9fUE9JTlRFUl9UT19NRU1CRVJfQ09OU1QKKyMgICAgIGRlZmluZSBCT09TVF9OT19ERVBFTkRFTlRfVFlQRVNfSU5fVEVNUExBVEVfVkFMVUVfUEFSQU1FVEVSUworIyAgICAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9URU1QTEFURV9LRVlXT1JECisjICAgZW5kaWYKKworIyAgIGlmIF9fTVdFUktTX18gPD0gMHgyNDAxICAvLyA2LjIKKy8vIyAgICAgZGVmaW5lIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HCisjICAgZW5kaWYKKworIyAgIGlmKF9fTVdFUktTX18gPD0gMHgyNDA3KSAgLy8gNy54CisjICAgICBkZWZpbmUgQk9PU1RfTk9fTUVNQkVSX0ZVTkNUSU9OX1NQRUNJQUxJWkFUSU9OUworIyAgICAgZGVmaW5lIEJPT1NUX05PX1VOUkVBQ0hBQkxFX1JFVFVSTl9ERVRFQ1RJT04KKyMgICBlbmRpZgorCisjICAgaWYoX19NV0VSS1NfXyA8PSAweDMwMDMpICAvLyA4LngKKyMgICAgIGRlZmluZSBCT09TVF9OT19TRklOQUUKKyMgICAgZW5kaWYKKworLy8gdGhlICJ8fCAhZGVmaW5lZChCT09TVF9TVFJJQ1RfQ09ORklHKSIgcGFydCBzaG91bGQgYXBwbHkgdG8gdGhlIGxhc3QKKy8vIHRlc3RlZCB2ZXJzaW9uICpvbmx5KjoKKyMgICBpZihfX01XRVJLU19fIDw9IDB4MzIwNykgfHwgIWRlZmluZWQoQk9PU1RfU1RSSUNUX0NPTkZJRykgLy8gOS42CisjICAgICBkZWZpbmUgQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFX0ZSSUVORFMKKyMgICAgIGRlZmluZSBCT09TVF9OT19JU19BQlNUUkFDVAorIyAgICBlbmRpZgorCisjaWYgIV9fb3B0aW9uKHdjaGFyX3R5cGUpCisjICAgZGVmaW5lIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisjZW5kaWYKKworI2lmICFfX29wdGlvbihleGNlcHRpb25zKSAmJiAhZGVmaW5lZChCT09TVF9OT19FWENFUFRJT05TKQorIyAgIGRlZmluZSBCT09TVF9OT19FWENFUFRJT05TCisjZW5kaWYKKworI2lmIChfX0lOVEVMX18gJiYgX1dJTjMyKSB8fCAoX19QT1dFUlBDX18gJiYgbWFjaW50b3NoKQorIyAgIGlmIF9fTVdFUktTX18gPT0gMHgzMDAwCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA4LjAKKyMgICBlbGlmIF9fTVdFUktTX18gPT0gMHgzMDAxCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA4LjEKKyMgICBlbGlmIF9fTVdFUktTX18gPT0gMHgzMDAyCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA4LjIKKyMgICBlbGlmIF9fTVdFUktTX18gPT0gMHgzMDAzCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA4LjMKKyMgICBlbGlmIF9fTVdFUktTX18gPT0gMHgzMjAwCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA5LjAKKyMgICBlbGlmIF9fTVdFUktTX18gPT0gMHgzMjAxCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA5LjEKKyMgICBlbGlmIF9fTVdFUktTX18gPT0gMHgzMjAyCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA5LjIKKyMgICBlbGlmIF9fTVdFUktTX18gPT0gMHgzMjA0CisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA5LjMKKyMgICBlbGlmIF9fTVdFUktTX18gPT0gMHgzMjA1CisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA5LjQKKyMgICBlbGlmIF9fTVdFUktTX18gPT0gMHgzMjA2CisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA5LjUKKyMgICBlbGlmIF9fTVdFUktTX18gPT0gMHgzMjA3CisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA5LjYKKyMgICBlbHNlCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiBfX01XRVJLU19fCisjICAgZW5kaWYKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiBfX01XRVJLU19fCisjZW5kaWYKKworLy8KKy8vIEMrKzB4IGZlYXR1cmVzCisvLworLy8gICBTZWUgYm9vc3RcY29uZmlnXHN1ZmZpeC5ocHAgZm9yIEJPT1NUX05PX0xPTkdfTE9ORworLy8KKyNpZiBfX01XRVJLU19fID4gMHgzMjA2ICYmIF9fb3B0aW9uKHJ2YWx1ZV9yZWZzKQorIyAgZGVmaW5lIEJPT1NUX0hBU19SVkFMVUVfUkVGUworI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUyAgICAgICAgICAgICAgCisjZW5kaWYKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMTZfVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMzJfVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9DT05TVEVYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEVfTjMyNzYKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9FWFBMSUNJVF9DT05WRVJTSU9OX09QRVJBVE9SUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9FWFRFUk5fVEVNUExBVEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9OT0VYQ0VQVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBTkdFX0JBU0VEX0ZPUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQVdfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU0NPUEVEX0VOVU1TCisjZGVmaW5lIEJPT1NUX05PX1NGSU5BRV9FWFBSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgKKworI2RlZmluZSBCT09TVF9DT01QSUxFUiAiTWV0cm93ZXJrcyBDb2RlV2FycmlvciBDKysgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShCT09TVF9DT01QSUxFUl9WRVJTSU9OKQorCisvLworLy8gdmVyc2lvbnMgY2hlY2s6CisvLyB3ZSBkb24ndCBzdXBwb3J0IE1ldHJvd2Vya3MgcHJpb3IgdG8gdmVyc2lvbiA1LjM6CisjaWYgX19NV0VSS1NfXyA8IDB4MjMwMQorIyAgZXJyb3IgIkNvbXBpbGVyIG5vdCBzdXBwb3J0ZWQgb3IgY29uZmlndXJlZCAtIHBsZWFzZSByZWNvbmZpZ3VyZSIKKyNlbmRpZgorLy8KKy8vIGxhc3Qga25vd24gYW5kIGNoZWNrZWQgdmVyc2lvbjoKKyNpZiAoX19NV0VSS1NfXyA+IDB4MzIwNSkKKyMgIGlmIGRlZmluZWQoQk9PU1RfQVNTRVJUX0NPTkZJRykKKyMgICAgIGVycm9yICJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIKKyMgIGVuZGlmCisjZW5kaWYKKworCisKKworCisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2NvbXBpbGVyL21wdy5ocHAgYi9ib29zdC9jb25maWcvY29tcGlsZXIvbXB3LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGFkZWUwCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL21wdy5ocHAKQEAgLTAsMCArMSw4NiBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAyLiAKKy8vICAoQykgQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgTVBXIEMrKyBjb21waWxlcnMgc2V0dXA6CisKKyMgICBpZiAgICBkZWZpbmVkKF9fU0NfXykKKyMgICAgIGRlZmluZSBCT09TVF9DT01QSUxFUiAiTVBXIFNDcHAgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfX1NDX18pCisjICAgZWxpZiBkZWZpbmVkKF9fTVJDX18pCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVIgIk1QVyBNckNwcCB2ZXJzaW9uICIgQk9PU1RfU1RSSU5HSVpFKF9fTVJDX18pCisjICAgZWxzZQorIyAgICAgZXJyb3IgIlVzaW5nIE1QVyBjb21waWxlciBjb25maWd1cmF0aW9uIGJ5IG1pc3Rha2UuICBQbGVhc2UgdXBkYXRlLiIKKyMgICBlbmRpZgorCisvLworLy8gTVBXIDguOTA6CisvLworI2lmIChNUFdfQ1BMVVMgPD0gMHg4OTApIHx8ICFkZWZpbmVkKEJPT1NUX1NUUklDVF9DT05GSUcpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1ZfU1BFQ0lBTElaQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fREVQRU5ERU5UX05FU1RFRF9ERVJJVkFUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0RFUEVOREVOVF9UWVBFU19JTl9URU1QTEFURV9WQUxVRV9QQVJBTUVURVJTCisjICBkZWZpbmUgQk9PU1RfTk9fSU5DTEFTU19NRU1CRVJfSU5JVElBTElaQVRJT04KKyMgIGRlZmluZSBCT09TVF9OT19JTlRSSU5TSUNfV0NIQVJfVAorIyAgZGVmaW5lIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyMgIGRlZmluZSBCT09TVF9OT19VU0lOR19URU1QTEFURQorCisjICBkZWZpbmUgQk9PU1RfTk9fQ1dDSEFSCisjICBkZWZpbmUgQk9PU1RfTk9fTElNSVRTX0NPTVBJTEVfVElNRV9DT05TVEFOVFMKKworIyAgZGVmaW5lIEJPT1NUX05PX1NURF9BTExPQ0FUT1IgLyogYWN0dWFsbHkgYSBidWcgd2l0aCBjb25zdCByZWZlcmVuY2Ugb3ZlcmxvYWRpbmcgKi8KKworI2VuZGlmCisKKy8vCisvLyBDKysweCBmZWF0dXJlcworLy8KKy8vICAgU2VlIGJvb3N0XGNvbmZpZ1xzdWZmaXguaHBwIGZvciBCT09TVF9OT19MT05HX0xPTkcKKy8vCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjMyX1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2CisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhURVJOX1RFTVBMQVRFCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0ZVTkNUSU9OX1RFTVBMQVRFX0RFRkFVTFRfQVJHUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9MQU1CREFTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xPQ0FMX0NMQVNTX1RFTVBMQVRFX1BBUkFNRVRFUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQU5HRV9CQVNFRF9GT1IKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFXX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworI2RlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1RFTVBMQVRFX0FMSUFTRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JQ09ERV9MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisKKy8vCisvLyB2ZXJzaW9ucyBjaGVjazoKKy8vIHdlIGRvbid0IHN1cHBvcnQgTVBXIHByaW9yIHRvIHZlcnNpb24gOC45OgorI2lmIE1QV19DUExVUyA8IDB4ODkwCisjICBlcnJvciAiQ29tcGlsZXIgbm90IHN1cHBvcnRlZCBvciBjb25maWd1cmVkIC0gcGxlYXNlIHJlY29uZmlndXJlIgorI2VuZGlmCisvLworLy8gbGFzdCBrbm93biBhbmQgY2hlY2tlZCB2ZXJzaW9uIGlzIDB4ODkwOgorI2lmIChNUFdfQ1BMVVMgPiAweDg5MCkKKyMgIGlmIGRlZmluZWQoQk9PU1RfQVNTRVJUX0NPTkZJRykKKyMgICAgIGVycm9yICJVbmtub3duIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIKKyMgIGVuZGlmCisjZW5kaWYKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvY29tcGlsZXIvbnZjYy5ocHAgYi9ib29zdC9jb25maWcvY29tcGlsZXIvbnZjYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDMyMDNmYgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9jb21waWxlci9udmNjLmhwcApAQCAtMCwwICsxLDI4IEBACisvLyAgKEMpIENvcHlyaWdodCBFcmljIEpvdXJkYW5uZWF1LCBKb2VsIEZhbGNvdSAyMDEwCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgTlZJRElBIENVREEgQysrIGNvbXBpbGVyIHNldHVwCisKKyNpZm5kZWYgQk9PU1RfQ09NUElMRVIKKyMgIGRlZmluZSBCT09TVF9DT01QSUxFUiAiTlZJRElBIENVREEgQysrIENvbXBpbGVyIgorI2VuZGlmCisKKy8vIE5WSURJQSBTcGVjaWZpYyBzdXBwb3J0CisvLyBCT09TVF9HUFVfRU5BQkxFRCA6IEZsYWcgYSBmdW5jdGlvbiBvciBhIG1ldGhvZCBhcyBiZWluZyBlbmFibGVkIG9uIHRoZSBob3N0IGFuZCBkZXZpY2UKKyNkZWZpbmUgQk9PU1RfR1BVX0VOQUJMRUQgX19ob3N0X18gX19kZXZpY2VfXworCisvLyBCb29zdCBzdXBwb3J0IG1hY3JvIGZvciBOVkNDIAorLy8gTlZDQyBCYXNpY2FsbHkgYmVoYXZlcyBsaWtlIHNvbWUgZmxhdm9yIG9mIE1TVkM2ICsgc29tZSBzcGVjaWZpYyBxdWlya3MKKyNpZmRlZiBfX0dOVUNfXworCisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnL2NvbXBpbGVyL2djYy5ocHA+CisKKyNlbGlmIGRlZmluZWQoX01TQ19WRVIpCisKKyNpbmNsdWRlIDxib29zdC9jb25maWcvY29tcGlsZXIvdmlzdWFsYy5ocHA+CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2NvbXBpbGVyL3BhdGhzY2FsZS5ocHAgYi9ib29zdC9jb25maWcvY29tcGlsZXIvcGF0aHNjYWxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDQxMTI2Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL3BhdGhzY2FsZS5ocHAKQEAgLTAsMCArMSw4MCBAQAorLy8gIChDKSBDb3B5cmlnaHQgQnJ5Y2UgTGVsYmFjaCAyMDExCisKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vIFBhdGhTY2FsZSBFS09QYXRoIEMrKyBDb21waWxlcgorCisjaWZuZGVmIEJPT1NUX0NPTVBJTEVSCisjICBkZWZpbmUgQk9PU1RfQ09NUElMRVIgIlBhdGhTY2FsZSBFS09QYXRoIEMrKyBDb21waWxlciB2ZXJzaW9uICIgX19QQVRIU0NBTEVfXworI2VuZGlmCisKKyNpZiBfX1BBVEhDQ19fID49IDQKKyMgIGRlZmluZSBCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTCisjICBkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisjICBkZWZpbmUgQk9PU1RfSEFTX1NURElOVF9ICisjICBkZWZpbmUgQk9PU1RfSEFTX1NJR0FDVElPTgorIyAgZGVmaW5lIEJPT1NUX0hBU19TQ0hFRF9ZSUVMRAorIyAgZGVmaW5lIEJPT1NUX0hBU19USFJFQURTCisjICBkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURTCisjICBkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURfWUlFTEQKKyMgIGRlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRQorIyAgZGVmaW5lIEJPT1NUX0hBU19QQVJUSUFMX1NURF9BTExPQ0FUT1IKKyMgIGRlZmluZSBCT09TVF9IQVNfTlJWTworIyAgZGVmaW5lIEJPT1NUX0hBU19OTF9UWVBFU19ICisjICBkZWZpbmUgQk9PU1RfSEFTX05BTk9TTEVFUAorIyAgZGVmaW5lIEJPT1NUX0hBU19MT05HX0xPTkcKKyMgIGRlZmluZSBCT09TVF9IQVNfTE9HMVAKKyMgIGRlZmluZSBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjICBkZWZpbmUgQk9PU1RfSEFTX0VYUE0xCisjICBkZWZpbmUgQk9PU1RfSEFTX0RJUkVOVF9ICisjICBkZWZpbmUgQk9PU1RfSEFTX0NMT0NLX0dFVFRJTUUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKyMgIGRlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFOR0VfQkFTRURfRk9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFXX0xJVEVSQUxTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTUVSSUNfTElNSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9MQU1CREFTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworIyAgZGVmaW5lIEJPT1NUX05PX01TX0lOVDY0X05VTUVSSUNfTElNSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9ERUNMVFlQRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2CisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSCisjICBkZWZpbmUgQk9PU1RfTk9fQ09NUExFVEVfVkFMVUVfSU5JVElBTElaQVRJT04KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMzJfVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIxNl9UCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX1NFVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfTUFQCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVJTkRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UVVBMRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9USFJFQUQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfU1lTVEVNX0VSUk9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JFR0VYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBVElPCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9NVVRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GT1JXQVJEX0xJU1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ORElUSU9OX1ZBUklBQkxFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NPREVDVlQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ0hST05PCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2NvbXBpbGVyL3BnaS5ocHAgYi9ib29zdC9jb25maWcvY29tcGlsZXIvcGdpLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTMyZmVmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL3BnaS5ocHAKQEAgLTAsMCArMSwxMTggQEAKKy8vICAoQykgQ29weXJpZ2h0IE5vZWwgQmVsY291cnQgMjAwNy4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZQorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgUEdJIEMrKyBjb21waWxlciBzZXR1cDoKKworI2RlZmluZSBCT09TVF9DT01QSUxFUl9WRVJTSU9OIF9fUEdJQ19fIyNfX1BHSUNfTUlOT1JfXworI2RlZmluZSBCT09TVF9DT01QSUxFUiAiUEdJIGNvbXBpbGVyIHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoQk9PU1RfQ09NUElMRVJfVkVSU0lPTikKKworLy8KKy8vIFRocmVhZGluZyBzdXBwb3J0OgorLy8gVHVybiB0aGlzIG9uIHVuY29uZGl0aW9uYWxseSBoZXJlLCBpdCB3aWxsIGdldCB0dXJuZWQgb2ZmIGFnYWluIGxhdGVyCisvLyBpZiBubyB0aHJlYWRpbmcgQVBJIGlzIGRldGVjdGVkLgorLy8KKworI2lmIF9fUEdJQ19fID49IDExCisKKy8vIG9wdGlvbnMgcmVxdWVzdGVkIGJ5IGNvbmZpZ3VyZSAtLWVuYWJsZS10ZXN0CisjZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEUworI2RlZmluZSBCT09TVF9IQVNfVEhSRUFEUworI2RlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9ZSUVMRAorI2RlZmluZSBCT09TVF9IQVNfTlJWTworI2RlZmluZSBCT09TVF9IQVNfTE9OR19MT05HCisKKy8vIG9wdGlvbnMgLS1lbmFibGUtdGVzdCB3YW50cyB1bmRlZmluZWQKKyN1bmRlZiBCT09TVF9OT19TVERDX05BTUVTUEFDRQorI3VuZGVmIEJPT1NUX05PX0VYQ0VQVElPTl9TVERfTkFNRVNQQUNFCisjdW5kZWYgQk9PU1RfREVEVUNFRF9UWVBFTkFNRQorCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwKKyNkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKworI2VsaWYgX19QR0lDX18gPj0gMTAKKworLy8gb3B0aW9ucyByZXF1ZXN0ZWQgYnkgY29uZmlndXJlIC0tZW5hYmxlLXRlc3QKKyNkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyNkZWZpbmUgQk9PU1RfSEFTX05SVk8KKyNkZWZpbmUgQk9PU1RfSEFTX0xPTkdfTE9ORworCisvLyBvcHRpb25zIC0tZW5hYmxlLXRlc3Qgd2FudHMgdW5kZWZpbmVkCisjdW5kZWYgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKKyN1bmRlZiBCT09TVF9OT19FWENFUFRJT05fU1REX05BTUVTUEFDRQorI3VuZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUKKworI2VsaWYgX19QR0lDX18gPj0gNworCisjZGVmaW5lIEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwKKyNkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisjZGVmaW5lIEJPT1NUX05PX1NXUFJJTlRGCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKworI2Vsc2UKKworIyAgZXJyb3IgIlBnaSBjb21waWxlciBub3QgY29uZmlndXJlZCAtIHBsZWFzZSByZWNvbmZpZ3VyZSIKKworI2VuZGlmCisvLworLy8gQysrMHggZmVhdHVyZXMKKy8vCisvLyAgIFNlZSBib29zdFxjb25maWdcc3VmZml4LmhwcCBmb3IgQk9PU1RfTk9fTE9OR19MT05HCisvLworI2RlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMTZfVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMzJfVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9DT05TVEVYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEVfTjMyNzYKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVGQVVMVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9FWFBMSUNJVF9DT05WRVJTSU9OX09QRVJBVE9SUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9FWFRFUk5fVEVNUExBVEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTE9DQUxfQ0xBU1NfVEVNUExBVEVfUEFSQU1FVEVSUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9OT0VYQ0VQVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTUVSSUNfTElNSVRTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBTkdFX0JBU0VEX0ZPUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQVdfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU0NPUEVEX0VOVU1TCisjZGVmaW5lIEJPT1NUX05PX1NGSU5BRV9FWFBSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKyNkZWZpbmUgQk9PU1RfTk9fU1dQUklOVEYKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX1RFTVBMQVRFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgKKworI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX1NFVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX01BUAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFlQRUlOREVYCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFX1RSQUlUUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFVQTEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RIUkVBRAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfU1lTVEVNX0VSUk9SCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SRUdFWAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkFUSU8KKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfTVVURVgKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRQorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRk9SV0FSRF9MSVNUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT05ESVRJT05fVkFSSUFCTEUKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NPREVDVlQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NIUk9OTworI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQVJSQVkKKworLy8KKy8vIHZlcnNpb24gY2hlY2s6CisvLyBwcm9iYWJseSBub3RoaW5nIHRvIGRvIGhlcmU/CisKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9jb21waWxlci9zZ2lfbWlwc3Byby5ocHAgYi9ib29zdC9jb25maWcvY29tcGlsZXIvc2dpX21pcHNwcm8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwNjg4MzEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvY29tcGlsZXIvc2dpX21pcHNwcm8uaHBwCkBAIC0wLDAgKzEsMjkgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMi4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgU0dJIEMrKyBjb21waWxlciBzZXR1cDoKKworI2RlZmluZSBCT09TVF9DT01QSUxFUiAiU0dJIElyaXggY29tcGlsZXIgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfQ09NUElMRVJfVkVSU0lPTikKKworI2luY2x1ZGUgImJvb3N0L2NvbmZpZy9jb21waWxlci9jb21tb25fZWRnLmhwcCIKKworLy8KKy8vIFRocmVhZGluZyBzdXBwb3J0OgorLy8gVHVybiB0aGlzIG9uIHVuY29uZGl0aW9uYWxseSBoZXJlLCBpdCB3aWxsIGdldCB0dXJuZWQgb2ZmIGFnYWluIGxhdGVyCisvLyBpZiBubyB0aHJlYWRpbmcgQVBJIGlzIGRldGVjdGVkLgorLy8KKyNkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyNkZWZpbmUgQk9PU1RfTk9fVFdPX1BIQVNFX05BTUVfTE9PS1VQCisKKyN1bmRlZiBCT09TVF9OT19TV1BSSU5URgorI3VuZGVmIEJPT1NUX0RFRFVDRURfVFlQRU5BTUUKKworLy8KKy8vIHZlcnNpb24gY2hlY2s6CisvLyBwcm9iYWJseSBub3RoaW5nIHRvIGRvIGhlcmU/CisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2NvbXBpbGVyL3N1bnByb19jYy5ocHAgYi9ib29zdC9jb25maWcvY29tcGlsZXIvc3VucHJvX2NjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWJlYjUwCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL3N1bnByb19jYy5ocHAKQEAgLTAsMCArMSwxNDkgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxLiAKKy8vICAoQykgQ29weXJpZ2h0IEplbnMgTWF1cmVyIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAyLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBTdW4gQysrIGNvbXBpbGVyIHNldHVwOgorCisjICAgIGlmIF9fU1VOUFJPX0NDIDw9IDB4NTAwCisjICAgICAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9URU1QTEFURVMKKyMgICAgICBkZWZpbmUgQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcKKyMgICAgZW5kaWYKKworIyAgICBpZiAoX19TVU5QUk9fQ0MgPD0gMHg1MjApCisgICAgICAgLy8KKyAgICAgICAvLyBTdW5wcm8gNS4yIGFuZCBlYXJsZXI6CisgICAgICAgLy8KKyAgICAgICAvLyBhbHRob3VnaCBzdW5wcm8gNS4yIHN1cHBvcnRzIHRoZSBzeW50YXggZm9yCisgICAgICAgLy8gaW5saW5lIGluaXRpYWxpemF0aW9uIGl0IG9mdGVuIGdldHMgdGhlIHZhbHVlCisgICAgICAgLy8gd3JvbmcsIGVzcGVjaWFsbHkgd2hlcmUgdGhlIHZhbHVlIGlzIGNvbXB1dGVkCisgICAgICAgLy8gZnJvbSBvdGhlciBjb25zdGFudHMgKEogTWFkZG9jayA2dGggTWF5IDIwMDEpCisjICAgICAgZGVmaW5lIEJPT1NUX05PX0lOQ0xBU1NfTUVNQkVSX0lOSVRJQUxJWkFUSU9OCisKKyAgICAgICAvLyBBbHRob3VnaCBzdW5wcm8gNS4yIHN1cHBvcnRzIHRoZSBzeW50YXggZm9yCisgICAgICAgLy8gcGFydGlhbCBzcGVjaWFsaXphdGlvbiwgaXQgb2Z0ZW4gc2VlbXMgdG8KKyAgICAgICAvLyBiaW5kIHRvIHRoZSB3cm9uZyBzcGVjaWFsaXphdGlvbi4gIEJldHRlcgorICAgICAgIC8vIHRvIGRpc2FibGUgaXQgdW50aWwgc3VwcHBvcnQgYmVjb21lcyBtb3JlIHN0YWJsZQorICAgICAgIC8vIChKIE1hZGRvY2sgNnRoIE1heSAyMDAxKS4KKyMgICAgICBkZWZpbmUgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorIyAgICBlbmRpZgorCisjICAgIGlmIChfX1NVTlBST19DQyA8PSAweDUzMCkgCisgICAgICAgLy8gUmVxdWVzdGluZyBkZWJ1ZyBpbmZvICgtZykgd2l0aCBCb29zdC5QeXRob24gcmVzdWx0cworICAgICAgIC8vIGluIGFuIGludGVybmFsIGNvbXBpbGVyIGVycm9yIGZvciAic3RhdGljIGNvbnN0IgorICAgICAgIC8vIGluaXRpYWxpemVkIGluLWNsYXNzLgorICAgICAgIC8vICAgID4+IEFzc2VydGlvbjogICAoLi4vbGlua3MvZGJnX2NzdGFicy5jYywgbGluZSA2MTEpCisgICAgICAgLy8gICAgICAgICB3aGlsZSBwcm9jZXNzaW5nIC4uL3Rlc3QuY3BwIGF0IGxpbmUgMC4KKyAgICAgICAvLyAoSmVucyBNYXVyZXIgYWNjb3JkaW5nIHRvIEdvdHRmcmllZCBHYW5zc2F1Z2UgMDQgTWFyIDIwMDIpCisjICAgICAgZGVmaW5lIEJPT1NUX05PX0lOQ0xBU1NfTUVNQkVSX0lOSVRJQUxJWkFUSU9OCisKKyAgICAgICAvLyBTdW5Qcm8gNS4zIGhhcyBiZXR0ZXIgc3VwcG9ydCBmb3IgcGFydGlhbCBzcGVjaWFsaXphdGlvbiwKKyAgICAgICAvLyBidXQgYnJlYWtzIHdoZW4gY29tcGlsaW5nIHN0ZDo6bGVzczxzaGFyZWRfcHRyPFQ+ID4KKyAgICAgICAvLyAoSmVucyBNYXVyZXIgNCBOb3YgMjAwMSkuCisKKyAgICAgICAvLyBzdGQ6Omxlc3Mgc3BlY2lhbGl6YXRpb24gZml4ZWQgYXMgcmVwb3J0ZWQgYnkgR2VvcmdlCisgICAgICAgLy8gSGVpbnR6ZWxtYW47IHBhcnRpYWwgc3BlY2lhbGl6YXRpb24gcmUtZW5hYmxlZAorICAgICAgIC8vIChQZXRlciBEaW1vdiAxNyBKYW4gMjAwMikKKworLy8jICAgICAgZGVmaW5lIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworICAgICAgIC8vIGludGVncmFsIGNvbnN0YW50IGV4cHJlc3Npb25zIHdpdGggNjQgYml0IG51bWJlcnMgZmFpbAorIyAgICAgIGRlZmluZSBCT09TVF9OT19JTlRFR1JBTF9JTlQ2NF9UCisjICAgIGVuZGlmCisKKyMgICAgaWYgKF9fU1VOUFJPX0NDIDwgMHg1NzApIAorIyAgICAgIGRlZmluZSBCT09TVF9OT19URU1QTEFURV9URU1QTEFURVMKKyAgICAgICAvLyBzZWUgaHR0cDovL2xpc3RzLmJvb3N0Lm9yZy9NYWlsQXJjaGl2ZXMvYm9vc3QvbXNnNDcxODQucGhwCisgICAgICAgLy8gYW5kIGh0dHA6Ly9saXN0cy5ib29zdC5vcmcvTWFpbEFyY2hpdmVzL2Jvb3N0L21zZzQ3MjIwLnBocAorIyAgICAgIGRlZmluZSBCT09TVF9OT19JTkNMQVNTX01FTUJFUl9JTklUSUFMSVpBVElPTgorIyAgICAgIGRlZmluZSBCT09TVF9OT19TRklOQUUKKyMgICAgICBkZWZpbmUgQk9PU1RfTk9fQVJSQVlfVFlQRV9TUEVDSUFMSVpBVElPTlMKKyMgICAgZW5kaWYKKyMgICAgaWYgKF9fU1VOUFJPX0NDIDw9IDB4NTgwKSAKKyMgICAgICBkZWZpbmUgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKKyMgICAgZW5kaWYKKworIyAgICBpZiAoX19TVU5QUk9fQ0MgPD0gMHg1MTAwKQorICAgICAgIC8vIFN1biA1LjEwIG1heSBub3QgY29ycmVjdGx5IHZhbHVlLWluaXRpYWxpemUgb2JqZWN0cyBvZgorICAgICAgIC8vIHNvbWUgdXNlciBkZWZpbmVkIHR5cGVzLCBhcyB3YXMgcmVwb3J0ZWQgaW4gQXByaWwgMjAxMAorICAgICAgIC8vIChDUiA2OTQ3MDE2KSwgYW5kIGNvbmZpcm1lZCBieSBTdGV2ZSBDbGFtYWdlLgorICAgICAgIC8vIChOaWVscyBEZWtrZXIsIExLRUIsIE1heSAyMDEwKS4KKyMgICAgICBkZWZpbmUgQk9PU1RfTk9fQ09NUExFVEVfVkFMVUVfSU5JVElBTElaQVRJT04KKyMgICAgZW5kaWYKKworLy8KKy8vIER5bmFtaWMgc2hhcmVkIG9iamVjdCAoRFNPKSBhbmQgZHluYW1pYy1saW5rIGxpYnJhcnkgKERMTCkgc3VwcG9ydAorLy8KKyNpZiBfX1NVTlBST19DQyA+IDB4NTAwCisjICBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVCBfX2dsb2JhbAorIyAgZGVmaW5lIEJPT1NUX1NZTUJPTF9JTVBPUlQgX19nbG9iYWwKKyMgIGRlZmluZSBCT09TVF9TWU1CT0xfVklTSUJMRSBfX2dsb2JhbAorI2VuZGlmCisKKworCisvLworLy8gSXNzdWVzIHRoYXQgZWZmZWN0IGFsbCBrbm93biB2ZXJzaW9uczoKKy8vCisjZGVmaW5lIEJPT1NUX05PX1RXT19QSEFTRV9OQU1FX0xPT0tVUAorI2RlZmluZSBCT09TVF9OT19BRExfQkFSUklFUgorCisvLworLy8gQysrMHggZmVhdHVyZXMKKy8vCisjICBkZWZpbmUgQk9PU1RfSEFTX0xPTkdfTE9ORworCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjMyX1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2CisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhURVJOX1RFTVBMQVRFCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0ZVTkNUSU9OX1RFTVBMQVRFX0RFRkFVTFRfQVJHUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9MQU1CREFTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xPQ0FMX0NMQVNTX1RFTVBMQVRFX1BBUkFNRVRFUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQU5HRV9CQVNFRF9GT1IKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFXX0xJVEVSQUxTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUworI2RlZmluZSBCT09TVF9OT19TRklOQUVfRVhQUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1RFTVBMQVRFX0FMSUFTRVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JQ09ERV9MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYCisKKy8vCisvLyBWZXJzaW9uCisvLworCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJTdW4gY29tcGlsZXIgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfX1NVTlBST19DQykKKworLy8KKy8vIHZlcnNpb25zIGNoZWNrOgorLy8gd2UgZG9uJ3Qgc3VwcG9ydCBzdW5wcm8gcHJpb3IgdG8gdmVyc2lvbiA0OgorI2lmIF9fU1VOUFJPX0NDIDwgMHg0MDAKKyNlcnJvciAiQ29tcGlsZXIgbm90IHN1cHBvcnRlZCBvciBjb25maWd1cmVkIC0gcGxlYXNlIHJlY29uZmlndXJlIgorI2VuZGlmCisvLworLy8gbGFzdCBrbm93biBhbmQgY2hlY2tlZCB2ZXJzaW9uIGlzIDB4NTkwOgorI2lmIChfX1NVTlBST19DQyA+IDB4NTkwKQorIyAgaWYgZGVmaW5lZChCT09TVF9BU1NFUlRfQ09ORklHKQorIyAgICAgZXJyb3IgIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIgorIyAgZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL2NvbXBpbGVyL3ZhY3BwLmhwcCBiL2Jvb3N0L2NvbmZpZy9jb21waWxlci92YWNwcC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQxMGQ1YQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9jb21waWxlci92YWNwcC5ocHAKQEAgLTAsMCArMSwxMzAgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBUb29uIEtuYXBlbiAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBMaWUtUXVhbiBMZWUgMjAwMS4gCisvLyAgKEMpIENvcHlyaWdodCBNYXJrdXMgU2Nob2VwZmxpbiAyMDAyIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBCZW1hbiBEYXdlcyAyMDAyIC0gMjAwMy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgVmlzdWFsIEFnZSAoSUJNKSBDKysgY29tcGlsZXIgc2V0dXA6CisKKyNpZiBfX0lCTUNQUF9fIDw9IDUwMQorIyAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9URU1QTEFURV9GUklFTkRTCisjICBkZWZpbmUgQk9PU1RfTk9fTUVNQkVSX0ZVTkNUSU9OX1NQRUNJQUxJWkFUSU9OUworI2VuZGlmCisKKyNpZiAoX19JQk1DUFBfXyA8PSA1MDIpIAorLy8gQWN0dWFsbHkgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIGluY2xhc3MgbWVtYmVyIGluaXRpYWxpemF0aW9uIGJ1dCBpdAorLy8gcmVxdWlyZXMgYSBkZWZpbml0aW9uIGZvciB0aGUgY2xhc3MgbWVtYmVyIGFuZCBpdCBkb2Vzbid0IHJlY29nbml6ZQorLy8gaXQgYXMgYW4gaW50ZWdyYWwgY29uc3RhbnQgZXhwcmVzc2lvbiB3aGVuIHVzZWQgYXMgYSB0ZW1wbGF0ZSBhcmd1bWVudC4KKyMgIGRlZmluZSBCT09TVF9OT19JTkNMQVNTX01FTUJFUl9JTklUSUFMSVpBVElPTgorIyAgZGVmaW5lIEJPT1NUX05PX0lOVEVHUkFMX0lOVDY0X1QKKyMgIGRlZmluZSBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVfS0VZV09SRAorI2VuZGlmCisKKyNpZiAoX19JQk1DUFBfXyA8PSA2MDApIHx8ICFkZWZpbmVkKEJPT1NUX1NUUklDVF9DT05GSUcpCisjICBkZWZpbmUgQk9PU1RfTk9fUE9JTlRFUl9UT19NRU1CRVJfVEVNUExBVEVfUEFSQU1FVEVSUworI2VuZGlmCisKKyNpZiAoX19JQk1DUFBfXyA8PSAxMTEwKQorLy8gWEwgQysrIFYxMS4xIGFuZCBlYXJsaWVyIHZlcnNpb25zIG1heSBub3QgYWx3YXlzIHZhbHVlLWluaXRpYWxpemUgIAorLy8gYSB0ZW1wb3Jhcnkgb2JqZWN0IFQoKSwgd2hlbiBUIGlzIGEgbm9uLVBPRCBhZ2dyZWdhdGUgY2xhc3MgdHlwZS4gCisvLyBNaWNoYWVsIFdvbmcgKElCTSBDYW5hZGEgTHRkKSBoYXMgY29uZmlybWVkIHRoaXMgaXNzdWUgYW5kIGdhdmUgaXQgCisvLyBoaWdoIHByaW9yaXR5LiAtLSBOaWVscyBEZWtrZXIgKExLRUIpLCBNYXkgMjAxMC4KKyMgIGRlZmluZSBCT09TVF9OT19DT01QTEVURV9WQUxVRV9JTklUSUFMSVpBVElPTgorI2VuZGlmCisKKy8vCisvLyBPbiBBSVggdGhyZWFkIHN1cHBvcnQgc2VlbXMgdG8gYmUgaW5kaWNhdGVkIGJ5IF9USFJFQURfU0FGRToKKy8vCisjaWZkZWYgX1RIUkVBRF9TQUZFCisjICBkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSICJJQk0gVmlzdWFsIEFnZSB2ZXJzaW9uICIgQk9PU1RfU1RSSU5HSVpFKF9fSUJNQ1BQX18pCisKKy8vCisvLyB2ZXJzaW9ucyBjaGVjazoKKy8vIHdlIGRvbid0IHN1cHBvcnQgVmlzdWFsIGFnZSBwcmlvciB0byB2ZXJzaW9uIDU6CisjaWYgX19JQk1DUFBfXyA8IDUwMAorI2Vycm9yICJDb21waWxlciBub3Qgc3VwcG9ydGVkIG9yIGNvbmZpZ3VyZWQgLSBwbGVhc2UgcmVjb25maWd1cmUiCisjZW5kaWYKKy8vCisvLyBsYXN0IGtub3duIGFuZCBjaGVja2VkIHZlcnNpb24gaXMgMTExMDoKKyNpZiAoX19JQk1DUFBfXyA+IDExMTApCisjICBpZiBkZWZpbmVkKEJPT1NUX0FTU0VSVF9DT05GSUcpCisjICAgICBlcnJvciAiVW5rbm93biBjb21waWxlciB2ZXJzaW9uIC0gcGxlYXNlIHJ1biB0aGUgY29uZmlndXJlIHRlc3RzIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMiCisjICBlbmRpZgorI2VuZGlmCisKKy8vIFNvbWUgdmVyc2lvbnMgb2YgdGhlIGNvbXBpbGVyIGhhdmUgaXNzdWVzIHdpdGggZGVmYXVsdCBhcmd1bWVudHMgb24gcGFydGlhbCBzcGVjaWFsaXphdGlvbnMKKyNpZiBfX0lCTUNQUF9fIDw9IDEwMTAKKyNkZWZpbmUgQk9PU1RfTk9fUEFSVElBTF9TUEVDSUFMSVpBVElPTl9JTVBMSUNJVF9ERUZBVUxUX0FSR1MKKyNlbmRpZgorCisvLworLy8gQysrMHggZmVhdHVyZXMKKy8vCisvLyAgIFNlZSBib29zdFxjb25maWdcc3VmZml4LmhwcCBmb3IgQk9PU1RfTk9fTE9OR19MT05HCisvLworI2lmICEgX19JQk1DUFBfQVVUT19UWVBFREVEVUNUSU9OCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BVVRPX01VTFRJREVDTEFSQVRJT05TCisjZW5kaWYKKyNpZiAhIF9fSUJNQ1BQX1VURl9MSVRFUkFMX18KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9DSEFSMTZfVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0NIQVIzMl9UCisjZW5kaWYKKyNpZiAhIF9fSUJNQ1BQX0NPTlNURVhQUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0NPTlNURVhQUgorI2VuZGlmCisjaWYgISBfX0lCTUNQUF9ERUNMVFlQRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX0hBU19ERUNMVFlQRQorI2VuZGlmCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2CisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMKKyNpZiAhIF9fSUJNQ1BQX0VYUExJQ0lUX0NPTlZFUlNJT05fT1BFUkFUT1JTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyNlbmRpZgorI2lmICEgX19JQk1DUFBfRVhURVJOX1RFTVBMQVRFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhURVJOX1RFTVBMQVRFCisjZW5kaWYKKyNpZiAhIF9fSUJNQ1BQX1ZBUklBRElDX1RFTVBMQVRFUworLy8gbm90IGVuYWJsZWQgc2VwYXJhdGVseSBhdCB0aGlzIHRpbWUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MKKyNlbmRpZgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9MQU1CREFTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0xPQ0FMX0NMQVNTX1RFTVBMQVRFX1BBUkFNRVRFUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUgorI2RlZmluZSBCT09TVF9OT19DWFgxMV9SQU5HRV9CQVNFRF9GT1IKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfUkFXX0xJVEVSQUxTCisjaWYgISBfX0lCTUNQUF9SVkFMVUVfUkVGRVJFTkNFUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisjZW5kaWYKKyNpZiAhIF9fSUJNQ1BQX1NDT1BFRF9FTlVNCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU0NPUEVEX0VOVU1TCisjZW5kaWYKKyNkZWZpbmUgQk9PU1RfTk9fU0ZJTkFFX0VYUFIKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgKKyNpZiAhIF9fSUJNQ1BQX1NUQVRJQ19BU1NFUlQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUCisjZW5kaWYKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVEVNUExBVEVfQUxJQVNFUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9VTklDT0RFX0xJVEVSQUxTCisjaWYgISBfX0lCTUNQUF9WQVJJQURJQ19URU1QTEFURVMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMKKyNlbmRpZgorI2lmICEgX19DOTlfTUFDUk9fV0lUSF9WQV9BUkdTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjZW5kaWYKKworCisKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9jb21waWxlci92aXN1YWxjLmhwcCBiL2Jvb3N0L2NvbmZpZy9jb21waWxlci92aXN1YWxjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTQ1ODRkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL2NvbXBpbGVyL3Zpc3VhbGMuaHBwCkBAIC0wLDAgKzEsMzIwIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgRGFyaW4gQWRsZXIgMjAwMSAtIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgUGV0ZXIgRGltb3YgMjAwMS4gCisvLyAgKEMpIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMiAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgQmVtYW4gRGF3ZXMgMjAwMiAtIDIwMDMuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKy8vCisvLyAgTWljcm9zb2Z0IFZpc3VhbCBDKysgY29tcGlsZXIgc2V0dXA6CisvLworLy8gIFdlIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aXRoIHRoZSBjaGVja3MgaW4gdGhpcyBmaWxlLCBhcyBjb250cmFyeQorLy8gIHRvIHBvcHVsYXIgYmVsaWVmIHRoZXJlIGFyZSB2ZXJzaW9ucyB3aXRoIF9NU0NfVkVSIHdpdGggdGhlIGZpbmFsCisvLyAgZGlnaXQgbm9uLXplcm8gKG1haW5seSB0aGUgTUlQUyBjcm9zcyBjb21waWxlcikuCisvLworLy8gIFNvIHdlIGVpdGhlciB0ZXN0IF9NU0NfVkVSID49IFhYWFggb3IgZWxzZSBfTVNDX1ZFUiA8IFhYWFguCisvLyAgTm8gb3RoZXIgY29tcGFyaXNvbnMgKD09LCA+LCBvciA8PSkgYXJlIHNhZmUuCisvLworCisjZGVmaW5lIEJPT1NUX01TVkMgX01TQ19WRVIKKworLy8KKy8vIEhlbHBlciBtYWNybyBCT09TVF9NU1ZDX0ZVTExfVkVSIGZvciB1c2UgaW4gQm9vc3QgY29kZToKKy8vCisjaWYgX01TQ19GVUxMX1ZFUiA+IDEwMDAwMDAwMAorIyAgZGVmaW5lIEJPT1NUX01TVkNfRlVMTF9WRVIgX01TQ19GVUxMX1ZFUgorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9NU1ZDX0ZVTExfVkVSIChfTVNDX0ZVTExfVkVSICogMTApCisjZW5kaWYKKworLy8gQXR0ZW1wdCB0byBzdXBwcmVzcyBWQzYgd2FybmluZ3MgYWJvdXQgdGhlIGxlbmd0aCBvZiBkZWNvcmF0ZWQgbmFtZXMgKG9ic29sZXRlKToKKyNwcmFnbWEgd2FybmluZyggZGlzYWJsZSA6IDQ1MDMgKSAvLyB3YXJuaW5nOiBkZWNvcmF0ZWQgbmFtZSBsZW5ndGggZXhjZWVkZWQKKworLy8KKy8vIHZlcnNpb25zIGNoZWNrOgorLy8gd2UgZG9uJ3Qgc3VwcG9ydCBWaXN1YWwgQysrIHByaW9yIHRvIHZlcnNpb24gNjoKKyNpZiBfTVNDX1ZFUiA8IDEyMDAKKyMgIGVycm9yICJDb21waWxlciBub3Qgc3VwcG9ydGVkIG9yIGNvbmZpZ3VyZWQgLSBwbGVhc2UgcmVjb25maWd1cmUiCisjZW5kaWYKKworI2lmIF9NU0NfVkVSIDwgMTMwMCAgLy8gMTIwMCA9PSBWQysrIDYuMCwgMTIwMC0xMjAyID09IGVWQysrNAorIyAgcHJhZ21hIHdhcm5pbmcoIGRpc2FibGUgOiA0Nzg2ICkgLy8gaWRlbnQgdHJ1bmMgdG8gJzI1NScgY2hhcnMgaW4gZGVidWcgaW5mbworIyAgZGVmaW5lIEJPT1NUX05PX0RFUEVOREVOVF9UWVBFU19JTl9URU1QTEFURV9WQUxVRV9QQVJBTUVURVJTCisjICBkZWZpbmUgQk9PU1RfTk9fVk9JRF9SRVRVUk5TCisjICBkZWZpbmUgQk9PU1RfTk9fRVhDRVBUSU9OX1NURF9OQU1FU1BBQ0UKKworIyAgaWYgX01TQ19WRVIgPT0gMTIwMgorIyAgICBkZWZpbmUgQk9PU1RfTk9fU1REX1RZUEVJTkZPCisjICBlbmRpZgorCisjZW5kaWYKKworLy8vIFZpc3VhbCBTdHVkaW8gaGFzIG5vIGZlbnYuaAorI2RlZmluZSBCT09TVF9OT19GRU5WX0gKKworI2lmIChfTVNDX1ZFUiA8IDEzMTApICAvLyAxMzBYID09IFZDKysgNy4wCisKKyMgIGlmICFkZWZpbmVkKF9NU0NfRVhURU5TSU9OUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fREVQRU5ERU5UX1RZUEVTX0lOX1RFTVBMQVRFX1ZBTFVFX1BBUkFNRVRFUlMpICAgICAgLy8gVkM3IGJ1ZyB3aXRoIC9aYQorIyAgICBkZWZpbmUgQk9PU1RfTk9fREVQRU5ERU5UX1RZUEVTX0lOX1RFTVBMQVRFX1ZBTFVFX1BBUkFNRVRFUlMKKyMgIGVuZGlmCisKKyMgIGRlZmluZSBCT09TVF9OT19FWFBMSUNJVF9GVU5DVElPTl9URU1QTEFURV9BUkdVTUVOVFMKKyMgIGRlZmluZSBCT09TVF9OT19JTkNMQVNTX01FTUJFUl9JTklUSUFMSVpBVElPTgorIyAgZGVmaW5lIEJPT1NUX05PX1BSSVZBVEVfSU5fQUdHUkVHQVRFCisjICBkZWZpbmUgQk9PU1RfTk9fQVJHVU1FTlRfREVQRU5ERU5UX0xPT0tVUAorIyAgZGVmaW5lIEJPT1NUX05PX0lOVEVHUkFMX0lOVDY0X1QKKyMgIGRlZmluZSBCT09TVF9OT19ERURVQ0VEX1RZUEVOQU1FCisjICBkZWZpbmUgQk9PU1RfTk9fVVNJTkdfREVDTEFSQVRJT05fT1ZFUkxPQURTX0ZST01fVFlQRU5BTUVfQkFTRQorCisvLyAgICBWQysrIDYvNyBoYXMgbWVtYmVyIHRlbXBsYXRlcyBidXQgdGhleSBoYXZlIG51bWVyb3VzIHByb2JsZW1zIGluY2x1ZGluZworLy8gICAgY2FzZXMgb2Ygc2lsZW50IGZhaWx1cmUsIHNvIGZvciBzYWZldHkgd2UgZGVmaW5lOgorIyAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9URU1QTEFURVMKKy8vICAgIEZvciBWQysrIGV4cGVydHMgd2lzaGluZyB0byBhdHRlbXB0IHdvcmthcm91bmRzLCB3ZSBkZWZpbmU6CisjICBkZWZpbmUgQk9PU1RfTVNWQzZfTUVNQkVSX1RFTVBMQVRFUworCisjICBkZWZpbmUgQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFX0ZSSUVORFMKKyMgIGRlZmluZSBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisjICBkZWZpbmUgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKKyMgIGRlZmluZSBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORworIyAgZGVmaW5lIEJPT1NUX05PX1VTSU5HX1RFTVBMQVRFCisjICBkZWZpbmUgQk9PU1RfTk9fU1dQUklOVEYKKyMgIGRlZmluZSBCT09TVF9OT19URU1QTEFURV9URU1QTEFURVMKKyMgIGRlZmluZSBCT09TVF9OT19TRklOQUUKKyMgIGRlZmluZSBCT09TVF9OT19QT0lOVEVSX1RPX01FTUJFUl9URU1QTEFURV9QQVJBTUVURVJTCisjICBkZWZpbmUgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKKyMgIGRlZmluZSBCT09TVF9OT19GVU5DVElPTl9UWVBFX1NQRUNJQUxJWkFUSU9OUworLy8gVE9ETzogd2hhdCB2ZXJzaW9uIGlzIG1lYW50IGhlcmU/IEhhdmUgdGhlcmUgcmVhbGx5IGJlZW4gYW55IGZpeGVzIGluIGNsIDEyLjAxIChhcyBlLmcuIHNoaXBwZWQgd2l0aCBlVkM0KT8KKyMgIGlmIChfTVNDX1ZFUiA+PSAxMzAwKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX01FTUJFUl9GVU5DVElPTl9TUEVDSUFMSVpBVElPTlMKKyMgIGVuZGlmCisKKyNlbmRpZgorCisjaWYgX01TQ19WRVIgPCAxNDAwIAorLy8gYWx0aG91Z2ggYSBjb25mb3JtaW5nIHNpZ25hdHVyZSBmb3Igc3dwcmludCBleGlzdHMgaW4gVkM3LjEKKy8vIGl0IGFwcGVhcnMgbm90IHRvIGFjdHVhbGx5IHdvcms6CisjICBkZWZpbmUgQk9PU1RfTk9fU1dQUklOVEYKKy8vIE91ciBleHRlcm4gdGVtcGxhdGUgdGVzdHMgYWxzbyBmYWlsIGZvciB0aGlzIGNvbXBpbGVyOgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0VYVEVSTl9URU1QTEFURQorLy8gVmFyaWFkaWMgbWFjcm9zIGRvIG5vdCBleGlzdCBmb3IgVkM3LjEgYW5kIGxvd2VyCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjZW5kaWYKKworI2lmIGRlZmluZWQoVU5ERVJfQ0UpCisvLyBXaW5kb3dzIENFIGRvZXMgbm90IGhhdmUgYSBjb25mb3JtaW5nIHNpZ25hdHVyZSBmb3Igc3dwcmludGYKKyMgIGRlZmluZSBCT09TVF9OT19TV1BSSU5URgorI2VuZGlmCisKKyNpZiBfTVNDX1ZFUiA8IDE1MDAgIC8vIDE0MFggPT0gVkMrKyA4LjAKKyMgIGRlZmluZSBCT09TVF9OT19NRU1CRVJfVEVNUExBVEVfRlJJRU5EUworI2VuZGlmCisKKyNpZiBfTVNDX1ZFUiA8IDE2MDAgIC8vIDE1MFggPT0gVkMrKyA5LjAKKyAgIC8vIEEgYnVnIGluIFZDOToKKyMgIGRlZmluZSBCT09TVF9OT19BRExfQkFSUklFUgorI2VuZGlmCisKKworLy8gTVNWQyAoaW5jbHVkaW5nIHRoZSBsYXRlc3QgY2hlY2tlZCB2ZXJzaW9uKSBoYXMgbm90IHlldCBjb21wbGV0ZWx5IAorLy8gaW1wbGVtZW50ZWQgdmFsdWUtaW5pdGlhbGl6YXRpb24sIGFzIGlzIHJlcG9ydGVkOgorLy8gIlZDKysgZG9lcyBub3QgdmFsdWUtaW5pdGlhbGl6ZSBtZW1iZXJzIG9mIGRlcml2ZWQgY2xhc3NlcyB3aXRob3V0IAorLy8gdXNlci1kZWNsYXJlZCBjb25zdHJ1Y3RvciIsIHJlcG9ydGVkIGluIDIwMDkgYnkgU3lsdmVzdGVyIEhlc3A6CisvLyBodHRwczovL2Nvbm5lY3QubWljcm9zb2Z0LmNvbS9WaXN1YWxTdHVkaW8vZmVlZGJhY2svZGV0YWlscy80ODQyOTUKKy8vICJQcmVzZW5jZSBvZiBjb3B5IGNvbnN0cnVjdG9yIGJyZWFrcyBtZW1iZXIgY2xhc3MgaW5pdGlhbGl6YXRpb24iLAorLy8gcmVwb3J0ZWQgaW4gMjAwOSBieSBBbGV4IFZha3VsZW5rbzoKKy8vIGh0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL1Zpc3VhbFN0dWRpby9mZWVkYmFjay9kZXRhaWxzLzQ5OTYwNgorLy8gIlZhbHVlLWluaXRpYWxpemF0aW9uIGluIG5ldy1leHByZXNzaW9uIiwgcmVwb3J0ZWQgaW4gMjAwNSBieQorLy8gUGF2ZWwgS3V6bmV0c292IChNZXRhQ29tbXVuaWNhdGlvbnMgRW5naW5lZXJpbmcpOgorLy8gaHR0cHM6Ly9jb25uZWN0Lm1pY3Jvc29mdC5jb20vVmlzdWFsU3R1ZGlvL2ZlZWRiYWNrL2RldGFpbHMvMTAwNzQ0CisvLyBTZWUgYWxzbzogaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy91dGlsaXR5L3ZhbHVlX2luaXQuaHRtI2NvbXBpbGVyX2lzc3VlcworLy8gKE5pZWxzIERla2tlciwgTEtFQiwgTWF5IDIwMTApCisjICBkZWZpbmUgQk9PU1RfTk9fQ09NUExFVEVfVkFMVUVfSU5JVElBTElaQVRJT04KKworI2lmIF9NU0NfVkVSIDwgMTYwMCAgfHwgIWRlZmluZWQoQk9PU1RfU1RSSUNUX0NPTkZJRykgLy8gMTUwWCA9PSBWQysrIDkuMAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjZW5kaWYKKworI2lmbmRlZiBfTkFUSVZFX1dDSEFSX1RfREVGSU5FRAorIyAgZGVmaW5lIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisjZW5kaWYKKworI2lmIGRlZmluZWQoX1dJTjMyX1dDRSkgfHwgZGVmaW5lZChVTkRFUl9DRSkKKyMgIGRlZmluZSBCT09TVF9OT19TV1BSSU5URgorI2VuZGlmCisKKy8vIHdlIGhhdmUgVGhyZWFkRXggb3IgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUgdW5sZXNzIHdlJ3JlIHJ1bm5pbmcgV2luZG93c0NFCisjaWYgIWRlZmluZWQoX1dJTjMyX1dDRSkgJiYgIWRlZmluZWQoVU5ERVJfQ0UpCisjICBkZWZpbmUgQk9PU1RfSEFTX1RIUkVBREVYCisjICBkZWZpbmUgQk9PU1RfSEFTX0dFVFNZU1RFTVRJTUVBU0ZJTEVUSU1FCisjZW5kaWYKKworLy8gICAKKy8vIGNoZWNrIGZvciBleGNlcHRpb24gaGFuZGxpbmcgc3VwcG9ydDogICAKKyNpZiAhZGVmaW5lZChfQ1BQVU5XSU5EKSAmJiAhZGVmaW5lZChCT09TVF9OT19FWENFUFRJT05TKQorIyAgZGVmaW5lIEJPT1NUX05PX0VYQ0VQVElPTlMgICAKKyNlbmRpZiAKKworLy8KKy8vIF9faW50NjQgc3VwcG9ydDoKKy8vCisjaWYgKF9NU0NfVkVSID49IDEyMDApCisjICAgZGVmaW5lIEJPT1NUX0hBU19NU19JTlQ2NAorI2VuZGlmCisjaWYgKF9NU0NfVkVSID49IDEzMTApICYmIChkZWZpbmVkKF9NU0NfRVhURU5TSU9OUykgfHwgKF9NU0NfVkVSID49IDE0MDApKQorIyAgIGRlZmluZSBCT09TVF9IQVNfTE9OR19MT05HCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9OT19MT05HX0xPTkcKKyNlbmRpZgorI2lmIChfTVNDX1ZFUiA+PSAxNDAwKSAmJiAhZGVmaW5lZChfREVCVUcpCisjICAgZGVmaW5lIEJPT1NUX0hBU19OUlZPCisjZW5kaWYKKy8vCisvLyBkaXNhYmxlIFdpbjMyIEFQSSdzIGlmIGNvbXBpbGVyIGV4dGVudGlvbnMgYXJlCisvLyB0dXJuZWQgb2ZmOgorLy8KKyNpZiAhZGVmaW5lZChfTVNDX0VYVEVOU0lPTlMpICYmICFkZWZpbmVkKEJPT1NUX0RJU0FCTEVfV0lOMzIpCisjICBkZWZpbmUgQk9PU1RfRElTQUJMRV9XSU4zMgorI2VuZGlmCisjaWYgIWRlZmluZWQoX0NQUFJUVEkpICYmICFkZWZpbmVkKEJPT1NUX05PX1JUVEkpCisjICBkZWZpbmUgQk9PU1RfTk9fUlRUSQorI2VuZGlmCisKKy8vCisvLyBUUjEgZmVhdHVyZXM6CisvLworI2lmIF9NU0NfVkVSID49IDE3MDAKKy8vICMgZGVmaW5lIEJPT1NUX0hBU19UUjFfSEFTSAkJCS8vIGRvbid0IGtub3cgaWYgdGhpcyBpcyB0cnVlIHlldC4KKy8vICMgZGVmaW5lIEJPT1NUX0hBU19UUjFfVFlQRV9UUkFJVFMJLy8gZG9uJ3Qga25vdyBpZiB0aGlzIGlzIHRydWUgeWV0LgorIyBkZWZpbmUgQk9PU1RfSEFTX1RSMV9VTk9SREVSRURfTUFQCisjIGRlZmluZSBCT09TVF9IQVNfVFIxX1VOT1JERVJFRF9TRVQKKyNlbmRpZgorCisvLworLy8gQysrMHggZmVhdHVyZXMKKy8vCisvLyAgIFNlZSBhYm92ZSBmb3IgQk9PU1RfTk9fTE9OR19MT05HCisKKy8vIEMrKyBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgVkMrKyAxMCAoYWthIDIwMTApCisvLworI2lmIF9NU0NfVkVSIDwgMTYwMAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVVUT19NVUxUSURFQ0xBUkFUSU9OUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0xBTUJEQVMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OVUxMUFRSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUKKyNlbmRpZiAvLyBfTVNDX1ZFUiA8IDE2MDAKKworI2lmIF9NU0NfVkVSID49IDE2MDAKKyMgIGRlZmluZSBCT09TVF9IQVNfU1RESU5UX0gKKyNlbmRpZgorCisvLyBDKysgZmVhdHVyZXMgc3VwcG9ydGVkIGJ5IFZDKysgMTEgKGFrYSAyMDEyKQorLy8KKyNpZiBfTVNDX1ZFUiA8IDE3MDAKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9SQU5HRV9CQVNFRF9GT1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TQ09QRURfRU5VTVMKKyNlbmRpZiAvLyBfTVNDX1ZFUiA8IDE3MDAKKworLy8gQysrMHggZmVhdHVyZXMgbm90IHN1cHBvcnRlZCBieSBhbnkgdmVyc2lvbnMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjE2X1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ0hBUjMyX1QKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2CisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0RFRkFVTFRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX05PRVhDRVBUCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1JBV19MSVRFUkFMUworI2RlZmluZSBCT09TVF9OT19DWFgxMV9URU1QTEFURV9BTElBU0VTCisjZGVmaW5lIEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMKKyNkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTCisjZGVmaW5lIEJPT1NUX05PX1NGSU5BRV9FWFBSCisjZGVmaW5lIEJPT1NUX05PX1RXT19QSEFTRV9OQU1FX0xPT0tVUAorI2RlZmluZSBCT09TVF9OT19DWFgxMV9VTklGSUVEX0lOSVRJQUxJWkFUSU9OX1NZTlRBWAorLy8KKy8vIHByZWZpeCBhbmQgc3VmZml4IGhlYWRlcnM6CisvLworI2lmbmRlZiBCT09TVF9BQklfUFJFRklYCisjICBkZWZpbmUgQk9PU1RfQUJJX1BSRUZJWCAiYm9vc3QvY29uZmlnL2FiaS9tc3ZjX3ByZWZpeC5ocHAiCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfQUJJX1NVRkZJWAorIyAgZGVmaW5lIEJPT1NUX0FCSV9TVUZGSVggImJvb3N0L2NvbmZpZy9hYmkvbXN2Y19zdWZmaXguaHBwIgorI2VuZGlmCisKKyNpZm5kZWYgQk9PU1RfQ09NUElMRVIKKy8vIFRPRE86CisvLyB0aGVzZSB0aGluZ3MgYXJlIG1vc3RseSBib2d1cy4gMTIwMCBtZWFucyB2ZXJzaW9uIDEyLjAgb2YgdGhlIGNvbXBpbGVyLiBUaGUgCisvLyBhcnRpZmljaWFsIHZlcnNpb25zIGFzc2lnbmVkIHRvIHRoZW0gb25seSByZWZlciB0byB0aGUgdmVyc2lvbnMgb2Ygc29tZSBJREUKKy8vIHRoZXNlIGNvbXBpbGVycyBoYXZlIGJlZW4gc2hpcHBlZCB3aXRoLCBhbmQgZXZlbiB0aGF0IGlzIG5vdCBhbGwgb2YgaXQuIFNvbWUKKy8vIHdlcmUgc2hpcHBlZCB3aXRoIGZyZWVseSBkb3dubG9hZGFibGUgU0RLcywgb3RoZXJzIGFzIGNyb3NzY29tcGlsZXJzIGluIGVWQy4KKy8vIElPVywgeW91IGNhbid0IHVzZSB0aGVzZSAndmVyc2lvbnMnIGluIGFueSBzZW5zaWJsZSB3YXkuIFNvcnJ5LgorIyBpZiBkZWZpbmVkKFVOREVSX0NFKQorIyAgIGlmIF9NU0NfVkVSIDwgMTIwMAorICAgICAgLy8gTm90ZTogdGhlc2UgYXJlIHNvIGZhciBvZmYsIHRoZXkgYXJlIG5vdCByZWFsbHkgc3VwcG9ydGVkCisjICAgZWxpZiBfTVNDX1ZFUiA8IDEzMDAgLy8gZVZDKysgNCBjb21lcyB3aXRoIDEyMDAtMTIwMgorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gZXZjNC4wCisjICAgZWxpZiBfTVNDX1ZFUiA8IDE0MDAKKyAgICAgIC8vIE5vdGU6IEknbSBub3QgYXdhcmUgb2YgYW55IENFIGNvbXBpbGVyIHdpdGggdmVyc2lvbiAxM3h4CisjICAgICAgaWYgZGVmaW5lZChCT09TVF9BU1NFUlRfQ09ORklHKQorIyAgICAgICAgIGVycm9yICJVbmtub3duIEVWQysrIGNvbXBpbGVyIHZlcnNpb24gLSBwbGVhc2UgcnVuIHRoZSBjb25maWd1cmUgdGVzdHMgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyIKKyMgICAgICBlbHNlCisjICAgICAgICAgcHJhZ21hIG1lc3NhZ2UoIlVua25vd24gRVZDKysgY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIikKKyMgICAgICBlbmRpZgorIyAgIGVsaWYgX01TQ19WRVIgPCAxNTAwCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiBldmM4CisjICAgZWxpZiBfTVNDX1ZFUiA8IDE2MDAKKyMgICAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9WRVJTSU9OIGV2YzkKKyMgICBlbGlmIF9NU0NfVkVSIDwgMTcwMAorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gZXZjMTAKKyMgICBlbGlmIF9NU0NfVkVSIDwgMTgwMCAKKyMgICAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9WRVJTSU9OIGV2YzExIAorIyAgIGVsc2UKKyMgICAgICBpZiBkZWZpbmVkKEJPT1NUX0FTU0VSVF9DT05GSUcpCisjICAgICAgICAgZXJyb3IgIlVua25vd24gRVZDKysgY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIgorIyAgICAgIGVsc2UKKyMgICAgICAgICBwcmFnbWEgbWVzc2FnZSgiVW5rbm93biBFVkMrKyBjb21waWxlciB2ZXJzaW9uIC0gcGxlYXNlIHJ1biB0aGUgY29uZmlndXJlIHRlc3RzIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMiKQorIyAgICAgIGVuZGlmCisjICAgZW5kaWYKKyMgZWxzZQorIyAgIGlmIF9NU0NfVkVSIDwgMTIwMAorICAgICAgLy8gTm90ZTogdGhlc2UgYXJlIHNvIGZhciBvZmYsIHRoZXkgYXJlIG5vdCByZWFsbHkgc3VwcG9ydGVkCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA1LjAKKyMgICBlbGlmIF9NU0NfVkVSIDwgMTMwMAorIyAgICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA2LjAKKyMgICBlbGlmIF9NU0NfVkVSIDwgMTMxMAorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gNy4wCisjICAgZWxpZiBfTVNDX1ZFUiA8IDE0MDAKKyMgICAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9WRVJTSU9OIDcuMQorIyAgIGVsaWYgX01TQ19WRVIgPCAxNTAwCisjICAgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfVkVSU0lPTiA4LjAKKyMgICBlbGlmIF9NU0NfVkVSIDwgMTYwMAorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gOS4wCisjICAgZWxpZiBfTVNDX1ZFUiA8IDE3MDAKKyMgICAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9WRVJTSU9OIDEwLjAKKyMgICBlbGlmIF9NU0NfVkVSIDwgMTgwMCAKKyMgICAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9WRVJTSU9OIDExLjAgCisjICAgZWxzZQorIyAgICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX1ZFUlNJT04gX01TQ19WRVIKKyMgICBlbmRpZgorIyBlbmRpZgorCisjICBkZWZpbmUgQk9PU1RfQ09NUElMRVIgIk1pY3Jvc29mdCBWaXN1YWwgQysrIHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoQk9PU1RfQ09NUElMRVJfVkVSU0lPTikKKyNlbmRpZgorCisvLworLy8gbGFzdCBrbm93biBhbmQgY2hlY2tlZCB2ZXJzaW9uIGlzIDE3MDAgKFZDMTEsIGFrYSAyMDExKToKKyNpZiAoX01TQ19WRVIgPiAxNzAwKQorIyAgaWYgZGVmaW5lZChCT09TVF9BU1NFUlRfQ09ORklHKQorIyAgICAgZXJyb3IgIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIgorIyAgZWxzZQorIyAgICAgcHJhZ21hIG1lc3NhZ2UoIlVua25vd24gY29tcGlsZXIgdmVyc2lvbiAtIHBsZWFzZSBydW4gdGhlIGNvbmZpZ3VyZSB0ZXN0cyBhbmQgcmVwb3J0IHRoZSByZXN1bHRzIikKKyMgIGVuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9ub190cjEvY21hdGguaHBwIGIvYm9vc3QvY29uZmlnL25vX3RyMS9jbWF0aC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDgyNjhkOAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9ub190cjEvY21hdGguaHBwCkBAIC0wLDAgKzEsMjggQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDA4LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gVGhlIGFpbSBvZiB0aGlzIGhlYWRlciBpcyBqdXN0IHRvIGluY2x1ZGUgPGNtYXRoPiBidXQgdG8gZG8KKy8vIHNvIGluIGEgd2F5IHRoYXQgZG9lcyBub3QgcmVzdWx0IGluIHJlY3Vyc2l2ZSBpbmNsdXNpb24gb2YKKy8vIHRoZSBCb29zdCBUUjEgY29tcG9uZW50cyBpZiBib29zdC90cjEvdHIxL2NtYXRoIGlzIGluIHRoZQorLy8gaW5jbHVkZSBzZWFyY2ggcGF0aC4gIFdlIGhhdmUgdG8gZG8gdGhpcyB0byBhdm9pZCBjaXJjdWxhcgorLy8gZGVwZW5kZW5jaWVzOgorLy8KKworI2lmbmRlZiBCT09TVF9DT05GSUdfQ01BVEgKKyMgIGRlZmluZSBCT09TVF9DT05GSUdfQ01BVEgKKworIyAgaWZuZGVmIEJPT1NUX1RSMV9OT19SRUNVUlNJT04KKyMgICAgIGRlZmluZSBCT09TVF9UUjFfTk9fUkVDVVJTSU9OCisjICAgICBkZWZpbmUgQk9PU1RfQ09ORklHX05PX0NNQVRIX1JFQ1VSU0lPTgorIyAgZW5kaWYKKworIyAgaW5jbHVkZSA8Y21hdGg+CisKKyMgIGlmZGVmIEJPT1NUX0NPTkZJR19OT19DTUFUSF9SRUNVUlNJT04KKyMgICAgIHVuZGVmIEJPT1NUX1RSMV9OT19SRUNVUlNJT04KKyMgICAgIHVuZGVmIEJPT1NUX0NPTkZJR19OT19DTUFUSF9SRUNVUlNJT04KKyMgIGVuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL25vX3RyMS9jb21wbGV4LmhwcCBiL2Jvb3N0L2NvbmZpZy9ub190cjEvY29tcGxleC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2EyMDA5MgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9ub190cjEvY29tcGxleC5ocHAKQEAgLTAsMCArMSwyOCBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDUuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBUaGUgYWltIG9mIHRoaXMgaGVhZGVyIGlzIGp1c3QgdG8gaW5jbHVkZSA8Y29tcGxleD4gYnV0IHRvIGRvCisvLyBzbyBpbiBhIHdheSB0aGF0IGRvZXMgbm90IHJlc3VsdCBpbiByZWN1cnNpdmUgaW5jbHVzaW9uIG9mCisvLyB0aGUgQm9vc3QgVFIxIGNvbXBvbmVudHMgaWYgYm9vc3QvdHIxL3RyMS9jb21wbGV4IGlzIGluIHRoZQorLy8gaW5jbHVkZSBzZWFyY2ggcGF0aC4gIFdlIGhhdmUgdG8gZG8gdGhpcyB0byBhdm9pZCBjaXJjdWxhcgorLy8gZGVwZW5kZW5jaWVzOgorLy8KKworI2lmbmRlZiBCT09TVF9DT05GSUdfQ09NUExFWAorIyAgZGVmaW5lIEJPT1NUX0NPTkZJR19DT01QTEVYCisKKyMgIGlmbmRlZiBCT09TVF9UUjFfTk9fUkVDVVJTSU9OCisjICAgICBkZWZpbmUgQk9PU1RfVFIxX05PX1JFQ1VSU0lPTgorIyAgICAgZGVmaW5lIEJPT1NUX0NPTkZJR19OT19DT01QTEVYX1JFQ1VSU0lPTgorIyAgZW5kaWYKKworIyAgaW5jbHVkZSA8Y29tcGxleD4KKworIyAgaWZkZWYgQk9PU1RfQ09ORklHX05PX0NPTVBMRVhfUkVDVVJTSU9OCisjICAgICB1bmRlZiBCT09TVF9UUjFfTk9fUkVDVVJTSU9OCisjICAgICB1bmRlZiBCT09TVF9DT05GSUdfTk9fQ09NUExFWF9SRUNVUlNJT04KKyMgIGVuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL25vX3RyMS9mdW5jdGlvbmFsLmhwcCBiL2Jvb3N0L2NvbmZpZy9ub190cjEvZnVuY3Rpb25hbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM5NWVmYwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9ub190cjEvZnVuY3Rpb25hbC5ocHAKQEAgLTAsMCArMSwyOCBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDUuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBUaGUgYWltIG9mIHRoaXMgaGVhZGVyIGlzIGp1c3QgdG8gaW5jbHVkZSA8ZnVuY3Rpb25hbD4gYnV0IHRvIGRvCisvLyBzbyBpbiBhIHdheSB0aGF0IGRvZXMgbm90IHJlc3VsdCBpbiByZWN1cnNpdmUgaW5jbHVzaW9uIG9mCisvLyB0aGUgQm9vc3QgVFIxIGNvbXBvbmVudHMgaWYgYm9vc3QvdHIxL3RyMS9mdW5jdGlvbmFsIGlzIGluIHRoZQorLy8gaW5jbHVkZSBzZWFyY2ggcGF0aC4gIFdlIGhhdmUgdG8gZG8gdGhpcyB0byBhdm9pZCBjaXJjdWxhcgorLy8gZGVwZW5kZW5jaWVzOgorLy8KKworI2lmbmRlZiBCT09TVF9DT05GSUdfRlVOQ1RJT05BTAorIyAgZGVmaW5lIEJPT1NUX0NPTkZJR19GVU5DVElPTkFMCisKKyMgIGlmbmRlZiBCT09TVF9UUjFfTk9fUkVDVVJTSU9OCisjICAgICBkZWZpbmUgQk9PU1RfVFIxX05PX1JFQ1VSU0lPTgorIyAgICAgZGVmaW5lIEJPT1NUX0NPTkZJR19OT19GVU5DVElPTkFMX1JFQ1VSU0lPTgorIyAgZW5kaWYKKworIyAgaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKworIyAgaWZkZWYgQk9PU1RfQ09ORklHX05PX0ZVTkNUSU9OQUxfUkVDVVJTSU9OCisjICAgICB1bmRlZiBCT09TVF9UUjFfTk9fUkVDVVJTSU9OCisjICAgICB1bmRlZiBCT09TVF9DT05GSUdfTk9fRlVOQ1RJT05BTF9SRUNVUlNJT04KKyMgIGVuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL25vX3RyMS9tZW1vcnkuaHBwIGIvYm9vc3QvY29uZmlnL25vX3RyMS9tZW1vcnkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiNWQyMDgKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvbm9fdHIxL21lbW9yeS5ocHAKQEAgLTAsMCArMSwyOCBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDUuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBUaGUgYWltIG9mIHRoaXMgaGVhZGVyIGlzIGp1c3QgdG8gaW5jbHVkZSA8bWVtb3J5PiBidXQgdG8gZG8KKy8vIHNvIGluIGEgd2F5IHRoYXQgZG9lcyBub3QgcmVzdWx0IGluIHJlY3Vyc2l2ZSBpbmNsdXNpb24gb2YKKy8vIHRoZSBCb29zdCBUUjEgY29tcG9uZW50cyBpZiBib29zdC90cjEvdHIxL21lbW9yeSBpcyBpbiB0aGUKKy8vIGluY2x1ZGUgc2VhcmNoIHBhdGguICBXZSBoYXZlIHRvIGRvIHRoaXMgdG8gYXZvaWQgY2lyY3VsYXIKKy8vIGRlcGVuZGVuY2llczoKKy8vCisKKyNpZm5kZWYgQk9PU1RfQ09ORklHX01FTU9SWQorIyAgZGVmaW5lIEJPT1NUX0NPTkZJR19NRU1PUlkKKworIyAgaWZuZGVmIEJPT1NUX1RSMV9OT19SRUNVUlNJT04KKyMgICAgIGRlZmluZSBCT09TVF9UUjFfTk9fUkVDVVJTSU9OCisjICAgICBkZWZpbmUgQk9PU1RfQ09ORklHX05PX01FTU9SWV9SRUNVUlNJT04KKyMgIGVuZGlmCisKKyMgIGluY2x1ZGUgPG1lbW9yeT4KKworIyAgaWZkZWYgQk9PU1RfQ09ORklHX05PX01FTU9SWV9SRUNVUlNJT04KKyMgICAgIHVuZGVmIEJPT1NUX1RSMV9OT19SRUNVUlNJT04KKyMgICAgIHVuZGVmIEJPT1NUX0NPTkZJR19OT19NRU1PUllfUkVDVVJTSU9OCisjICBlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9ub190cjEvdXRpbGl0eS5ocHAgYi9ib29zdC9jb25maWcvbm9fdHIxL3V0aWxpdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlYThmMTEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvbm9fdHIxL3V0aWxpdHkuaHBwCkBAIC0wLDAgKzEsMjggQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDA1LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gVGhlIGFpbSBvZiB0aGlzIGhlYWRlciBpcyBqdXN0IHRvIGluY2x1ZGUgPHV0aWxpdHk+IGJ1dCB0byBkbworLy8gc28gaW4gYSB3YXkgdGhhdCBkb2VzIG5vdCByZXN1bHQgaW4gcmVjdXJzaXZlIGluY2x1c2lvbiBvZgorLy8gdGhlIEJvb3N0IFRSMSBjb21wb25lbnRzIGlmIGJvb3N0L3RyMS90cjEvdXRpbGl0eSBpcyBpbiB0aGUKKy8vIGluY2x1ZGUgc2VhcmNoIHBhdGguICBXZSBoYXZlIHRvIGRvIHRoaXMgdG8gYXZvaWQgY2lyY3VsYXIKKy8vIGRlcGVuZGVuY2llczoKKy8vCisKKyNpZm5kZWYgQk9PU1RfQ09ORklHX1VUSUxJVFkKKyMgIGRlZmluZSBCT09TVF9DT05GSUdfVVRJTElUWQorCisjICBpZm5kZWYgQk9PU1RfVFIxX05PX1JFQ1VSU0lPTgorIyAgICAgZGVmaW5lIEJPT1NUX1RSMV9OT19SRUNVUlNJT04KKyMgICAgIGRlZmluZSBCT09TVF9DT05GSUdfTk9fVVRJTElUWV9SRUNVUlNJT04KKyMgIGVuZGlmCisKKyMgIGluY2x1ZGUgPHV0aWxpdHk+CisKKyMgIGlmZGVmIEJPT1NUX0NPTkZJR19OT19VVElMSVRZX1JFQ1VSU0lPTgorIyAgICAgdW5kZWYgQk9PU1RfVFIxX05PX1JFQ1VSU0lPTgorIyAgICAgdW5kZWYgQk9PU1RfQ09ORklHX05PX1VUSUxJVFlfUkVDVVJTSU9OCisjICBlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9haXguaHBwIGIvYm9vc3QvY29uZmlnL3BsYXRmb3JtL2FpeC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk0ZWY0MgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9haXguaHBwCkBAIC0wLDAgKzEsMzMgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMi4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgSUJNL0FpeCBzcGVjaWZpYyBjb25maWcgb3B0aW9uczoKKworI2RlZmluZSBCT09TVF9QTEFURk9STSAiSUJNIEFpeCIKKworI2RlZmluZSBCT09TVF9IQVNfVU5JU1REX0gKKyNkZWZpbmUgQk9PU1RfSEFTX05MX1RZUEVTX0gKKyNkZWZpbmUgQk9PU1RfSEFTX05BTk9TTEVFUAorI2RlZmluZSBCT09TVF9IQVNfQ0xPQ0tfR0VUVElNRQorCisvLyBUaGlzIG5lZWRzIHN1cHBvcnQgaW4gImJvb3N0L2NzdGRpbnQuaHBwIiBleGFjdGx5IGxpa2UgRnJlZUJTRC4KKy8vIFRoaXMgcGxhdGZvcm0gaGFzIGhlYWRlciBuYW1lZCA8aW50dHlwZXMuaD4gd2hpY2ggaW5jbHVkZXMgYWxsCisvLyB0aGUgdGhpbmdzIG5lZWRlZC4KKyNkZWZpbmUgQk9PU1RfSEFTX1NURElOVF9ICisKKy8vIFRocmVhZGluZyBBUEknczoKKyNkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURTCisjZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEX0RFTEFZX05QCisjZGVmaW5lIEJPT1NUX0hBU19TQ0hFRF9ZSUVMRAorLy8jZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEX1lJRUxECisKKy8vIGJvaWxlcnBsYXRlIGNvZGU6CisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcD4KKworCisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL3BsYXRmb3JtL2FtaWdhb3MuaHBwIGIvYm9vc3QvY29uZmlnL3BsYXRmb3JtL2FtaWdhb3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0YmNmNDEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvcGxhdGZvcm0vYW1pZ2Fvcy5ocHAKQEAgLTAsMCArMSwxNSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDIuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworI2RlZmluZSBCT09TVF9QTEFURk9STSAiQW1pZ2FPUyIKKworI2RlZmluZSBCT09TVF9ESVNBQkxFX1RIUkVBRFMKKyNkZWZpbmUgQk9PU1RfTk9fQ1dDSEFSCisjZGVmaW5lIEJPT1NUX05PX1NURF9XU1RSSU5HCisjZGVmaW5lIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisgCisKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9iZW9zLmhwcCBiL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9iZW9zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGMzZDhkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL3BsYXRmb3JtL2Jlb3MuaHBwCkBAIC0wLDAgKzEsMjYgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBCZU9TIHNwZWNpZmljIGNvbmZpZyBvcHRpb25zOgorCisjZGVmaW5lIEJPT1NUX1BMQVRGT1JNICJCZU9TIgorCisjZGVmaW5lIEJPT1NUX05PX0NXQ0hBUgorI2RlZmluZSBCT09TVF9OT19DV0NUWVBFCisjZGVmaW5lIEJPT1NUX0hBU19VTklTVERfSAorCisjZGVmaW5lIEJPT1NUX0hBU19CRVRIUkVBRFMKKworI2lmbmRlZiBCT09TVF9ESVNBQkxFX1RIUkVBRFMKKyMgIGRlZmluZSBCT09TVF9IQVNfVEhSRUFEUworI2VuZGlmCisKKy8vIGJvaWxlcnBsYXRlIGNvZGU6CisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcD4KKyAKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvcGxhdGZvcm0vYnNkLmhwcCBiL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9ic2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwMTQyOTcKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvcGxhdGZvcm0vYnNkLmhwcApAQCAtMCwwICsxLDg2IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgRGFyaW4gQWRsZXIgMjAwMS4gCisvLyAgKEMpIENvcHlyaWdodCBEb3VnbGFzIEdyZWdvciAyMDAyLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBnZW5lcmljIEJTRCBjb25maWcgb3B0aW9uczoKKworI2lmICFkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX05ldEJTRF9fKSAmJiAhZGVmaW5lZChfX09wZW5CU0RfXykgJiYgIWRlZmluZWQoX19EcmFnb25GbHlfXykKKyNlcnJvciAiVGhpcyBwbGF0Zm9ybSBpcyBub3QgQlNEIgorI2VuZGlmCisKKyNpZmRlZiBfX0ZyZWVCU0RfXworI2RlZmluZSBCT09TVF9QTEFURk9STSAiRnJlZUJTRCAiIEJPT1NUX1NUUklOR0laRShfX0ZyZWVCU0RfXykKKyNlbGlmIGRlZmluZWQoX19OZXRCU0RfXykKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIk5ldEJTRCAiIEJPT1NUX1NUUklOR0laRShfX05ldEJTRF9fKQorI2VsaWYgZGVmaW5lZChfX09wZW5CU0RfXykKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIk9wZW5CU0QgIiBCT09TVF9TVFJJTkdJWkUoX19PcGVuQlNEX18pCisjZWxpZiBkZWZpbmVkKF9fRHJhZ29uRmx5X18pCisjZGVmaW5lIEJPT1NUX1BMQVRGT1JNICJEcmFnb25GbHkgIiBCT09TVF9TVFJJTkdJWkUoX19EcmFnb25GbHlfXykKKyNlbmRpZgorCisvLworLy8gaXMgdGhpcyB0aGUgY29ycmVjdCB2ZXJzaW9uIGNoZWNrPworLy8gRnJlZUJTRCBoYXMgPG5sX3R5cGVzLmg+IGJ1dCBkb2VzIG5vdAorLy8gYWR2ZXJ0aXNlIHRoZSBmYWN0IGluIDx1bmlzdGQuaD46CisvLworI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAoX19GcmVlQlNEX18gPj0gMykpIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykKKyMgIGRlZmluZSBCT09TVF9IQVNfTkxfVFlQRVNfSAorI2VuZGlmCisKKy8vCisvLyBGcmVlQlNEIDMueCBoYXMgcHRocmVhZHMgc3VwcG9ydCwgYnV0IGRlZmluZXMgX1BPU0lYX1RIUkVBRFMgaW4gPHB0aHJlYWQuaD4KKy8vIGFuZCBub3QgaW4gPHVuaXN0ZC5oPgorLy8KKyNpZiAoZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgKF9fRnJlZUJTRF9fIDw9IDMpKVwKKyAgIHx8IGRlZmluZWQoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykgCisjICBkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURTCisjZW5kaWYKKworLy8KKy8vIE5vIHdpZGUgY2hhcmFjdGVyIHN1cHBvcnQgaW4gdGhlIEJTRCBoZWFkZXIgZmlsZXM6CisvLworI2lmIGRlZmluZWQoX19OZXRCU0RfXykKKyNkZWZpbmUgX19OZXRCU0RfR0NDX18gKF9fR05VQ19fICAgICAgICAgKiAxMDAwMDAwIFwKKyAgICAgICAgICAgICAgICAgICAgICAgKyBfX0dOVUNfTUlOT1JfXyAqICAgIDEwMDAgXAorICAgICAgICAgICAgICAgICAgICAgICArIF9fR05VQ19QQVRDSExFVkVMX18pCisvLyBYWFggLSB0aGUgZm9sbG93aW5nIGlzIHJlcXVpcmVkIHVudGlsIGMrK2NvbmZpZy5oCisvLyAgICAgICBkZWZpbmVzIF9HTElCQ1hYX0hBVkVfU1dQUklOVEYgYW5kIGZyaWVuZHMKKy8vICAgICAgIG9yIHRoZSBwcmVwcm9jZXNzb3IgY29uZGl0aW9uYWxzIGFyZSByZW1vdmVkCisvLyAgICAgICBmcm9tIHRoZSBjd2NoYXIgaGVhZGVyLgorI2RlZmluZSBfR0xJQkNYWF9IQVZFX1NXUFJJTlRGIDEKKyNlbmRpZgorCisjaWYgISgoZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgKF9fRnJlZUJTRF9fID49IDUpKSBcCisgICAgICB8fCAoZGVmaW5lZChfX05ldEJTRF9HQ0NfXykgJiYgKF9fTmV0QlNEX0dDQ19fID49IDIwOTUwMDMpKSB8fCBkZWZpbmVkKF9fRHJhZ29uRmx5X18pKQorIyAgZGVmaW5lIEJPT1NUX05PX0NXQ0hBUgorI2VuZGlmCisvLworLy8gVGhlIEJTRCA8Y3R5cGUuaD4gaGFzIG1hY3JvcyBvbmx5LCBubyBmdW5jdGlvbnM6CisvLworI2lmICFkZWZpbmVkKF9fT3BlbkJTRF9fKSB8fCBkZWZpbmVkKF9fRHJhZ29uRmx5X18pCisjICBkZWZpbmUgQk9PU1RfTk9fQ1RZUEVfRlVOQ1RJT05TCisjZW5kaWYKKworLy8KKy8vIHRocmVhZCBBUEkncyBub3QgYXV0byBkZXRlY3RlZDoKKy8vCisjZGVmaW5lIEJPT1NUX0hBU19TQ0hFRF9ZSUVMRAorI2RlZmluZSBCT09TVF9IQVNfTkFOT1NMRUVQCisjZGVmaW5lIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVkKKyNkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURfTVVURVhBVFRSX1NFVFRZUEUKKyNkZWZpbmUgQk9PU1RfSEFTX1NJR0FDVElPTgorCisvLyBib2lsZXJwbGF0ZSBjb2RlOgorI2RlZmluZSBCT09TVF9IQVNfVU5JU1REX0gKKyNpbmNsdWRlIDxib29zdC9jb25maWcvcG9zaXhfZmVhdHVyZXMuaHBwPgorCisKKworCisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL3BsYXRmb3JtL2NyYXkuaHBwIGIvYm9vc3QvY29uZmlnL3BsYXRmb3JtL2NyYXkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjNDc2ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvcGxhdGZvcm0vY3JheS5ocHAKQEAgLTAsMCArMSwxOCBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMTEuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZQorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgU0dJIElyaXggc3BlY2lmaWMgY29uZmlnIG9wdGlvbnM6CisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIkNyYXkiCisKKy8vIGJvaWxlcnBsYXRlIGNvZGU6CisjZGVmaW5lIEJPT1NUX0hBU19VTklTVERfSAorI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy9wb3NpeF9mZWF0dXJlcy5ocHA+CisKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvcGxhdGZvcm0vY3lnd2luLmhwcCBiL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9jeWd3aW4uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3ZWY1NzIKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvcGxhdGZvcm0vY3lnd2luLmhwcApAQCAtMCwwICsxLDU4IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIGN5Z3dpbiBzcGVjaWZpYyBjb25maWcgb3B0aW9uczoKKworI2RlZmluZSBCT09TVF9QTEFURk9STSAiQ3lnd2luIgorI2RlZmluZSBCT09TVF9IQVNfRElSRU5UX0gKKyNkZWZpbmUgQk9PU1RfSEFTX0xPRzFQCisjZGVmaW5lIEJPT1NUX0hBU19FWFBNMQorCisvLworLy8gVGhyZWFkaW5nIEFQSToKKy8vIFNlZSBpZiB3ZSBoYXZlIFBPU0lYIHRocmVhZHMsIGlmIHdlIGRvIHVzZSB0aGVtLCBvdGhlcndpc2UKKy8vIHJldmVydCB0byBuYXRpdmUgV2luIHRocmVhZHMuCisjZGVmaW5lIEJPT1NUX0hBU19VTklTVERfSAorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2lmIGRlZmluZWQoX1BPU0lYX1RIUkVBRFMpICYmIChfUE9TSVhfVEhSRUFEUyswID49IDApICYmICFkZWZpbmVkKEJPT1NUX0hBU19XSU5USFJFQURTKQorIyAgZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEUworIyAgZGVmaW5lIEJPT1NUX0hBU19TQ0hFRF9ZSUVMRAorIyAgZGVmaW5lIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVkKKyMgIGRlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRQorIyAgZGVmaW5lIEJPT1NUX0hBU19TSUdBQ1RJT04KKyNlbHNlCisjICBpZiAhZGVmaW5lZChCT09TVF9IQVNfV0lOVEhSRUFEUykKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfV0lOVEhSRUFEUworIyAgZW5kaWYKKyMgIGRlZmluZSBCT09TVF9IQVNfRlRJTUUKKyNlbmRpZgorCisvLworLy8gZmluZCBvdXQgaWYgd2UgaGF2ZSBhIHN0ZGludC5oLCB0aGVyZSBzaG91bGQgYmUgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXM6CisvLworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2lmZGVmIF9TVERJTlRfSAorI2RlZmluZSBCT09TVF9IQVNfU1RESU5UX0gKKyNlbmRpZgorCisvLy8gQ3lnd2luIGhhcyBubyBmZW52LmgKKyNkZWZpbmUgQk9PU1RfTk9fRkVOVl9ICisKKy8vIGJvaWxlcnBsYXRlIGNvZGU6CisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcD4KKworLy8KKy8vIEN5Z3dpbiBsaWVzIGFib3V0IFhTSSBjb25mb3JtYW5jZSwgdGhlcmUgaXMgbm8gbmxfdHlwZXMuaDoKKy8vCisjaWZkZWYgQk9PU1RfSEFTX05MX1RZUEVTX0gKKyMgIHVuZGVmIEJPT1NUX0hBU19OTF9UWVBFU19ICisjZW5kaWYKKyAKKworCisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL3BsYXRmb3JtL2hwdXguaHBwIGIvYm9vc3QvY29uZmlnL3BsYXRmb3JtL2hwdXguaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5Y2U2OGUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvcGxhdGZvcm0vaHB1eC5ocHAKQEAgLTAsMCArMSw4NyBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IEplbnMgTWF1cmVyIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IERhdmlkIEFicmFoYW1zIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgVG9vbiBLbmFwZW4gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBCb3JpcyBHdWJlbmtvIDIwMDYgLSAyMDA3LgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIGhwdXggc3BlY2lmaWMgY29uZmlnIG9wdGlvbnM6CisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIkhQLVVYIgorCisvLyBJbiBwcmluY2lwbGUsIEhQLVVYIGhhcyBhIG5pY2UgPHN0ZGludC5oPiB1bmRlciB0aGUgbmFtZSA8aW50dHlwZXMuaD4KKy8vIEhvd2V2ZXIsIGl0IGhhcyB0aGUgZm9sbG93aW5nIHByb2JsZW06CisvLyBVc2Ugb2YgVUlOVDMyX0MoMCkgcmVzdWx0cyBpbiAiMHUgbCIgZm9yIHRoZSBwcmVwcm9jZXNzZWQgc291cmNlCisvLyAodmVyaWZ5YWJsZSB3aXRoIGdjYyAyLjk1LjMpCisjaWYgKGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA+PSAzKSkgfHwgZGVmaW5lZChfX0hQX2FDQykKKyMgIGRlZmluZSBCT09TVF9IQVNfU1RESU5UX0gKKyNlbmRpZgorCisjaWYgIShkZWZpbmVkKF9fSFBfYUNDKSB8fCAhZGVmaW5lZChfSU5DTFVERV9fU1REQ19BMV9TT1VSQ0UpKQorIyAgZGVmaW5lIEJPT1NUX05PX1NXUFJJTlRGCisjZW5kaWYKKyNpZiBkZWZpbmVkKF9fSFBfYUNDKSAmJiAhZGVmaW5lZChfSU5DTFVERV9fU1REQ19BMV9TT1VSQ0UpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1dDVFlQRQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorIyAgaWYgKF9fR05VQ19fIDwgMykgfHwgKChfX0dOVUNfXyA9PSAzKSAmJiAoX19HTlVDX01JTk9SX18gPCAzKSkKKyAgICAgIC8vIEdOVSBDIG9uIEhQLVVYIGRvZXMgbm90IHN1cHBvcnQgdGhyZWFkcyAoY2hlY2tlZCB1cCB0byBnY2MgMy4zKQorIyAgICAgZGVmaW5lIEJPT1NUX0RJU0FCTEVfVEhSRUFEUworIyAgZWxpZiAhZGVmaW5lZChCT09TVF9ESVNBQkxFX1RIUkVBRFMpCisgICAgICAvLyB0aHJlYWRzIHN1cHBvcnRlZCBmcm9tIGdjYy0zLjMgb253YXJkczoKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfVEhSRUFEUworIyAgICAgZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEUworIyAgZW5kaWYKKyNlbGlmIGRlZmluZWQoX19IUF9hQ0MpICYmICFkZWZpbmVkKEJPT1NUX0RJU0FCTEVfVEhSRUFEUykKKyMgIGRlZmluZSBCT09TVF9IQVNfUFRIUkVBRFMKKyNlbmRpZgorCisvLyBib2lsZXJwbGF0ZSBjb2RlOgorI2RlZmluZSBCT09TVF9IQVNfVU5JU1REX0gKKyNpbmNsdWRlIDxib29zdC9jb25maWcvcG9zaXhfZmVhdHVyZXMuaHBwPgorCisvLyB0aGUgZm9sbG93aW5nIGFyZSBhbHdheXMgYXZhaWxhYmxlOgorI2lmbmRlZiBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjICBkZWZpbmUgQk9PU1RfSEFTX0dFVFRJTUVPRkRBWQorI2VuZGlmCisjaWZuZGVmIEJPT1NUX0hBU19TQ0hFRF9ZSUVMRAorIyAgICBkZWZpbmUgQk9PU1RfSEFTX1NDSEVEX1lJRUxECisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfSEFTX1BUSFJFQURfTVVURVhBVFRSX1NFVFRZUEUKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEX01VVEVYQVRUUl9TRVRUWVBFCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfSEFTX05MX1RZUEVTX0gKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19OTF9UWVBFU19ICisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfSEFTX05BTk9TTEVFUAorIyAgICBkZWZpbmUgQk9PU1RfSEFTX05BTk9TTEVFUAorI2VuZGlmCisjaWZuZGVmIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVkKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVkKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9IQVNfRElSRU5UX0gKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19ESVJFTlRfSAorI2VuZGlmCisjaWZuZGVmIEJPT1NUX0hBU19DTE9DS19HRVRUSU1FCisjICAgIGRlZmluZSBCT09TVF9IQVNfQ0xPQ0tfR0VUVElNRQorI2VuZGlmCisjaWZuZGVmIEJPT1NUX0hBU19TSUdBQ1RJT04KKyMgIGRlZmluZSBCT09TVF9IQVNfU0lHQUNUSU9OCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfSEFTX05SVk8gCisjICBpZm5kZWYgX19wYXJpc2MKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19OUlZPCisjICBlbmRpZgorI2VuZGlmCisjaWZuZGVmIEJPT1NUX0hBU19MT0cxUCAKKyMgIGRlZmluZSBCT09TVF9IQVNfTE9HMVAKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9IQVNfRVhQTTEKKyMgIGRlZmluZSBCT09TVF9IQVNfRVhQTTEKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvcGxhdGZvcm0vaXJpeC5ocHAgYi9ib29zdC9jb25maWcvcGxhdGZvcm0vaXJpeC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVhZTQ5YwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9pcml4LmhwcApAQCAtMCwwICsxLDMxIEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBTR0kgSXJpeCBzcGVjaWZpYyBjb25maWcgb3B0aW9uczoKKworI2RlZmluZSBCT09TVF9QTEFURk9STSAiU0dJIElyaXgiCisKKyNkZWZpbmUgQk9PU1RfTk9fU1dQUklOVEYgCisvLworLy8gdGhlc2UgYXJlIG5vdCBhdXRvIGRldGVjdGVkIGJ5IFBPU0lYIGZlYXR1cmUgdGVzdHM6CisvLworI2RlZmluZSBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEX01VVEVYQVRUUl9TRVRUWVBFCisKKyNpZmRlZiBfX0dOVUNfXworICAgLy8gR05VIEMgb24gSVJJWCBkb2VzIG5vdCBzdXBwb3J0IHRocmVhZHMgKGNoZWNrZWQgdXAgdG8gZ2NjIDMuMykKKyMgIGRlZmluZSBCT09TVF9ESVNBQkxFX1RIUkVBRFMKKyNlbmRpZgorCisvLyBib2lsZXJwbGF0ZSBjb2RlOgorI2RlZmluZSBCT09TVF9IQVNfVU5JU1REX0gKKyNpbmNsdWRlIDxib29zdC9jb25maWcvcG9zaXhfZmVhdHVyZXMuaHBwPgorCisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL3BsYXRmb3JtL2xpbnV4LmhwcCBiL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9saW51eC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAyYWZmNwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9saW51eC5ocHAKQEAgLTAsMCArMSwxMDMgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAxIC0gMjAwMy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgbGludXggc3BlY2lmaWMgY29uZmlnIG9wdGlvbnM6CisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gImxpbnV4IgorCisvLyBtYWtlIHN1cmUgd2UgaGF2ZSBfX0dMSUJDX1BSRVJFUSBpZiBhdmFpbGFibGUgYXQgYWxsCisjaWZkZWYgX19jcGx1c3BsdXMKKyNpbmNsdWRlIDxjc3RkbGliPgorI2Vsc2UKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorCisvLworLy8gPHN0ZGludC5oPiBhZGRlZCB0byBnbGliYyAyLjEuMQorLy8gV2UgY2FuIG9ubHkgdGVzdCBmb3IgMi4xIHRob3VnaDoKKy8vCisjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICgoX19HTElCQ19fID4gMikgfHwgKChfX0dMSUJDX18gPT0gMikgJiYgKF9fR0xJQkNfTUlOT1JfXyA+PSAxKSkpCisgICAvLyA8c3RkaW50Lmg+IGRlZmluZXMgaW50NjRfdCB1bmNvbmRpdGlvbmFsbHksIGJ1dCA8c3lzL3R5cGVzLmg+IGRlZmluZXMKKyAgIC8vIGludDY0X3Qgb25seSBpZiBfX0dOVUNfXy4gIFRodXMsIGFzc3VtZSBhIGZ1bGx5IHVzYWJsZSA8c3RkaW50Lmg+CisgICAvLyBvbmx5IHdoZW4gdXNpbmcgR0NDLgorIyAgaWYgZGVmaW5lZCBfX0dOVUNfXworIyAgICBkZWZpbmUgQk9PU1RfSEFTX1NURElOVF9ICisjICBlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fTElCQ09NT19fKQorICAgLy8KKyAgIC8vIGNvbW8gb24gbGludXggZG9lc24ndCBoYXZlIHN0ZDo6IGMgZnVuY3Rpb25zOgorICAgLy8gTk9URTogdmVyc2lvbnMgb2YgbGliY29tbyBwcmlvciB0byBiZXRhMjggaGF2ZSBvY3RhbCB2ZXJzaW9uIG51bWJlcmluZywKKyAgIC8vIGUuZy4gdmVyc2lvbiAyNSBpcyAyMSAoZGVjKQorICAgLy8KKyMgIGlmIF9fTElCQ09NT19WRVJTSU9OX18gPD0gMjAKKyMgICAgZGVmaW5lIEJPT1NUX05PX1NURENfTkFNRVNQQUNFCisjICBlbmRpZgorCisjICBpZiBfX0xJQkNPTU9fVkVSU0lPTl9fIDw9IDIxCisjICAgIGRlZmluZSBCT09TVF9OT19TV1BSSU5URgorIyAgZW5kaWYKKworI2VuZGlmCisKKy8vCisvLyBJZiBnbGliYyBpcyBwYXN0IHZlcnNpb24gMiB0aGVuIHdlIGRlZmluaXRlbHkgaGF2ZQorLy8gZ2V0dGltZW9mZGF5LCBlYXJsaWVyIHZlcnNpb25zIG1heSBvciBtYXkgbm90IGhhdmUgaXQ6CisvLworI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAoX19HTElCQ19fID49IDIpCisjICBkZWZpbmUgQk9PU1RfSEFTX0dFVFRJTUVPRkRBWQorI2VuZGlmCisKKyNpZmRlZiBfX1VTRV9QT1NJWDE5OTMwOQorIyAgZGVmaW5lIEJPT1NUX0hBU19OQU5PU0xFRVAKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmIGRlZmluZWQoX19HTElCQ19QUkVSRVEpCisvLyBfX0dMSUJDX1BSRVJFUSBpcyBhdmFpbGFibGUgc2luY2UgMi4xLjIKKworICAgLy8gc3dwcmludGYgaXMgYXZhaWxhYmxlIHNpbmNlIGdsaWJjIDIuMi4wCisjICBpZiAhX19HTElCQ19QUkVSRVEoMiwyKSB8fCAoIWRlZmluZWQoX19VU0VfSVNPQzk5KSAmJiAhZGVmaW5lZChfX1VTRV9VTklYOTgpKQorIyAgICBkZWZpbmUgQk9PU1RfTk9fU1dQUklOVEYKKyMgIGVuZGlmCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX05PX1NXUFJJTlRGCisjZW5kaWYKKworLy8gYm9pbGVycGxhdGUgY29kZToKKyNkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcD4KKyNkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURfWUlFTEQKKworI2lmbmRlZiBfX0dOVUNfXworLy8KKy8vIGlmIHRoZSBjb21waWxlciBpcyBub3QgZ2NjIHdlIHN0aWxsIG5lZWQgdG8gYmUgYWJsZSB0byBwYXJzZQorLy8gdGhlIEdOVSBzeXN0ZW0gaGVhZGVycywgc29tZSBvZiB3aGljaCAobWFpbmx5IDxzdGRpbnQuaD4pCisvLyB1c2UgR05VIHNwZWNpZmljIGV4dGVuc2lvbnM6CisvLworIyAgaWZuZGVmIF9fZXh0ZW5zaW9uX18KKyMgICAgIGRlZmluZSBfX2V4dGVuc2lvbl9fCisjICBlbmRpZgorIyAgaWZuZGVmIF9fY29uc3RfXworIyAgICAgZGVmaW5lIF9fY29uc3RfXyBjb25zdAorIyAgZW5kaWYKKyMgIGlmbmRlZiBfX3ZvbGF0aWxlX18KKyMgICAgIGRlZmluZSBfX3ZvbGF0aWxlX18gdm9sYXRpbGUKKyMgIGVuZGlmCisjICBpZm5kZWYgX19zaWduZWRfXworIyAgICAgZGVmaW5lIF9fc2lnbmVkX18gc2lnbmVkCisjICBlbmRpZgorIyAgaWZuZGVmIF9fdHlwZW9mX18KKyMgICAgIGRlZmluZSBfX3R5cGVvZl9fIHR5cGVvZgorIyAgZW5kaWYKKyMgIGlmbmRlZiBfX2lubGluZV9fCisjICAgICBkZWZpbmUgX19pbmxpbmVfXyBpbmxpbmUKKyMgIGVuZGlmCisjZW5kaWYKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvcGxhdGZvcm0vbWFjb3MuaHBwIGIvYm9vc3QvY29uZmlnL3BsYXRmb3JtL21hY29zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDg3NmIxCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL3BsYXRmb3JtL21hY29zLmhwcApAQCAtMCwwICsxLDg3IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgRGFyaW4gQWRsZXIgMjAwMSAtIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgQmlsbCBLZW1wZiAyMDAyLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBNYWMgT1Mgc3BlY2lmaWMgY29uZmlnIG9wdGlvbnM6CisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIk1hYyBPUyIKKworI2lmIF9fTUFDSF9fICYmICFkZWZpbmVkKF9NU0xfVVNJTkdfTVNMX0MpCisKKy8vIFVzaW5nIHRoZSBNYWMgT1MgWCBzeXN0ZW0gQlNELXN0eWxlIEMgbGlicmFyeS4KKworIyAgaWZuZGVmIEJPT1NUX0hBU19VTklTVERfSAorIyAgICBkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisjICBlbmRpZgorLy8KKy8vIEJlZ2luIGJ5IGluY2x1ZGluZyBvdXIgYm9pbGVycGxhdGUgY29kZSBmb3IgUE9TSVgKKy8vIGZlYXR1cmUgZGV0ZWN0aW9uLCB0aGlzIGlzIHNhZmUgZXZlbiB3aGVuIHVzaW5nCisvLyB0aGUgTVNMIGFzIE1ldHJvd2Vya3Mgc3VwcGx5IHRoZWlyIG93biA8dW5pc3RkLmg+CisvLyB0byByZXBsYWNlIHRoZSBwbGF0Zm9ybS1uYXRpdmUgQlNEIG9uZS4gRysrIHVzZXJzCisvLyBzaG91bGQgYWxzbyBhbHdheXMgYmUgYWJsZSB0byBkbyB0aGlzIG9uIE1heE9TIFguCisvLworIyAgaW5jbHVkZSA8Ym9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcD4KKyMgIGlmbmRlZiBCT09TVF9IQVNfU1RESU5UX0gKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfU1RESU5UX0gKKyMgIGVuZGlmCisKKy8vCisvLyBCU0QgcnVudGltZSBoYXMgcHRocmVhZHMsIHNpZ2FjdGlvbiwgc2NoZWRfeWllbGQgYW5kIGdldHRpbWVvZmRheSwKKy8vIG9mIHRoZXNlIG9ubHkgcHRocmVhZHMgYXJlIGFkdmVydGlzZWQgaW4gPHVuaXN0ZC5oPiwgc28gc2V0IHRoZSAKKy8vIG90aGVyIG9wdGlvbnMgZXhwbGljaXRseToKKy8vCisjICBkZWZpbmUgQk9PU1RfSEFTX1NDSEVEX1lJRUxECisjICBkZWZpbmUgQk9PU1RfSEFTX0dFVFRJTUVPRkRBWQorIyAgZGVmaW5lIEJPT1NUX0hBU19TSUdBQ1RJT04KKworIyAgaWYgKF9fR05VQ19fIDwgMykgJiYgIWRlZmluZWQoIF9fQVBQTEVfQ0NfXykKKworLy8gR0NDIHN0cmFuZ2UgImlnbm9yZSBzdGQiIG1vZGUgd29ya3MgYmV0dGVyIGlmIHlvdSBwcmV0ZW5kIGV2ZXJ5dGhpbmcKKy8vIGlzIGluIHRoZSBzdGQgbmFtZXNwYWNlLCBmb3IgdGhlIG1vc3QgcGFydC4KKworIyAgICBkZWZpbmUgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKKyMgIGVuZGlmCisKKyMgIGlmIChfX0dOVUNfXyA9PSA0KQorCisvLyBCb3RoIGdjYyBhbmQgaW50ZWwgcmVxdWlyZSB0aGVzZS4gIAorIyAgICBkZWZpbmUgQk9PU1RfSEFTX1BUSFJFQURfTVVURVhBVFRSX1NFVFRZUEUKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19OQU5PU0xFRVAKKworIyAgZW5kaWYKKworI2Vsc2UKKworLy8gVXNpbmcgdGhlIE1TTCBDIGxpYnJhcnkuCisKKy8vIFdlIHdpbGwgZXZlbnR1YWxseSBzdXBwb3J0IHRocmVhZHMgaW4gbm9uLUNhcmJvbiBidWlsZHMsIGJ1dCB3ZSBkbworLy8gbm90IHN1cHBvcnQgdGhpcyB5ZXQuCisjICBpZiAoIGRlZmluZWQoVEFSR0VUX0FQSV9NQUNfQ0FSQk9OKSAmJiBUQVJHRVRfQVBJX01BQ19DQVJCT04gKSB8fCAoIGRlZmluZWQoVEFSR0VUX0NBUkJPTikgJiYgVEFSR0VUX0NBUkJPTiApCisKKyMgIGlmICFkZWZpbmVkKEJPT1NUX0hBU19QVEhSRUFEUykKKy8vIE1QVGFza3Mgc3VwcG9ydCBpcyBkZXByZWNhdGVkL3JlbW92ZWQgZnJvbSBCb29zdDoKKy8vIyAgICBkZWZpbmUgQk9PU1RfSEFTX01QVEFTS1MKKyMgIGVsaWYgKCBfX2Rlc3Rfb3MgPT0gX19tYWNfb3NfeCApCisvLyBXZSBhcmUgZG9pbmcgYSBDYXJib24vTWFjaC1PL01TTCBidWlsZCB3aGljaCBoYXMgcHRocmVhZHMsIGJ1dCBvbmx5IHRoZQorLy8gZ2V0dGltZW9mZGF5IGFuZCBubyBwb3NpeC4KKyMgIGRlZmluZSBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjICBlbmRpZgorCisjaWZkZWYgQk9PU1RfSEFTX1BUSFJFQURTCisjICBkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyNlbmRpZgorCisvLyBUaGUgcmVtb3RlIGNhbGwgbWFuYWdlciBkZXBlbmRzIG9uIHRoaXMuCisjICAgIGRlZmluZSBCT09TVF9CSU5EX0VOQUJMRV9QQVNDQUwKKworIyAgZW5kaWYKKworI2VuZGlmCisKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvcGxhdGZvcm0vcW54bnRvLmhwcCBiL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9xbnhudG8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMzc3YzgKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvcGxhdGZvcm0vcW54bnRvLmhwcApAQCAtMCwwICsxLDMxIEBACisvLyAgKEMpIENvcHlyaWdodCBKaW0gRG91Z2xhcyAyMDA1LiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBRTlggc3BlY2lmaWMgY29uZmlnIG9wdGlvbnM6CisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIlFOWCIKKworI2RlZmluZSBCT09TVF9IQVNfVU5JU1REX0gKKyNpbmNsdWRlIDxib29zdC9jb25maWcvcG9zaXhfZmVhdHVyZXMuaHBwPgorCisvLyBRTlggY2xhaW1zIFhPcGVuIHZlcnNpb24gNSBjb21wYXRpYmlsaXR5LCBidXQgZG9lc24ndCBoYXZlIGFuIG5sX3R5cGVzLmgKKy8vIG9yIGxvZzFwIGFuZCBleHBtMToKKyN1bmRlZiAgQk9PU1RfSEFTX05MX1RZUEVTX0gKKyN1bmRlZiAgQk9PU1RfSEFTX0xPRzFQCisjdW5kZWYgIEJPT1NUX0hBU19FWFBNMQorCisjZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEUworI2RlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRQorCisjZGVmaW5lIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVkKKyNkZWZpbmUgQk9PU1RfSEFTX0NMT0NLX0dFVFRJTUUKKyNkZWZpbmUgQk9PU1RfSEFTX05BTk9TTEVFUAorCisKKworCisKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9zb2xhcmlzLmhwcCBiL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9zb2xhcmlzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjkyNTY2Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL3BsYXRmb3JtL3NvbGFyaXMuaHBwCkBAIC0wLDAgKzEsMjggQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAzLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBzdW4gc3BlY2lmaWMgY29uZmlnIG9wdGlvbnM6CisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIlN1biBTb2xhcmlzIgorCisjZGVmaW5lIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVkKKworLy8gYm9pbGVycGxhdGUgY29kZToKKyNkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcD4KKworLy8KKy8vIHB0aHJlYWRzIGRvbid0IGFjdHVhbGx5IHdvcmsgd2l0aCBnY2MgdW5sZXNzIF9QVEhSRUFEUyBpcyBkZWZpbmVkOgorLy8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBkZWZpbmVkKF9QT1NJWF9USFJFQURTKSAmJiAhZGVmaW5lZChfUFRIUkVBRFMpCisjIHVuZGVmIEJPT1NUX0hBU19QVEhSRUFEUworI2VuZGlmCisKKworCisKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9zeW1iaWFuLmhwcCBiL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS9zeW1iaWFuLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDJhNzc4Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL3BsYXRmb3JtL3N5bWJpYW4uaHBwCkBAIC0wLDAgKzEsOTcgQEAKKy8vICAoQykgQ29weXJpZ2h0IFl1cml5IEtyYXNub3NjaGVrIDIwMDkuIAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IEplbnMgTWF1cmVyIDIwMDEgLSAyMDAzLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBzeW1iaWFuIHNwZWNpZmljIGNvbmZpZyBvcHRpb25zOgorCisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIlN5bWJpYW4iCisjZGVmaW5lIEJPT1NUX1NZTUJJQU4gMQorCisKKyNpZiBkZWZpbmVkKF9fUzYwXzNYX18pCisvLyBPcGVuIEMgLyBDKysgcGx1Z2luIHdhcyBpbnRyb2R1c2VkIGluIHRoaXMgU0RLLCBlYXJsaWVyIHZlcnNpb25zIGRvbid0IGhhdmUgQ1JUIC8gU1RMCisjICBkZWZpbmUgQk9PU1RfUzYwXzNyZF9FRElUSU9OX0ZQMl9PUl9MQVRFUl9TREsKKy8vIG1ha2Ugc3VyZSB3ZSBoYXZlIF9fR0xJQkNfUFJFUkVRIGlmIGF2YWlsYWJsZSBhdCBhbGwKKyNpZmRlZiBfX2NwbHVzcGx1cworI2luY2x1ZGUgPGNzdGRsaWI+CisjZWxzZQorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2VuZGlmLy8gYm9pbGVycGxhdGUgY29kZToKKyMgIGRlZmluZSBCT09TVF9IQVNfVU5JU1REX0gKKyMgIGluY2x1ZGUgPGJvb3N0L2NvbmZpZy9wb3NpeF9mZWF0dXJlcy5ocHA+CisvLyBTNjAgU0RLIGRlZmluZXMgX1BPU0lYX1ZFUlNJT04gYXMgUE9TSVguMQorIyAgaWZuZGVmIEJPT1NUX0hBU19TVERJTlRfSAorIyAgICBkZWZpbmUgQk9PU1RfSEFTX1NURElOVF9ICisjICBlbmRpZgorIyAgaWZuZGVmIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVkKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVkKKyMgIGVuZGlmCisjICBpZm5kZWYgQk9PU1RfSEFTX0RJUkVOVF9ICisjICAgIGRlZmluZSBCT09TVF9IQVNfRElSRU5UX0gKKyMgIGVuZGlmCisjICBpZm5kZWYgQk9PU1RfSEFTX1NJR0FDVElPTgorIyAgICBkZWZpbmUgQk9PU1RfSEFTX1NJR0FDVElPTgorIyAgZW5kaWYKKyMgIGlmbmRlZiBCT09TVF9IQVNfUFRIUkVBRFMKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEUworIyAgZW5kaWYKKyMgIGlmbmRlZiBCT09TVF9IQVNfTkFOT1NMRUVQCisjICAgIGRlZmluZSBCT09TVF9IQVNfTkFOT1NMRUVQCisjICBlbmRpZgorIyAgaWZuZGVmIEJPT1NUX0hBU19TQ0hFRF9ZSUVMRAorIyAgICBkZWZpbmUgQk9PU1RfSEFTX1NDSEVEX1lJRUxECisjICBlbmRpZgorIyAgaWZuZGVmIEJPT1NUX0hBU19QVEhSRUFEX01VVEVYQVRUUl9TRVRUWVBFCisjICAgIGRlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRQorIyAgZW5kaWYKKyMgIGlmbmRlZiBCT09TVF9IQVNfTE9HMVAKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19MT0cxUAorIyAgZW5kaWYKKyMgIGlmbmRlZiBCT09TVF9IQVNfRVhQTTEKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19FWFBNMQorIyAgZW5kaWYKKyMgIGlmbmRlZiBCT09TVF9QT1NJWF9BUEkKKyMgICAgZGVmaW5lIEJPT1NUX1BPU0lYX0FQSQorIyAgZW5kaWYKKy8vIGVuZGlhbmVzcyBzdXBwb3J0CisjICBpbmNsdWRlIDxzeXMvZW5kaWFuLmg+CisvLyBTeW1iaWFuIFNESyBwcm92aWRlcyBfQllURV9PUkRFUiBpbnN0ZWFkIG9mIF9fQllURV9PUkRFUgorIyAgaWZuZGVmIF9fTElUVExFX0VORElBTgorIyAgICBpZmRlZiBfTElUVExFX0VORElBTgorIyAgICAgIGRlZmluZSBfX0xJVFRMRV9FTkRJQU4gX0xJVFRMRV9FTkRJQU4KKyMgICAgZWxzZQorIyAgICAgIGRlZmluZSBfX0xJVFRMRV9FTkRJQU4gMTIzNAorIyAgICBlbmRpZgorIyAgZW5kaWYKKyMgIGlmbmRlZiBfX0JJR19FTkRJQU4KKyMgICAgaWZkZWYgX0JJR19FTkRJQU4KKyMgICAgICBkZWZpbmUgX19CSUdfRU5ESUFOIF9CSUdfRU5ESUFOCisjICAgIGVsc2UKKyMgICAgICBkZWZpbmUgX19CSUdfRU5ESUFOIDQzMjEKKyMgICAgZW5kaWYKKyMgIGVuZGlmCisjICBpZm5kZWYgX19CWVRFX09SREVSCisjICAgIGRlZmluZSBfX0JZVEVfT1JERVIgX19MSVRUTEVfRU5ESUFOIC8vIFN5bWJpYW4gaXMgTEUKKyMgIGVuZGlmCisvLyBLbm93biBsaW1pdGF0aW9ucworIyAgZGVmaW5lIEJPT1NUX0FTSU9fRElTQUJMRV9TRVJJQUxfUE9SVAorIyAgZGVmaW5lIEJPT1NUX0RBVEVfVElNRV9OT19MT0NBTEUKKyMgIGRlZmluZSBCT09TVF9OT19TVERfV1NUUklORworIyAgZGVmaW5lIEJPT1NUX0VYQ0VQVElPTl9ESVNBQkxFCisjICBkZWZpbmUgQk9PU1RfTk9fRVhDRVBUSU9OUworCisjZWxzZSAvLyBUT0RPOiBNb3JlIHBsYXRmb3JtIHN1cHBvcnQgZS5nLiBVSVEKKyMgIGVycm9yICJVbnN1cHBvdGVkIFN5bWJpYW4gU0RLIgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fV0lOU0NXX18pICYmICFkZWZpbmVkKEJPT1NUX0RJU0FCTEVfV0lOMzIpCisjICBkZWZpbmUgQk9PU1RfRElTQUJMRV9XSU4zMiAvLyB3aW5zY3cgZGVmaW5lcyBXSU4zMiBtYWNybworI2VuZGlmCisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL3BsYXRmb3JtL3Ztcy5ocHAgYi9ib29zdC9jb25maWcvcGxhdGZvcm0vdm1zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzBlZmNmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL3BsYXRmb3JtL3Ztcy5ocHAKQEAgLTAsMCArMSwyNSBAQAorLy8gIChDKSBDb3B5cmlnaHQgQXJ0eW9tIEJlaWxpcyAyMDEwLiAgCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlICAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpIAorCisjaWZuZGVmIEJPT1NUX0NPTkZJR19QTEFURk9STV9WTVNfSFBQIAorI2RlZmluZSBCT09TVF9DT05GSUdfUExBVEZPUk1fVk1TX0hQUCAKKworI2RlZmluZSBCT09TVF9QTEFURk9STSAiT3BlblZNUyIgCisKKyN1bmRlZiAgQk9PU1RfSEFTX1NURElOVF9IIAorI2RlZmluZSBCT09TVF9IQVNfVU5JU1REX0ggCisjZGVmaW5lIEJPT1NUX0hBU19OTF9UWVBFU19IIAorI2RlZmluZSBCT09TVF9IQVNfR0VUVElNRU9GREFZIAorI2RlZmluZSBCT09TVF9IQVNfRElSRU5UX0ggCisjZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEUyAKKyNkZWZpbmUgQk9PU1RfSEFTX05BTk9TTEVFUCAKKyNkZWZpbmUgQk9PU1RfSEFTX0NMT0NLX0dFVFRJTUUgCisjZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEX01VVEVYQVRUUl9TRVRUWVBFIAorI2RlZmluZSBCT09TVF9IQVNfTE9HMVAgCisjZGVmaW5lIEJPT1NUX0hBU19FWFBNMSAKKyNkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMgCisjdW5kZWYgIEJPT1NUX0hBU19TQ0hFRF9ZSUVMRCAKKworI2VuZGlmIApkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL3BsYXRmb3JtL3Z4d29ya3MuaHBwIGIvYm9vc3QvY29uZmlnL3BsYXRmb3JtL3Z4d29ya3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlYzUxNzEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvcGxhdGZvcm0vdnh3b3Jrcy5ocHAKQEAgLTAsMCArMSwzMSBAQAorLy8gIChDKSBDb3B5cmlnaHQgRHVzdGluIFNwaWN1enphIDIwMDkuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIHZ4V29ya3Mgc3BlY2lmaWMgY29uZmlnIG9wdGlvbnM6CisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gInZ4V29ya3MiCisKKyNkZWZpbmUgQk9PU1RfTk9fQ1dDSEFSCisjZGVmaW5lIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykKKyNkZWZpbmUgQk9PU1RfTk9fSU5UNjRfVAorI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisKKy8vIHRoZXNlIGFsbG93IHBvc2l4X2ZlYXR1cmVzIHRvIHdvcmssIHNpbmNlIHZ4V29ya3MgZG9lc24ndAorLy8gZGVmaW5lIHRoZW0gaXRzZWxmCisjZGVmaW5lIF9QT1NJWF9USU1FUlMgMQorI2RlZmluZSBfUE9TSVhfVEhSRUFEUyAxCisKKy8vIHZ4d29ya3MgZG9lc24ndCB3b3JrIHdpdGggYXNpbyBzZXJpYWwgcG9ydHMKKyNkZWZpbmUgQk9PU1RfQVNJT19ESVNBQkxFX1NFUklBTF9QT1JUCisKKy8vIGJvaWxlcnBsYXRlIGNvZGU6CisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcD4KKyAKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9wbGF0Zm9ybS93aW4zMi5ocHAgYi9ib29zdC9jb25maWcvcGxhdGZvcm0vd2luMzIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5MjIwMTIKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvcGxhdGZvcm0vd2luMzIuaHBwCkBAIC0wLDAgKzEsNzEgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBCaWxsIEtlbXBmIDIwMDEuIAorLy8gIChDKSBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IFJlbmUgUml2ZXJhIDIwMDUuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgV2luMzIgc3BlY2lmaWMgY29uZmlnIG9wdGlvbnM6CisKKyNkZWZpbmUgQk9PU1RfUExBVEZPUk0gIldpbjMyIgorCisvLyAgR2V0IHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgTWluR1cgcnVudGltZSwgaS5lLiBfX01JTkdXMzJfKlZFUlNJT04uCisjaWYgZGVmaW5lZChfX01JTkdXMzJfXykKKyMgIGluY2x1ZGUgPF9taW5ndy5oPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChCT09TVF9OT19TV1BSSU5URikKKyMgIGRlZmluZSBCT09TVF9OT19TV1BSSU5URgorI2VuZGlmCisKKy8vICBEZWZhdWx0IGRlZmluZXMgZm9yIEJPT1NUX1NZTUJPTF9FWFBPUlQgYW5kIEJPT1NUX1NZTUJPTF9JTVBPUlQKKy8vICBJZiBhIGNvbXBpbGVyIGRvZXNuJ3Qgc3VwcG9ydCBfX2RlY2xzcGVjKGRsbGV4cG9ydCkvX19kZWNsc3BlYyhkbGxpbXBvcnQpLAorLy8gIGl0cyBib29zdC9jb25maWcvY29tcGlsZXIvIGZpbGUgbXVzdCBkZWZpbmUgQk9PU1RfU1lNQk9MX0VYUE9SVCBhbmQKKy8vICBCT09TVF9TWU1CT0xfSU1QT1JUCisjaWZuZGVmIEJPT1NUX1NZTUJPTF9FWFBPUlQKKyMgIGRlZmluZSBCT09TVF9IQVNfREVDTFNQRUMKKyMgIGRlZmluZSBCT09TVF9TWU1CT0xfRVhQT1JUIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQorIyAgZGVmaW5lIEJPT1NUX1NZTUJPTF9JTVBPUlQgX19kZWNsc3BlYyhkbGxpbXBvcnQpCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19NSU5HVzMyX18pICYmICgoX19NSU5HVzMyX01BSk9SX1ZFUlNJT04gPiAyKSB8fCAoKF9fTUlOR1czMl9NQUpPUl9WRVJTSU9OID09IDIpICYmIChfX01JTkdXMzJfTUlOT1JfVkVSU0lPTiA+PSAwKSkpCisjICBkZWZpbmUgQk9PU1RfSEFTX1NURElOVF9ICisjICBkZWZpbmUgX19TVERDX0xJTUlUX01BQ1JPUworIyAgZGVmaW5lIEJPT1NUX0hBU19ESVJFTlRfSAorIyAgZGVmaW5lIEJPT1NUX0hBU19VTklTVERfSAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fTUlOR1czMl9fKSAmJiAoX19HTlVDX18gPj0gNCkKKyMgIGRlZmluZSBCT09TVF9IQVNfRVhQTTEKKyMgIGRlZmluZSBCT09TVF9IQVNfTE9HMVAKKyMgIGRlZmluZSBCT09TVF9IQVNfR0VUVElNRU9GREFZCisjZW5kaWYKKy8vCisvLyBXaW4zMiB3aWxsIG5vcm1hbGx5IGJlIHVzaW5nIG5hdGl2ZSBXaW4zMiB0aHJlYWRzLAorLy8gYnV0IHRoZXJlIGlzIGEgcHRocmVhZCBsaWJyYXJ5IGF2YWxpYWJsZSBhcyBhbiBvcHRpb24sCisvLyB3ZSB1c2VkIHRvIGRpc2FibGUgdGhpcyB3aGVuIEJPT1NUX0RJU0FCTEVfV0lOMzIgd2FzIAorLy8gZGVmaW5lZCBidXQgbm8gbG9uZ2VyIC0gdGhpcyBzaG91bGQgYWxsb3cgc29tZQorLy8gZmlsZXMgdG8gYmUgY29tcGlsZWQgaW4gc3RyaWN0IG1vZGUgLSB3aGlsZSBtYWludGFpbmluZworLy8gYSBjb25zaXN0ZW50IHNldHRpbmcgb2YgQk9PU1RfSEFTX1RIUkVBRFMgYWNyb3NzCisvLyBhbGwgdHJhbnNsYXRpb24gdW5pdHMgKG5lZWRlZCBmb3Igc2hhcmVkX3B0ciBldGMpLgorLy8KKworI2lmZGVmIF9XSU4zMl9XQ0UKKyMgIGRlZmluZSBCT09TVF9OT19BTlNJX0FQSVMKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfSEFTX0dFVFNZU1RFTVRJTUVBU0ZJTEVUSU1FCisjZW5kaWYKKworI2lmbmRlZiBCT09TVF9IQVNfUFRIUkVBRFMKKyMgIGRlZmluZSBCT09TVF9IQVNfV0lOVEhSRUFEUworI2VuZGlmCisKKyNpZm5kZWYgQk9PU1RfRElTQUJMRV9XSU4zMgorLy8gV0VLOiBBZGRlZAorI2RlZmluZSBCT09TVF9IQVNfRlRJTUUKKyNkZWZpbmUgQk9PU1RfV0lORE9XUyAxCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL3Bvc2l4X2ZlYXR1cmVzLmhwcCBiL2Jvb3N0L2NvbmZpZy9wb3NpeF9mZWF0dXJlcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDEyOTU0NwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9wb3NpeF9mZWF0dXJlcy5ocHAKQEAgLTAsMCArMSw5NSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gQWxsIFBPU0lYIGZlYXR1cmUgdGVzdHMgZ28gaW4gdGhpcyBmaWxlLAorLy8gTm90ZSB0aGF0IHdlIHRlc3QgX1BPU0lYX0NfU09VUkNFIGFuZCBfWE9QRU5fU09VUkNFIGFzIHdlbGwKKy8vIF9QT1NJWF9WRVJTSU9OIGFuZCBfWE9QRU5fVkVSU0lPTjogb24gc29tZSBzeXN0ZW1zIFBPU0lYIEFQSSdzCisvLyBtYXkgYmUgcHJlc2VudCBidXQgbm9uZS1mdW5jdGlvbmFsIHVubGVzcyBfUE9TSVhfQ19TT1VSQ0UgYW5kCisvLyBfWE9QRU5fU09VUkNFIGhhdmUgYmVlbiBkZWZpbmVkIHRvIHRoZSByaWdodCB2YWx1ZSAoaXQncyB1cAorLy8gdG8gdGhlIHVzZXIgdG8gZG8gdGhpcyAqYmVmb3JlKiBpbmNsdWRpbmcgYW55IGhlYWRlciwgYWx0aG91Z2gKKy8vIGluIG1vc3QgY2FzZXMgdGhlIGNvbXBpbGVyIHdpbGwgZG8gdGhpcyBmb3IgeW91KS4KKworIyAgaWYgZGVmaW5lZChCT09TVF9IQVNfVU5JU1REX0gpCisjICAgICBpbmNsdWRlIDx1bmlzdGQuaD4KKworICAgICAgLy8gWE9wZW4gaGFzIDxubF90eXBlcy5oPiwgYnV0IGlzIHRoaXMgdGhlIGNvcnJlY3QgdmVyc2lvbiBjaGVjaz8KKyMgICAgIGlmIGRlZmluZWQoX1hPUEVOX1ZFUlNJT04pICYmIChfWE9QRU5fVkVSU0lPTiA+PSAzKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX0hBU19OTF9UWVBFU19ICisjICAgICBlbmRpZgorCisgICAgICAvLyBQT1NJWCB2ZXJzaW9uIDYgcmVxdWlyZXMgPHN0ZGludC5oPgorIyAgICAgaWYgZGVmaW5lZChfUE9TSVhfVkVSU0lPTikgJiYgKF9QT1NJWF9WRVJTSU9OID49IDIwMDEwMCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9IQVNfU1RESU5UX0gKKyMgICAgIGVuZGlmCisKKyAgICAgIC8vIFBPU0lYIHZlcnNpb24gMiByZXF1aXJlcyA8ZGlyZW50Lmg+CisjICAgICBpZiBkZWZpbmVkKF9QT1NJWF9WRVJTSU9OKSAmJiAoX1BPU0lYX1ZFUlNJT04gPj0gMTk5MDA5TCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9IQVNfRElSRU5UX0gKKyMgICAgIGVuZGlmCisKKyAgICAgIC8vIFBPU0lYIHZlcnNpb24gMyByZXF1aXJlcyA8c2lnbmFsLmg+IHRvIGhhdmUgc2lnYWN0aW9uOgorIyAgICAgaWYgZGVmaW5lZChfUE9TSVhfVkVSU0lPTikgJiYgKF9QT1NJWF9WRVJTSU9OID49IDE5OTUwNkwpCisjICAgICAgICBkZWZpbmUgQk9PU1RfSEFTX1NJR0FDVElPTgorIyAgICAgZW5kaWYKKyAgICAgIC8vIFBPU0lYIGRlZmluZXMgX1BPU0lYX1RIUkVBRFMgPiAwIGZvciBwdGhyZWFkIHN1cHBvcnQsCisgICAgICAvLyBob3dldmVyIHNvbWUgcGxhdGZvcm1zIGRlZmluZSBfUE9TSVhfVEhSRUFEUyB3aXRob3V0CisgICAgICAvLyBhIHZhbHVlLCBoZW5jZSB0aGUgKF9QT1NJWF9USFJFQURTKzAgPj0gMCkgY2hlY2suCisgICAgICAvLyBTdHJpY3RseSBzcGVha2luZyB0aGlzIG1heSBjYXRjaCBwbGF0Zm9ybXMgd2l0aCBhCisgICAgICAvLyBub24tZnVuY3Rpb25pbmcgc3R1YiA8cHRocmVhZHMuaD4sIGJ1dCBzdWNoIG9jY3VycmVuY2VzIHNob3VsZAorICAgICAgLy8gb2NjdXIgdmVyeSByYXJlbHkgaWYgYXQgYWxsLgorIyAgICAgaWYgZGVmaW5lZChfUE9TSVhfVEhSRUFEUykgJiYgKF9QT1NJWF9USFJFQURTKzAgPj0gMCkgJiYgIWRlZmluZWQoQk9PU1RfSEFTX1dJTlRIUkVBRFMpICYmICFkZWZpbmVkKEJPT1NUX0hBU19NUFRBU0tTKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX0hBU19QVEhSRUFEUworIyAgICAgZW5kaWYKKworICAgICAgLy8gQk9PU1RfSEFTX05BTk9TTEVFUDoKKyAgICAgIC8vIFRoaXMgaXMgcHJlZGljYXRlZCBvbiBfUE9TSVhfVElNRVJTIG9yIF9YT1BFTl9SRUFMVElNRToKKyMgICAgIGlmIChkZWZpbmVkKF9QT1NJWF9USU1FUlMpICYmIChfUE9TSVhfVElNRVJTKzAgPj0gMCkpIFwKKyAgICAgICAgICAgICB8fCAoZGVmaW5lZChfWE9QRU5fUkVBTFRJTUUpICYmIChfWE9QRU5fUkVBTFRJTUUrMCA+PSAwKSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9IQVNfTkFOT1NMRUVQCisjICAgICBlbmRpZgorCisgICAgICAvLyBCT09TVF9IQVNfQ0xPQ0tfR0VUVElNRToKKyAgICAgIC8vIFRoaXMgaXMgcHJlZGljYXRlZCBvbiBfUE9TSVhfVElNRVJTIChhbHNvIG9uIF9YT1BFTl9SRUFMVElNRQorICAgICAgLy8gYnV0IGF0IGxlYXN0IG9uZSBwbGF0Zm9ybSAtIGxpbnV4IC0gZGVmaW5lcyB0aGF0IGZsYWcgd2l0aG91dAorICAgICAgLy8gZGVmaW5pbmcgY2xvY2tfZ2V0dGltZSk6CisjICAgICBpZiAoZGVmaW5lZChfUE9TSVhfVElNRVJTKSAmJiAoX1BPU0lYX1RJTUVSUyswID49IDApKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX0hBU19DTE9DS19HRVRUSU1FCisjICAgICBlbmRpZgorCisgICAgICAvLyBCT09TVF9IQVNfU0NIRURfWUlFTEQ6CisgICAgICAvLyBUaGlzIGlzIHByZWRpY2F0ZWQgb24gX1BPU0lYX1BSSU9SSVRZX1NDSEVEVUxJTkcgb3IKKyAgICAgIC8vIG9uIF9QT1NJWF9USFJFQURfUFJJT1JJVFlfU0NIRURVTElORyBvciBvbiBfWE9QRU5fUkVBTFRJTUUuCisjICAgICBpZiBkZWZpbmVkKF9QT1NJWF9QUklPUklUWV9TQ0hFRFVMSU5HKSAmJiAoX1BPU0lYX1BSSU9SSVRZX1NDSEVEVUxJTkcrMCA+IDApXAorICAgICAgICAgICAgfHwgKGRlZmluZWQoX1BPU0lYX1RIUkVBRF9QUklPUklUWV9TQ0hFRFVMSU5HKSAmJiAoX1BPU0lYX1RIUkVBRF9QUklPUklUWV9TQ0hFRFVMSU5HKzAgPiAwKSlcCisgICAgICAgICAgICB8fCAoZGVmaW5lZChfWE9QRU5fUkVBTFRJTUUpICYmIChfWE9QRU5fUkVBTFRJTUUrMCA+PSAwKSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9IQVNfU0NIRURfWUlFTEQKKyMgICAgIGVuZGlmCisKKyAgICAgIC8vIEJPT1NUX0hBU19HRVRUSU1FT0ZEQVk6CisgICAgICAvLyBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRToKKyAgICAgIC8vIFRoZXNlIGFyZSBwcmVkaWNhdGVkIG9uIF9YT1BFTl9WRVJTSU9OLCBhbmQgYXBwZWFycyB0byBiZSBmaXJzdCByZWxlYXNlZAorICAgICAgLy8gaW4gaXNzdWUgNCwgdmVyc2lvbiAyIChfWE9QRU5fVkVSU0lPTiA+IDUwMCkuCisgICAgICAvLyBMaWtld2lzZSBmb3IgdGhlIGZ1bmN0aW9ucyBsb2cxcCBhbmQgZXhwbTEuCisjICAgICBpZiBkZWZpbmVkKF9YT1BFTl9WRVJTSU9OKSAmJiAoX1hPUEVOX1ZFUlNJT04rMCA+PSA1MDApCisjICAgICAgICBkZWZpbmUgQk9PU1RfSEFTX0dFVFRJTUVPRkRBWQorIyAgICAgICAgaWYgZGVmaW5lZChfWE9QRU5fU09VUkNFKSAmJiAoX1hPUEVOX1NPVVJDRSswID49IDUwMCkKKyMgICAgICAgICAgIGRlZmluZSBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRQorIyAgICAgICAgZW5kaWYKKyMgICAgICAgIGlmbmRlZiBCT09TVF9IQVNfTE9HMVAKKyMgICAgICAgICAgIGRlZmluZSBCT09TVF9IQVNfTE9HMVAKKyMgICAgICAgIGVuZGlmCisjICAgICAgICBpZm5kZWYgQk9PU1RfSEFTX0VYUE0xCisjICAgICAgICAgICBkZWZpbmUgQk9PU1RfSEFTX0VYUE0xCisjICAgICAgICBlbmRpZgorIyAgICAgZW5kaWYKKworIyAgZW5kaWYKKworCisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL3JlcXVpcmVzX3RocmVhZHMuaHBwIGIvYm9vc3QvY29uZmlnL3JlcXVpcmVzX3RocmVhZHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmYWZmMjMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvcmVxdWlyZXNfdGhyZWFkcy5ocHAKQEAgLTAsMCArMSw5MiBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDMuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworCisjaWZuZGVmIEJPT1NUX0NPTkZJR19SRVFVSVJFU19USFJFQURTX0hQUAorI2RlZmluZSBCT09TVF9DT05GSUdfUkVRVUlSRVNfVEhSRUFEU19IUFAKKworI2lmbmRlZiBCT09TVF9DT05GSUdfSFBQCisjICBpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX0RJU0FCTEVfVEhSRUFEUykKKworLy8KKy8vIHNwZWNpYWwgY2FzZSB0byBoYW5kbGUgdmVyc2lvbnMgb2YgZ2NjIHdoaWNoIGRvbid0IGN1cnJlbnRseSBzdXBwb3J0IHRocmVhZHM6CisvLworI2lmIGRlZmluZWQoX19HTlVDX18pICYmICgoX19HTlVDX18gPCAzKSB8fCAoX19HTlVDX01JTk9SX18gPD0gMykgfHwgIWRlZmluZWQoQk9PU1RfU1RSSUNUX0NPTkZJRykpCisvLworLy8gdGhpcyBpcyBjaGVja2VkIHVwIHRvIGdjYyAzLjM6CisvLworI2lmIGRlZmluZWQoX19zZ2kpIHx8IGRlZmluZWQoX19ocHV4KQorIyAgZXJyb3IgIk11bHRpLXRocmVhZGVkIHByb2dyYW1zIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IGdjYyBvbiBIUFVYIG9yIElyaXggKGxhc3QgY2hlY2tlZCB3aXRoIGdjYyAzLjMpIgorI2VuZGlmCisKKyNlbmRpZgorCisjICBlcnJvciAiVGhyZWFkaW5nIHN1cHBvcnQgdW5hdmFsaWFibGU6IGl0IGhhcyBiZWVuIGV4cGxpY2l0bHkgZGlzYWJsZWQgd2l0aCBCT09TVF9ESVNBQkxFX1RIUkVBRFMiCisKKyNlbGlmICFkZWZpbmVkKEJPT1NUX0hBU19USFJFQURTKQorCisjIGlmIGRlZmluZWQgX19DT01PX18KKy8vICBDb21lYXUgQysrCisjICAgZXJyb3IgIkNvbXBpbGVyIHRocmVhZGluZyBzdXBwb3J0IGlzIG5vdCB0dXJuZWQgb24uIFBsZWFzZSBzZXQgdGhlIGNvcnJlY3QgY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHRocmVhZGluZzogLURfTVQgKFdpbmRvd3MpIG9yIC1EX1JFRU5UUkFOVCAoVW5peCkiCisKKyNlbGlmIGRlZmluZWQoX19JTlRFTF9DT01QSUxFUikgfHwgZGVmaW5lZChfX0lDTCkgfHwgZGVmaW5lZChfX0lDQykgfHwgZGVmaW5lZChfX0VDQykKKy8vICBJbnRlbAorI2lmZGVmIF9XSU4zMgorIyAgZXJyb3IgIkNvbXBpbGVyIHRocmVhZGluZyBzdXBwb3J0IGlzIG5vdCB0dXJuZWQgb24uIFBsZWFzZSBzZXQgdGhlIGNvcnJlY3QgY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHRocmVhZGluZzogZWl0aGVyIC9NVCAvTVRkIC9NRCBvciAvTURkIgorI2Vsc2UKKyMgICBlcnJvciAiQ29tcGlsZXIgdGhyZWFkaW5nIHN1cHBvcnQgaXMgbm90IHR1cm5lZCBvbi4gUGxlYXNlIHNldCB0aGUgY29ycmVjdCBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgdGhyZWFkaW5nOiAtb3Blbm1wIgorI2VuZGlmCisKKyMgZWxpZiBkZWZpbmVkIF9fR05VQ19fCisvLyAgR05VIEMrKzoKKyMgICBlcnJvciAiQ29tcGlsZXIgdGhyZWFkaW5nIHN1cHBvcnQgaXMgbm90IHR1cm5lZCBvbi4gUGxlYXNlIHNldCB0aGUgY29ycmVjdCBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgdGhyZWFkaW5nOiAtcHRocmVhZCAoTGludXgpLCAtcHRocmVhZHMgKFNvbGFyaXMpIG9yIC1tdGhyZWFkcyAoTWluZ3czMikiCisKKyNlbGlmIGRlZmluZWQgX19zZ2kKKy8vICBTR0kgTUlQU3BybyBDKysKKyMgICBlcnJvciAiQ29tcGlsZXIgdGhyZWFkaW5nIHN1cHBvcnQgaXMgbm90IHR1cm5lZCBvbi4gUGxlYXNlIHNldCB0aGUgY29ycmVjdCBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgdGhyZWFkaW5nOiAtRF9TR0lfTVBfU09VUkNFIgorCisjZWxpZiBkZWZpbmVkIF9fREVDQ1hYCisvLyAgQ29tcGFxIFRydTY0IFVuaXggY3h4CisjICAgZXJyb3IgIkNvbXBpbGVyIHRocmVhZGluZyBzdXBwb3J0IGlzIG5vdCB0dXJuZWQgb24uIFBsZWFzZSBzZXQgdGhlIGNvcnJlY3QgY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHRocmVhZGluZzogLXB0aHJlYWQiCisKKyNlbGlmIGRlZmluZWQgX19CT1JMQU5EQ19fCisvLyAgQm9ybGFuZAorIyAgIGVycm9yICJDb21waWxlciB0aHJlYWRpbmcgc3VwcG9ydCBpcyBub3QgdHVybmVkIG9uLiBQbGVhc2Ugc2V0IHRoZSBjb3JyZWN0IGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciB0aHJlYWRpbmc6IC10V00iCisKKyNlbGlmIGRlZmluZWQgIF9fTVdFUktTX18KKy8vICBNZXRyb3dlcmtzIENvZGVXYXJyaW9yCisjICAgZXJyb3IgIkNvbXBpbGVyIHRocmVhZGluZyBzdXBwb3J0IGlzIG5vdCB0dXJuZWQgb24uIFBsZWFzZSBzZXQgdGhlIGNvcnJlY3QgY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHRocmVhZGluZzogZWl0aGVyIC1ydW50aW1lIHNtLCAtcnVudGltZSBzbWQsIC1ydW50aW1lIGRtLCBvciAtcnVudGltZSBkbWQiCisKKyNlbGlmIGRlZmluZWQgIF9fU1VOUFJPX0NDCisvLyAgU3VuIFdvcmtzaG9wIENvbXBpbGVyIEMrKworIyAgIGVycm9yICJDb21waWxlciB0aHJlYWRpbmcgc3VwcG9ydCBpcyBub3QgdHVybmVkIG9uLiBQbGVhc2Ugc2V0IHRoZSBjb3JyZWN0IGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciB0aHJlYWRpbmc6IC1tdCIKKworI2VsaWYgZGVmaW5lZCBfX0hQX2FDQworLy8gIEhQIGFDQworIyAgIGVycm9yICJDb21waWxlciB0aHJlYWRpbmcgc3VwcG9ydCBpcyBub3QgdHVybmVkIG9uLiBQbGVhc2Ugc2V0IHRoZSBjb3JyZWN0IGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciB0aHJlYWRpbmc6IC1tdCIKKworI2VsaWYgZGVmaW5lZChfX0lCTUNQUF9fKQorLy8gIElCTSBWaXN1YWwgQWdlCisjICAgZXJyb3IgIkNvbXBpbGVyIHRocmVhZGluZyBzdXBwb3J0IGlzIG5vdCB0dXJuZWQgb24uIFBsZWFzZSBjb21waWxlIHRoZSBjb2RlIHdpdGggdGhlIHhsQ19yIGNvbXBpbGVyIgorCisjZWxpZiBkZWZpbmVkIF9NU0NfVkVSCisvLyAgTWljcm9zb2Z0IFZpc3VhbCBDKysKKy8vCisvLyAgTXVzdCByZW1haW4gdGhlIGxhc3QgI2VsaWYgc2luY2Ugc29tZSBvdGhlciB2ZW5kb3JzIChNZXRyb3dlcmtzLCBmb3IKKy8vICBleGFtcGxlKSBhbHNvICNkZWZpbmUgX01TQ19WRVIKKyMgIGVycm9yICJDb21waWxlciB0aHJlYWRpbmcgc3VwcG9ydCBpcyBub3QgdHVybmVkIG9uLiBQbGVhc2Ugc2V0IHRoZSBjb3JyZWN0IGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciB0aHJlYWRpbmc6IGVpdGhlciAvTVQgL01UZCAvTUQgb3IgL01EZCIKKworI2Vsc2UKKworIyAgZXJyb3IgIkNvbXBpbGVyIHRocmVhZGluZyBzdXBwb3J0IGlzIG5vdCB0dXJuZWQgb24uICBQbGVhc2UgY29uc3VsdCB5b3VyIGNvbXBpbGVyJ3MgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGFwcHJvcHJpYXRlIG9wdGlvbnMgdG8gdXNlIgorCisjZW5kaWYgLy8gY29tcGlsZXJzCisKKyNlbmRpZiAvLyBCT09TVF9IQVNfVEhSRUFEUworCisjZW5kaWYgLy8gQk9PU1RfQ09ORklHX1JFUVVJUkVTX1RIUkVBRFNfSFBQCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvc2VsZWN0X2NvbXBpbGVyX2NvbmZpZy5ocHAgYi9ib29zdC9jb25maWcvc2VsZWN0X2NvbXBpbGVyX2NvbmZpZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQ0N2IyNQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9zZWxlY3RfY29tcGlsZXJfY29uZmlnLmhwcApAQCAtMCwwICsxLDExMiBAQAorLy8gIEJvb3N0IGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gc2VsZWN0aW9uIGhlYWRlciBmaWxlCisKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBNYXJ0aW4gV2lsbGUgMjAwMy4KKy8vICAoQykgQ29weXJpZ2h0IEd1aWxsYXVtZSBNZWxxdWlvbmQgMjAwMy4KKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnLyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gbG9jYXRlIHdoaWNoIGNvbXBpbGVyIHdlIGFyZSB1c2luZyBhbmQgZGVmaW5lCisvLyBCT09TVF9DT01QSUxFUl9DT05GSUcgYXMgbmVlZGVkOiAKKworI2lmIGRlZmluZWQoX19HQ0NYTUxfXykKKy8vIEdDQy1YTUwgZW11bGF0ZXMgb3RoZXIgY29tcGlsZXJzLCBpdCBoYXMgdG8gYXBwZWFyIGZpcnN0IGhlcmUhCisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAiYm9vc3QvY29uZmlnL2NvbXBpbGVyL2djY194bWwuaHBwIgorCisjZWxpZiBkZWZpbmVkKF9DUkFZQykKKy8vIEVERyBiYXNlZCBDcmF5IGNvbXBpbGVyOgorIyAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9DT05GSUcgImJvb3N0L2NvbmZpZy9jb21waWxlci9jcmF5LmhwcCIKKworI2VsaWYgZGVmaW5lZCBfX0NVREFDQ19fCisvLyAgTlZJRElBIENVREEgQysrIGNvbXBpbGVyIGZvciBHUFUKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJib29zdC9jb25maWcvY29tcGlsZXIvbnZjYy5ocHAiCisKKyNlbGlmIGRlZmluZWQgX19DT01PX18KKy8vICBDb21lYXUgQysrCisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAiYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbWVhdS5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19QQVRIU0NBTEVfXykgJiYgKF9fUEFUSENDX18gPj0gNCkKKy8vIFBhdGhTY2FsZSBFS09QYXRoIGNvbXBpbGVyIChoYXMgdG8gY29tZSBiZWZvcmUgY2xhbmcgYW5kIGdjYykKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJib29zdC9jb25maWcvY29tcGlsZXIvcGF0aHNjYWxlLmhwcCIKKworI2VsaWYgZGVmaW5lZCBfX2NsYW5nX18KKy8vICBDbGFuZyBDKysgZW11bGF0ZXMgR0NDLCBzbyBpdCBoYXMgdG8gYXBwZWFyIGVhcmx5LgorIyAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9DT05GSUcgImJvb3N0L2NvbmZpZy9jb21waWxlci9jbGFuZy5ocHAiCisKKyNlbGlmIGRlZmluZWQgX19ETUNfXworLy8gIERpZ2l0YWwgTWFycyBDKysKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJib29zdC9jb25maWcvY29tcGlsZXIvZGlnaXRhbG1hcnMuaHBwIgorCisjZWxpZiBkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpIHx8IGRlZmluZWQoX19JQ0wpIHx8IGRlZmluZWQoX19JQ0MpIHx8IGRlZmluZWQoX19FQ0MpCisvLyAgSW50ZWwKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJib29zdC9jb25maWcvY29tcGlsZXIvaW50ZWwuaHBwIgorCisjIGVsaWYgZGVmaW5lZCBfX0dOVUNfXworLy8gIEdOVSBDKys6CisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAiYm9vc3QvY29uZmlnL2NvbXBpbGVyL2djYy5ocHAiCisKKyNlbGlmIGRlZmluZWQgX19LQ0MKKy8vICBLYWkgQysrCisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAiYm9vc3QvY29uZmlnL2NvbXBpbGVyL2thaS5ocHAiCisKKyNlbGlmIGRlZmluZWQgX19zZ2kKKy8vICBTR0kgTUlQU3BybyBDKysKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJib29zdC9jb25maWcvY29tcGlsZXIvc2dpX21pcHNwcm8uaHBwIgorCisjZWxpZiBkZWZpbmVkIF9fREVDQ1hYCisvLyAgQ29tcGFxIFRydTY0IFVuaXggY3h4CisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAiYm9vc3QvY29uZmlnL2NvbXBpbGVyL2NvbXBhcV9jeHguaHBwIgorCisjZWxpZiBkZWZpbmVkIF9fZ2hzCisvLyAgR3JlZW5oaWxscyBDKysKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJib29zdC9jb25maWcvY29tcGlsZXIvZ3JlZW5oaWxscy5ocHAiCisKKyNlbGlmIGRlZmluZWQgX19DT0RFR0VBUkNfXworLy8gIENvZGVHZWFyIC0gbXVzdCBiZSBjaGVja2VkIGZvciBiZWZvcmUgQm9ybGFuZAorIyAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9DT05GSUcgImJvb3N0L2NvbmZpZy9jb21waWxlci9jb2RlZ2Vhci5ocHAiCisKKyNlbGlmIGRlZmluZWQgX19CT1JMQU5EQ19fCisvLyAgQm9ybGFuZAorIyAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9DT05GSUcgImJvb3N0L2NvbmZpZy9jb21waWxlci9ib3JsYW5kLmhwcCIKKworI2VsaWYgZGVmaW5lZCAgX19NV0VSS1NfXworLy8gIE1ldHJvd2Vya3MgQ29kZVdhcnJpb3IKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJib29zdC9jb25maWcvY29tcGlsZXIvbWV0cm93ZXJrcy5ocHAiCisKKyNlbGlmIGRlZmluZWQgIF9fU1VOUFJPX0NDCisvLyAgU3VuIFdvcmtzaG9wIENvbXBpbGVyIEMrKworIyAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9DT05GSUcgImJvb3N0L2NvbmZpZy9jb21waWxlci9zdW5wcm9fY2MuaHBwIgorCisjZWxpZiBkZWZpbmVkIF9fSFBfYUNDCisvLyAgSFAgYUNDCisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAiYm9vc3QvY29uZmlnL2NvbXBpbGVyL2hwX2FjYy5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19NUkNfXykgfHwgZGVmaW5lZChfX1NDX18pCisvLyAgTVBXIE1yQ3BwIG9yIFNDcHAKKyMgICBkZWZpbmUgQk9PU1RfQ09NUElMRVJfQ09ORklHICJib29zdC9jb25maWcvY29tcGlsZXIvbXB3LmhwcCIKKworI2VsaWYgZGVmaW5lZChfX0lCTUNQUF9fKQorLy8gIElCTSBWaXN1YWwgQWdlCisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAiYm9vc3QvY29uZmlnL2NvbXBpbGVyL3ZhY3BwLmhwcCIKKworI2VsaWYgZGVmaW5lZChfX1BHSSkKKy8vICBQb3J0bGFuZCBHcm91cCBJbmMuCisjICAgZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyAiYm9vc3QvY29uZmlnL2NvbXBpbGVyL3BnaS5ocHAiCisKKyNlbGlmIGRlZmluZWQgX01TQ19WRVIKKy8vICBNaWNyb3NvZnQgVmlzdWFsIEMrKworLy8KKy8vICBNdXN0IHJlbWFpbiB0aGUgbGFzdCAjZWxpZiBzaW5jZSBzb21lIG90aGVyIHZlbmRvcnMgKE1ldHJvd2Vya3MsIGZvcgorLy8gIGV4YW1wbGUpIGFsc28gI2RlZmluZSBfTVNDX1ZFUgorIyAgIGRlZmluZSBCT09TVF9DT01QSUxFUl9DT05GSUcgImJvb3N0L2NvbmZpZy9jb21waWxlci92aXN1YWxjLmhwcCIKKworI2VsaWYgZGVmaW5lZCAoQk9PU1RfQVNTRVJUX0NPTkZJRykKKy8vIHRoaXMgbXVzdCBjb21lIGxhc3QgLSBnZW5lcmF0ZSBhbiBlcnJvciBpZiB3ZSBkb24ndAorLy8gcmVjb2duaXNlIHRoZSBjb21waWxlcjoKKyMgIGVycm9yICJVbmtub3duIGNvbXBpbGVyIC0gcGxlYXNlIGNvbmZpZ3VyZSAoaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9jb25maWcvY29uZmlnLmh0bSNjb25maWd1cmluZykgYW5kIHJlcG9ydCB0aGUgcmVzdWx0cyB0byB0aGUgbWFpbiBib29zdCBtYWlsaW5nIGxpc3QgKGh0dHA6Ly93d3cuYm9vc3Qub3JnL21vcmUvbWFpbGluZ19saXN0cy5odG0jbWFpbikiCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL3NlbGVjdF9wbGF0Zm9ybV9jb25maWcuaHBwIGIvYm9vc3QvY29uZmlnL3NlbGVjdF9wbGF0Zm9ybV9jb25maWcuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhZjYxZDIKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvc2VsZWN0X3BsYXRmb3JtX2NvbmZpZy5ocHAKQEAgLTAsMCArMSwxMDUgQEAKKy8vICBCb29zdCBjb21waWxlciBjb25maWd1cmF0aW9uIHNlbGVjdGlvbiBoZWFkZXIgZmlsZQorCisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDIuIAorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMS4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyBsb2NhdGUgd2hpY2ggcGxhdGZvcm0gd2UgYXJlIG9uIGFuZCBkZWZpbmUgQk9PU1RfUExBVEZPUk1fQ09ORklHIGFzIG5lZWRlZC4KKy8vIE5vdGUgdGhhdCB3ZSBkZWZpbmUgdGhlIGhlYWRlcnMgdG8gaW5jbHVkZSB1c2luZyAiaGVhZGVyX25hbWUiIG5vdAorLy8gPGhlYWRlcl9uYW1lPiBpbiBvcmRlciB0byBwcmV2ZW50IG1hY3JvIGV4cGFuc2lvbiB3aXRoaW4gdGhlIGhlYWRlcgorLy8gbmFtZSAoZm9yIGV4YW1wbGUgImxpbnV4IiBpcyBhIG1hY3JvIG9uIGxpbnV4IHN5c3RlbXMpLgorCisjaWYgKGRlZmluZWQobGludXgpIHx8IGRlZmluZWQoX19saW51eCkgfHwgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19HTlVfXykgfHwgZGVmaW5lZChfX0dMSUJDX18pKSAmJiAhZGVmaW5lZChfQ1JBWUMpCisvLyBsaW51eCwgYWxzbyBvdGhlciBwbGF0Zm9ybXMgKEh1cmQgZXRjKSB0aGF0IHVzZSBHTElCQywgc2hvdWxkIHRoZXNlIHJlYWxseSBoYXZlIHRoZWlyIG93biBjb25maWcgaGVhZGVycyB0aG91Z2g/CisjICBkZWZpbmUgQk9PU1RfUExBVEZPUk1fQ09ORklHICJib29zdC9jb25maWcvcGxhdGZvcm0vbGludXguaHBwIgorCisjZWxpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fTmV0QlNEX18pIHx8IGRlZmluZWQoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykKKy8vIEJTRDoKKyMgIGRlZmluZSBCT09TVF9QTEFURk9STV9DT05GSUcgImJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9ic2QuaHBwIgorCisjZWxpZiBkZWZpbmVkKHN1bikgfHwgZGVmaW5lZChfX3N1bikKKy8vIHNvbGFyaXM6CisjICBkZWZpbmUgQk9PU1RfUExBVEZPUk1fQ09ORklHICJib29zdC9jb25maWcvcGxhdGZvcm0vc29sYXJpcy5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19zZ2kpCisvLyBTR0kgSXJpeDoKKyMgIGRlZmluZSBCT09TVF9QTEFURk9STV9DT05GSUcgImJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9pcml4LmhwcCIKKworI2VsaWYgZGVmaW5lZChfX2hwdXgpCisvLyBocCB1bml4OgorIyAgZGVmaW5lIEJPT1NUX1BMQVRGT1JNX0NPTkZJRyAiYm9vc3QvY29uZmlnL3BsYXRmb3JtL2hwdXguaHBwIgorCisjZWxpZiBkZWZpbmVkKF9fQ1lHV0lOX18pCisvLyBjeWd3aW4gaXMgbm90IHdpbjMyOgorIyAgZGVmaW5lIEJPT1NUX1BMQVRGT1JNX0NPTkZJRyAiYm9vc3QvY29uZmlnL3BsYXRmb3JtL2N5Z3dpbi5ocHAiCisKKyNlbGlmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9fV0lOMzJfXykgfHwgZGVmaW5lZChXSU4zMikKKy8vIHdpbjMyOgorIyAgZGVmaW5lIEJPT1NUX1BMQVRGT1JNX0NPTkZJRyAiYm9vc3QvY29uZmlnL3BsYXRmb3JtL3dpbjMyLmhwcCIKKworI2VsaWYgZGVmaW5lZChfX0JFT1NfXykKKy8vIEJlT1MKKyMgIGRlZmluZSBCT09TVF9QTEFURk9STV9DT05GSUcgImJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9iZW9zLmhwcCIKKworI2VsaWYgZGVmaW5lZChtYWNpbnRvc2gpIHx8IGRlZmluZWQoX19BUFBMRV9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfQ0NfXykKKy8vIE1hY09TCisjICBkZWZpbmUgQk9PU1RfUExBVEZPUk1fQ09ORklHICJib29zdC9jb25maWcvcGxhdGZvcm0vbWFjb3MuaHBwIgorCisjZWxpZiBkZWZpbmVkKF9fSUJNQ1BQX18pIHx8IGRlZmluZWQoX0FJWCkKKy8vIElCTQorIyAgZGVmaW5lIEJPT1NUX1BMQVRGT1JNX0NPTkZJRyAiYm9vc3QvY29uZmlnL3BsYXRmb3JtL2FpeC5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19hbWlnYW9zX18pCisvLyBBbWlnYU9TCisjICBkZWZpbmUgQk9PU1RfUExBVEZPUk1fQ09ORklHICJib29zdC9jb25maWcvcGxhdGZvcm0vYW1pZ2Fvcy5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19RTlhOVE9fXykKKy8vIFFOWDoKKyMgIGRlZmluZSBCT09TVF9QTEFURk9STV9DT05GSUcgImJvb3N0L2NvbmZpZy9wbGF0Zm9ybS9xbnhudG8uaHBwIgorCisjZWxpZiBkZWZpbmVkKF9fVlhXT1JLU19fKQorLy8gdnhXb3JrczoKKyMgIGRlZmluZSBCT09TVF9QTEFURk9STV9DT05GSUcgImJvb3N0L2NvbmZpZy9wbGF0Zm9ybS92eHdvcmtzLmhwcCIKKworI2VsaWYgZGVmaW5lZChfX1NZTUJJQU4zMl9fKSAKKy8vIFN5bWJpYW46IAorIyAgZGVmaW5lIEJPT1NUX1BMQVRGT1JNX0NPTkZJRyAiYm9vc3QvY29uZmlnL3BsYXRmb3JtL3N5bWJpYW4uaHBwIiAKKworI2VsaWYgZGVmaW5lZChfQ1JBWUMpCisvLyBDcmF5OgorIyAgZGVmaW5lIEJPT1NUX1BMQVRGT1JNX0NPTkZJRyAiYm9vc3QvY29uZmlnL3BsYXRmb3JtL2NyYXkuaHBwIiAKKworI2VsaWYgZGVmaW5lZChfX1ZNUykgCisvLyBWTVM6CisjICBkZWZpbmUgQk9PU1RfUExBVEZPUk1fQ09ORklHICJib29zdC9jb25maWcvcGxhdGZvcm0vdm1zLmhwcCIgCisjZWxzZQorCisjICBpZiBkZWZpbmVkKHVuaXgpIFwKKyAgICAgIHx8IGRlZmluZWQoX191bml4KSBcCisgICAgICB8fCBkZWZpbmVkKF9YT1BFTl9TT1VSQ0UpIFwKKyAgICAgIHx8IGRlZmluZWQoX1BPU0lYX1NPVVJDRSkKKworICAgLy8gZ2VuZXJpYyB1bml4IHBsYXRmb3JtOgorCisjICBpZm5kZWYgQk9PU1RfSEFTX1VOSVNURF9ICisjICAgICBkZWZpbmUgQk9PU1RfSEFTX1VOSVNURF9ICisjICBlbmRpZgorCisjICBpbmNsdWRlIDxib29zdC9jb25maWcvcG9zaXhfZmVhdHVyZXMuaHBwPgorCisjICBlbmRpZgorCisjICBpZiBkZWZpbmVkIChCT09TVF9BU1NFUlRfQ09ORklHKQorICAgICAgLy8gdGhpcyBtdXN0IGNvbWUgbGFzdCAtIGdlbmVyYXRlIGFuIGVycm9yIGlmIHdlIGRvbid0CisgICAgICAvLyByZWNvZ25pc2UgdGhlIHBsYXRmb3JtOgorIyAgICAgZXJyb3IgIlVua25vd24gcGxhdGZvcm0gLSBwbGVhc2UgY29uZmlndXJlIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMgdG8gYm9vc3Qub3JnIgorIyAgZW5kaWYKKworI2VuZGlmCisKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvc2VsZWN0X3N0ZGxpYl9jb25maWcuaHBwIGIvYm9vc3QvY29uZmlnL3NlbGVjdF9zdGRsaWJfY29uZmlnLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NmVkZTAwCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL3NlbGVjdF9zdGRsaWJfY29uZmlnLmhwcApAQCAtMCwwICsxLDg1IEBACisvLyAgQm9vc3QgY29tcGlsZXIgY29uZmlndXJhdGlvbiBzZWxlY3Rpb24gaGVhZGVyIGZpbGUKKworLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IEplbnMgTWF1cmVyIDIwMDEgLSAyMDAyLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gbG9jYXRlIHdoaWNoIHN0ZCBsaWIgd2UgYXJlIHVzaW5nIGFuZCBkZWZpbmUgQk9PU1RfU1RETElCX0NPTkZJRyBhcyBuZWVkZWQ6CisKKy8vIEZpcnN0IGluY2x1ZGUgPGNzdGRkZWY+IHRvIGRldGVybWluZSBpZiBzb21lIHZlcnNpb24gb2YgU1RMcG9ydCBpcyBpbiB1c2UgYXMgdGhlIHN0ZCBsaWIKKy8vIChkbyBub3QgcmVseSBvbiB0aGlzIGhlYWRlciBiZWluZyBpbmNsdWRlZCBzaW5jZSB1c2VycyBjYW4gc2hvcnQtY2lyY3VpdCB0aGlzIGhlYWRlciAKKy8vICBpZiB0aGV5IGtub3cgd2hvc2Ugc3RkIGxpYiB0aGV5IGFyZSB1c2luZy4pCisjaWZkZWYgX19jcGx1c3BsdXMKKyMgIGluY2x1ZGUgPGNzdGRkZWY+CisjZWxzZQorIyAgaW5jbHVkZSA8c3RkZGVmLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoX19TR0lfU1RMX1BPUlQpIHx8IGRlZmluZWQoX1NUTFBPUlRfVkVSU0lPTikKKy8vIFNUTFBvcnQgbGlicmFyeTsgdGhpcyBfbXVzdF8gY29tZSBmaXJzdCwgb3RoZXJ3aXNlIHNpbmNlCisvLyBTVExwb3J0IHR5cGljYWxseSBzaXRzIG9uIHRvcCBvZiBzb21lIG90aGVyIGxpYnJhcnksIHdlCisvLyBjYW4gZW5kIHVwIGRldGVjdGluZyB0aGF0IGZpcnN0IHJhdGhlciB0aGFuIFNUTHBvcnQ6CisjICBkZWZpbmUgQk9PU1RfU1RETElCX0NPTkZJRyAiYm9vc3QvY29uZmlnL3N0ZGxpYi9zdGxwb3J0LmhwcCIKKworI2Vsc2UKKworLy8gSWYgb3VyIHN0ZCBsaWIgd2FzIG5vdCBzb21lIHZlcnNpb24gb2YgU1RMcG9ydCwgdGhlbiBpbmNsdWRlIDx1dGlsaXR5PiBhcyBpdCBpcyBhYm91dCAKKy8vIHRoZSBzbWFsbGVzdCBvZiB0aGUgc3RkIGxpYiBoZWFkZXJzIHRoYXQgaW5jbHVkZXMgcmVhbCBDKysgc3R1ZmYuICAoU29tZSBzdGQgbGlicyBkbyBub3QKKy8vIGluY2x1ZGUgdGhlaXIgQysrLXJlbGF0ZWQgbWFjcm9zIGluIDxjc3RkZGVmPiBzbyB0aGlzIGFkZGl0aW9uYWwgaW5jbHVkZSBtYWtlcyBzdXJlCisvLyB3ZSBnZXQgdGhvc2UgZGVmaW5pdGlvbnMpCisvLyAoYWdhaW4gZG8gbm90IHJlbHkgb24gdGhpcyBoZWFkZXIgYmVpbmcgaW5jbHVkZWQgc2luY2UgdXNlcnMgY2FuIHNob3J0LWNpcmN1aXQgdGhpcyAKKy8vICBoZWFkZXIgaWYgdGhleSBrbm93IHdob3NlIHN0ZCBsaWIgdGhleSBhcmUgdXNpbmcuKQorI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy9ub190cjEvdXRpbGl0eS5ocHA+CisKKyNpZiBkZWZpbmVkKF9fTElCQ09NT19fKQorLy8gQ29tZWF1IFNUTDoKKyNkZWZpbmUgQk9PU1RfU1RETElCX0NPTkZJRyAiYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJjb21vLmhwcCIKKworI2VsaWYgZGVmaW5lZChfX1NURF9SV0NPTVBJTEVSX0hfXykgfHwgZGVmaW5lZChfUldTVERfVkVSKQorLy8gUm9ndWUgV2F2ZSBsaWJyYXJ5OgorIyAgZGVmaW5lIEJPT1NUX1NURExJQl9DT05GSUcgImJvb3N0L2NvbmZpZy9zdGRsaWIvcm9ndWV3YXZlLmhwcCIKKworI2VsaWYgZGVmaW5lZChfTElCQ1BQX1ZFUlNJT04pCisvLyBsaWJjKysKKyMgIGRlZmluZSBCT09TVF9TVERMSUJfQ09ORklHICJib29zdC9jb25maWcvc3RkbGliL2xpYmNwcC5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19HTElCQ1BQX18pIHx8IGRlZmluZWQoX19HTElCQ1hYX18pCisvLyBHTlUgbGlic3RkYysrIDMKKyMgIGRlZmluZSBCT09TVF9TVERMSUJfQ09ORklHICJib29zdC9jb25maWcvc3RkbGliL2xpYnN0ZGNwcDMuaHBwIgorCisjZWxpZiBkZWZpbmVkKF9fU1RMX0NPTkZJR19IKQorLy8gZ2VuZXJpYyBTR0kgU1RMCisjICBkZWZpbmUgQk9PU1RfU1RETElCX0NPTkZJRyAiYm9vc3QvY29uZmlnL3N0ZGxpYi9zZ2kuaHBwIgorCisjZWxpZiBkZWZpbmVkKF9fTVNMX0NQUF9fKQorLy8gTVNMIHN0YW5kYXJkIGxpYjoKKyMgIGRlZmluZSBCT09TVF9TVERMSUJfQ09ORklHICJib29zdC9jb25maWcvc3RkbGliL21zbC5ocHAiCisKKyNlbGlmIGRlZmluZWQoX19JQk1DUFBfXykKKy8vIHRha2UgdGhlIGRlZmF1bHQgVkFDUFAgc3RkIGxpYgorIyAgZGVmaW5lIEJPT1NUX1NURExJQl9DT05GSUcgImJvb3N0L2NvbmZpZy9zdGRsaWIvdmFjcHAuaHBwIgorCisjZWxpZiBkZWZpbmVkKE1TSVBMX0NPTVBJTEVfSCkKKy8vIE1vZGVuYSBDKysgc3RhbmRhcmQgbGlicmFyeQorIyAgZGVmaW5lIEJPT1NUX1NURExJQl9DT05GSUcgImJvb3N0L2NvbmZpZy9zdGRsaWIvbW9kZW5hLmhwcCIKKworI2VsaWYgKGRlZmluZWQoX1lWQUxTKSAmJiAhZGVmaW5lZChfX0lCTUNQUF9fKSkgfHwgZGVmaW5lZChfQ1BQTElCX1ZFUikKKy8vIERpbmt1bXdhcmUgTGlicmFyeSAodGhpcyBoYXMgdG8gYXBwZWFyIGFmdGVyIGFueSBwb3NzaWJsZSByZXBsYWNlbWVudCBsaWJyYXJpZXMpOgorIyAgZGVmaW5lIEJPT1NUX1NURExJQl9DT05GSUcgImJvb3N0L2NvbmZpZy9zdGRsaWIvZGlua3Vtd2FyZS5ocHAiCisKKyNlbGlmIGRlZmluZWQgKEJPT1NUX0FTU0VSVF9DT05GSUcpCisvLyB0aGlzIG11c3QgY29tZSBsYXN0IC0gZ2VuZXJhdGUgYW4gZXJyb3IgaWYgd2UgZG9uJ3QKKy8vIHJlY29nbmlzZSB0aGUgbGlicmFyeToKKyMgIGVycm9yICJVbmtub3duIHN0YW5kYXJkIGxpYnJhcnkgLSBwbGVhc2UgY29uZmlndXJlIGFuZCByZXBvcnQgdGhlIHJlc3VsdHMgdG8gYm9vc3Qub3JnIgorCisjZW5kaWYKKworI2VuZGlmCisKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvc3RkbGliL2Rpbmt1bXdhcmUuaHBwIGIvYm9vc3QvY29uZmlnL3N0ZGxpYi9kaW5rdW13YXJlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDU4ODUxCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL3N0ZGxpYi9kaW5rdW13YXJlLmhwcApAQCAtMCwwICsxLDE1NSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAzLgorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMS4KKy8vICAoQykgQ29weXJpZ2h0IFBldGVyIERpbW92IDIwMDEuCisvLyAgKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAyLgorLy8gIChDKSBDb3B5cmlnaHQgR3VpbGxhdW1lIE1lbHF1aW9uZCAyMDAzLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBEaW5rdW13YXJlIHN0YW5kYXJkIGxpYnJhcnkgY29uZmlnOgorCisjaWYgIWRlZmluZWQoX1lWQUxTKSAmJiAhZGVmaW5lZChfQ1BQTElCX1ZFUikKKyNpbmNsdWRlIDxib29zdC9jb25maWcvbm9fdHIxL3V0aWxpdHkuaHBwPgorI2lmICFkZWZpbmVkKF9ZVkFMUykgJiYgIWRlZmluZWQoX0NQUExJQl9WRVIpCisjZXJyb3IgVGhpcyBpcyBub3QgdGhlIERpbmt1bXdhcmUgbGliIQorI2VuZGlmCisjZW5kaWYKKworCisjaWYgZGVmaW5lZChfQ1BQTElCX1ZFUikgJiYgKF9DUFBMSUJfVkVSID49IDMwNikKKyAgIC8vIGZ1bGwgZGlua3Vtd2FyZSAzLjA2IGFuZCBhYm92ZQorICAgLy8gZnVsbHkgY29uZm9ybWluZyBwcm92aWRlZCB0aGUgY29tcGlsZXIgc3VwcG9ydHMgaXQ6CisjICBpZiAhKGRlZmluZWQoX0dMT0JBTF9VU0lORykgJiYgKF9HTE9CQUxfVVNJTkcrMCA+IDApKSAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pICYmICFkZWZpbmVkKF9TVEQpICYmICEoZGVmaW5lZChfX0lDQykgJiYgKF9fSUNDID49IDcwMCkpICAgLy8gY2FuIGJlIGRlZmluZWQgaW4geXZhbHMuaAorIyAgICAgZGVmaW5lIEJPT1NUX05PX1NURENfTkFNRVNQQUNFCisjICBlbmRpZgorIyAgaWYgIShkZWZpbmVkKF9IQVNfTUVNQkVSX1RFTVBMQVRFU19SRUJJTkQpICYmIChfSEFTX01FTUJFUl9URU1QTEFURVNfUkVCSU5EKzAgPiAwKSkgJiYgIShkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPiAxMzAwKSkgJiYgZGVmaW5lZChCT09TVF9NU1ZDKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX1NURF9BTExPQ0FUT1IKKyMgIGVuZGlmCisjICBkZWZpbmUgQk9PU1RfSEFTX1BBUlRJQUxfU1REX0FMTE9DQVRPUgorIyAgaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiAoQk9PU1RfTVNWQyA8IDEzMDApCisgICAgICAvLyBpZiB0aGlzIGxpYiB2ZXJzaW9uIGlzIHNldCB1cCBmb3IgdmM2IHRoZW4gdGhlcmUgaXMgbm8gc3RkOjp1c2VfZmFjZXQ6CisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REX1VTRV9GQUNFVAorIyAgICAgZGVmaW5lIEJPT1NUX0hBU19UV09fQVJHX1VTRV9GQUNFVAorICAgICAgLy8gQyBsaWIgZnVuY3Rpb25zIGFyZW4ndCBpbiBuYW1lc3BhY2Ugc3RkIGVpdGhlcjoKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERDX05BTUVTUEFDRQorICAgICAgLy8gYW5kIG5vciBpcyA8ZXhjZXB0aW9uPgorIyAgICAgZGVmaW5lIEJPT1NUX05PX0VYQ0VQVElPTl9TVERfTkFNRVNQQUNFCisjICBlbmRpZgorLy8gVGhlcmUncyBubyBudW1lcmljX2xpbWl0czxsb25nIGxvbmc+IHN1cHBvcnQgdW5sZXNzIF9MT05HTE9ORyBpcyBkZWZpbmVkOgorIyAgaWYgIWRlZmluZWQoX0xPTkdMT05HKSAmJiAoX0NQUExJQl9WRVIgPD0gMzEwKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX01TX0lOVDY0X05VTUVSSUNfTElNSVRTCisjICBlbmRpZgorLy8gMy4wNiBhcHBlYXJzIHRvIGhhdmUgKG5vbi1zZ2kgdmVyc2lvbnMgb2YpIDxoYXNoX3NldD4gJiA8aGFzaF9tYXA+LAorLy8gYW5kIG5vIDxzbGlzdD4gYXQgYWxsCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX01TVkNfU1REX0lURVJBVE9SIDEKKyMgIGRlZmluZSBCT09TVF9OT19TVERfSVRFUkFUT1IKKyMgIGRlZmluZSBCT09TVF9OT19URU1QTEFURURfSVRFUkFUT1JfQ09OU1RSVUNUT1JTCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX0FMTE9DQVRPUgorIyAgZGVmaW5lIEJPT1NUX05PX1NURENfTkFNRVNQQUNFCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX1VTRV9GQUNFVAorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9PVVRQVVRfSVRFUkFUT1JfQVNTSUdOCisjICBkZWZpbmUgQk9PU1RfSEFTX01BQ1JPX1VTRV9GQUNFVAorIyAgaWZuZGVmIF9DUFBMSUJfVkVSCisgICAgICAvLyBVcGRhdGVkIERpbmt1bSBsaWJyYXJ5IGRlZmluZXMgdGhpcywgYW5kIHByb3ZpZGVzCisgICAgICAvLyBpdHMgb3duIG1pbiBhbmQgbWF4IGRlZmluaXRpb25zLCBhcyBkb2VzIE1UQSB2ZXJzaW9uLgorIyAgICAgaWZuZGVmIF9fTVRBX18gCisjICAgICAgICBkZWZpbmUgQk9PU1RfTk9fU1REX01JTl9NQVgKKyMgICAgIGVuZGlmCisjICAgICBkZWZpbmUgQk9PU1RfTk9fTVNfSU5UNjRfTlVNRVJJQ19MSU1JVFMKKyMgIGVuZGlmCisjZW5kaWYKKworLy8KKy8vIHN0ZCBleHRlbnNpb24gbmFtZXNwYWNlIGlzIHN0ZGV4dCBmb3IgdmM3LjEgYW5kIGxhdGVyLCAKKy8vIHRoZSBzYW1lIGFwcGxpZXMgdG8gb3RoZXIgY29tcGlsZXJzIHRoYXQgc2l0IG9uIHRvcAorLy8gb2YgdmM3LjEgKEludGVsIGFuZCBDb21lYXUpOgorLy8KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTMxMCkgJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKQorIyAgZGVmaW5lIEJPT1NUX1NURF9FWFRFTlNJT05fTkFNRVNQQUNFIHN0ZGV4dAorI2VuZGlmCisKKworI2lmIChkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPD0gMTMwMCkgJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKSkgfHwgIWRlZmluZWQoX0NQUExJQl9WRVIpIHx8IChfQ1BQTElCX1ZFUiA8IDMwNikKKyAgIC8vIGlmIHdlJ3JlIHVzaW5nIGEgZGlua3VtIGxpYiB0aGF0J3MKKyAgIC8vIGJlZW4gY29uZmlndXJlZCBmb3IgVkM2LzcgdGhlbiB0aGVyZSBpcworICAgLy8gbm8gaXRlcmF0b3IgdHJhaXRzICh0cnVlIGV2ZW4gZm9yIGljbCkKKyMgIGRlZmluZSBCT09TVF9OT19TVERfSVRFUkFUT1JfVFJBSVRTCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19JQ0wpICYmIChfX0lDTCA8IDgwMCkgJiYgZGVmaW5lZChfQ1BQTElCX1ZFUikgJiYgKF9DUFBMSUJfVkVSIDw9IDMxMCkKKy8vIEludGVsIEMrKyBjaG9rZXMgb3ZlciBhbnkgbm9uLXRyaXZpYWwgdXNlIG9mIDxsb2NhbGU+CisvLyB0aGlzIG1heSBiZSBhbiBvdmVybHkgcmVzdHJpY3RpdmUgZGVmaW5lLCBidXQgcmVnZXggZmFpbHMgd2l0aG91dCBpdDoKKyMgIGRlZmluZSBCT09TVF9OT19TVERfTE9DQUxFCisjZW5kaWYKKworI2luY2x1ZGUgPHR5cGVpbmZvPgorI2lmICggKCFfSEFTX0VYQ0VQVElPTlMgJiYgIWRlZmluZWQoX19naHNfXykpIHx8ICghX0hBU19OQU1FU1BBQ0UgJiYgZGVmaW5lZChfX2doc19fKSkgKSAKKyMgIGRlZmluZSBCT09TVF9OT19TVERfVFlQRUlORk8gICAgCisjZW5kaWYgIAorCisvLyAgQysrMHggaGVhZGVycyBpbXBsZW1lbnRlZCBpbiA1MjAgKGFzIHNoaXBwZWQgYnkgTWljcm9zb2Z0KQorLy8KKyNpZiAhZGVmaW5lZChfQ1BQTElCX1ZFUikgfHwgX0NQUExJQl9WRVIgPCA1MjAKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQVJSQVkKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ERUNWVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GT1JXQVJEX0xJU1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQU5ET00KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkVHRVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfU1lTVEVNX0VSUk9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9NQVAKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX1NFVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UVVBMRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFSU5ERVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVOQ1RJT05BTAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTUVSSUNfTElNSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU01BUlRfUFRSCisjZW5kaWYKKworI2lmICghZGVmaW5lZChfSEFTX1RSMV9JTVBPUlRTKSB8fCAoX0hBU19UUjFfSU1QT1JUUyswID09IDApKSAmJiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfVFVQTEUpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RVUExFCisjZW5kaWYKKworLy8gIEMrKzB4IGhlYWRlcnMgaW1wbGVtZW50ZWQgaW4gNTQwIChhcyBzaGlwcGVkIGJ5IE1pY3Jvc29mdCkKKy8vCisjaWYgIWRlZmluZWQoX0NQUExJQl9WRVIpIHx8IF9DUFBMSUJfVkVSIDwgNTQwCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVfVFJBSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NIUk9OTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT05ESVRJT05fVkFSSUFCTEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVUVVJFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBVElPCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RIUkVBRAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FMTE9DQVRPUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FUT01JQ19TTUFSVF9QVFIKKyNlbmRpZgorCisvLworLy8gIEMrKzB4IGhlYWRlcnMgbm90IHlldCAoZnVsbHkpIGltcGxlbWVudGVkOgorLy8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorCisjaWZkZWYgX0NQUExJQl9WRVIKKyMgIGRlZmluZSBCT09TVF9ESU5LVU1XQVJFX1NURExJQiBfQ1BQTElCX1ZFUgorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9ESU5LVU1XQVJFX1NURExJQiAxCisjZW5kaWYKKworI2lmZGVmIF9DUFBMSUJfVkVSCisjICBkZWZpbmUgQk9PU1RfU1RETElCICJEaW5rdW13YXJlIHN0YW5kYXJkIGxpYnJhcnkgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfQ1BQTElCX1ZFUikKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfU1RETElCICJEaW5rdW13YXJlIHN0YW5kYXJkIGxpYnJhcnkgdmVyc2lvbiAxLngiCisjZW5kaWYKKworCisKKworCisKKworCisKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9zdGRsaWIvbGliY29tby5ocHAgYi9ib29zdC9jb25maWcvc3RkbGliL2xpYmNvbW8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5NDkwZjEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvc3RkbGliL2xpYmNvbW8uaHBwCkBAIC0wLDAgKzEsNzIgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAyIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAyIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBCZW1hbiBEYXdlcyAyMDAyIC0gMjAwMy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgQ29tZWF1IFNUTDoKKworI2lmICFkZWZpbmVkKF9fTElCQ09NT19fKQorIyAgaW5jbHVkZSA8Ym9vc3QvY29uZmlnL25vX3RyMS91dGlsaXR5LmhwcD4KKyMgIGlmICFkZWZpbmVkKF9fTElCQ09NT19fKQorIyAgICAgIGVycm9yICJUaGlzIGlzIG5vdCB0aGUgQ29tZWF1IFNUTCEiCisjICBlbmRpZgorI2VuZGlmCisKKy8vCisvLyBzdGQ6OnN0cmVhbWJ1Zjx3Y2hhcl90PiBpcyBub24tc3RhbmRhcmQKKy8vIE5PVEU6IHZlcnNpb25zIG9mIGxpYmNvbW8gcHJpb3IgdG8gYmV0YTI4IGhhdmUgb2N0YWwgdmVyc2lvbiBudW1iZXJpbmcsCisvLyBlLmcuIHZlcnNpb24gMjUgaXMgMjEgKGRlYykKKyNpZiBfX0xJQkNPTU9fVkVSU0lPTl9fIDw9IDIyCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX1dTVFJFQU1CVUYKKyNlbmRpZgorCisjaWYgKF9fTElCQ09NT19WRVJTSU9OX18gPD0gMzEpICYmIGRlZmluZWQoX1dJTjMyKQorI2RlZmluZSBCT09TVF9OT19TV1BSSU5URgorI2VuZGlmCisKKyNpZiBfX0xJQkNPTU9fVkVSU0lPTl9fID49IDMxCisjICBkZWZpbmUgQk9PU1RfSEFTX0hBU0gKKyMgIGRlZmluZSBCT09TVF9IQVNfU0xJU1QKKyNlbmRpZgorCisvLyAgQysrMHggaGVhZGVycyBub3QgeWV0IGltcGxlbWVudGVkCisvLworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9BUlJBWQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DSFJPTk8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ERUNWVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT05ESVRJT05fVkFSSUFCTEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRk9SV0FSRF9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQVRJTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SRUdFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9TWVNURU1fRVJST1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVEhSRUFECisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RVUExFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVfVFJBSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVJTkRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfTUFQCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9TRVQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OVU1FUklDX0xJTUlUUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FMTE9DQVRPUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FUT01JQ19TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVOQ1RJT05BTAorCisvLworLy8gSW50cmluc2ljIHR5cGVfdHJhaXRzIHN1cHBvcnQuCisvLyBUaGUgU0dJIFNUTCBoYXMgaXQncyBvd24gX190eXBlX3RyYWl0cyBjbGFzcywgd2hpY2gKKy8vIGhhcyBpbnRyaW5zaWMgY29tcGlsZXIgc3VwcG9ydCB3aXRoIFNHSSdzIGNvbXBpbGVycy4KKy8vIFdoYXRldmVyIG1hcCBTR0kgc3R5bGUgdHlwZSB0cmFpdHMgdG8gYm9vc3QgZXF1aXZhbGVudHM6CisvLworI2RlZmluZSBCT09TVF9IQVNfU0dJX1RZUEVfVFJBSVRTCisKKyNkZWZpbmUgQk9PU1RfU1RETElCICJDb21lYXUgc3RhbmRhcmQgbGlicmFyeSAiIEJPT1NUX1NUUklOR0laRShfX0xJQkNPTU9fVkVSU0lPTl9fKQorCisKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9zdGRsaWIvbGliY3BwLmhwcCBiL2Jvb3N0L2NvbmZpZy9zdGRsaWIvbGliY3BwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDU3NDQwCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJjcHAuaHBwCkBAIC0wLDAgKzEsMzcgQEAKKy8vICAoQykgQ29weXJpZ2h0IENocmlzdG9waGVyIEplZmZlcnNvbiAyMDExLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBjb25maWcgZm9yIGxpYmMrKworLy8gIE1pZ2h0IG5lZWQgbW9yZSBpbiBoZXJlIGxhdGVyLgorCisjaWYgIWRlZmluZWQoX0xJQkNQUF9WRVJTSU9OKQorIyAgaW5jbHVkZSA8Y2lzbzY0Nj4KKyMgIGlmICFkZWZpbmVkKF9MSUJDUFBfVkVSU0lPTikKKyMgICAgICBlcnJvciAiVGhpcyBpcyBub3QgbGliYysrISIKKyMgIGVuZGlmCisjZW5kaWYKKworI2RlZmluZSBCT09TVF9TVERMSUIgImxpYmMrKyB2ZXJzaW9uICIgQk9PU1RfU1RSSU5HSVpFKF9MSUJDUFBfVkVSU0lPTikKKworI2RlZmluZSBCT09TVF9IQVNfVEhSRUFEUworCisjaWZkZWYgX0xJQkNQUF9IQVNfTk9fVkFSSUFESUNTCisjICAgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFVQTEUKKyNlbmRpZgorCisvLworLy8gVGhlc2UgYXBwZWFyIHRvIGJlIHVudXNhYmxlL2luY29tcGxldGUgc28gZmFyOgorLy8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ0hST05PCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFX1RSQUlUUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FUT01JQ19TTUFSVF9QVFIKKworLy8gbGliYysrIHVzZXMgYSBub24tc3RhbmRhcmQgbWVzc2FnZXNfYmFzZQorI2RlZmluZSBCT09TVF9OT19TVERfTUVTU0FHRVMKKworLy8gIC0tLSBlbmQgLS0tCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvc3RkbGliL2xpYnN0ZGNwcDMuaHBwIGIvYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJzdGRjcHAzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTZkZmYyCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL3N0ZGxpYi9saWJzdGRjcHAzLmhwcApAQCAtMCwwICsxLDE2NSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEuCisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAxLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBjb25maWcgZm9yIGxpYnN0ZGMrKyB2MworLy8gIG5vdCBtdWNoIHRvIGdvIGluIGhlcmU6CisKKyNkZWZpbmUgQk9PU1RfR05VX1NURExJQiAxCisKKyNpZmRlZiBfX0dMSUJDWFhfXworI2RlZmluZSBCT09TVF9TVERMSUIgIkdOVSBsaWJzdGRjKysgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfX0dMSUJDWFhfXykKKyNlbHNlCisjZGVmaW5lIEJPT1NUX1NURExJQiAiR05VIGxpYnN0ZGMrKyB2ZXJzaW9uICIgQk9PU1RfU1RSSU5HSVpFKF9fR0xJQkNQUF9fKQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChfR0xJQkNQUF9VU0VfV0NIQVJfVCkgJiYgIWRlZmluZWQoX0dMSUJDWFhfVVNFX1dDSEFSX1QpCisjICBkZWZpbmUgQk9PU1RfTk9fQ1dDSEFSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1dDVFlQRQorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9XU1RSSU5HCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX1dTVFJFQU1CVUYKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX29zZl9fKSAmJiAhZGVmaW5lZChfUkVFTlRSQU5UKSBcCisgICYmICggZGVmaW5lZChfR0xJQkNYWF9IQVZFX0dUSFJfREVGQVVMVCkgfHwgZGVmaW5lZChfR0xJQkNQUF9IQVZFX0dUSFJfREVGQVVMVCkgKQorLy8gR0NDIDMgb24gVHJ1NjQgZm9yY2VzIHRoZSBkZWZpbml0aW9uIG9mIF9SRUVOVFJBTlQgd2hlbiBhbnkgc3RkIGxpYiBoZWFkZXIKKy8vIGZpbGUgaXMgaW5jbHVkZWQsIHRoZXJlZm9yZSBmb3IgY29uc2lzdGVuY3kgd2UgZGVmaW5lIGl0IGhlcmUgYXMgd2VsbC4KKyMgIGRlZmluZSBfUkVFTlRSQU5UCisjZW5kaWYKKworI2lmZGVmIF9fR0xJQkNYWF9fIC8vIGdjYyAzLjQgYW5kIGdyZWF0ZXI6CisjICBpZiBkZWZpbmVkKF9HTElCQ1hYX0hBVkVfR1RIUl9ERUZBVUxUKSBcCisgICAgICAgIHx8IGRlZmluZWQoX0dMSUJDWFhfX1BUSFJFQURTKSBcCisgICAgICAgIHx8IGRlZmluZWQoX0dMSUJDWFhfSEFTX0dUSFJFQURTKSBcCisgICAgICAgIHx8IGRlZmluZWQoX1dJTjMyKQorICAgICAgLy8KKyAgICAgIC8vIElmIHRoZSBzdGQgbGliIGhhcyB0aHJlYWQgc3VwcG9ydCB0dXJuZWQgb24sIHRoZW4gdHVybiBpdCBvbiBpbiBCb29zdAorICAgICAgLy8gYXMgd2VsbC4gIFdlIGRvIHRoaXMgYmVjYXVzZSBzb21lIGdjYy0zLjQgc3RkIGxpYiBoZWFkZXJzIGRlZmluZSBfUkVFTlRBTlQKKyAgICAgIC8vIHdoaWxlIG90aGVycyBkbyBub3QuLi4KKyAgICAgIC8vCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyMgIGVsc2UKKyMgICAgIGRlZmluZSBCT09TVF9ESVNBQkxFX1RIUkVBRFMKKyMgIGVuZGlmCisjZWxpZiBkZWZpbmVkKF9fR0xJQkNQUF9fKSBcCisgICAgICAgICYmICFkZWZpbmVkKF9HTElCQ1BQX0hBVkVfR1RIUl9ERUZBVUxUKSBcCisgICAgICAgICYmICFkZWZpbmVkKF9HTElCQ1BQX19QVEhSRUFEUykKKyAgIC8vIGRpc2FibGUgdGhyZWFkIHN1cHBvcnQgaWYgdGhlIHN0ZCBsaWIgd2FzIGJ1aWx0IHNpbmdsZSB0aHJlYWRlZDoKKyMgIGRlZmluZSBCT09TVF9ESVNBQkxFX1RIUkVBRFMKKyNlbmRpZgorCisjaWYgKGRlZmluZWQobGludXgpIHx8IGRlZmluZWQoX19saW51eCkgfHwgZGVmaW5lZChfX2xpbnV4X18pKSAmJiBkZWZpbmVkKF9fYXJtX18pICYmIGRlZmluZWQoX0dMSUJDUFBfSEFWRV9HVEhSX0RFRkFVTFQpCisvLyBsaW51eCBvbiBhcm0gYXBwYXJlbnRseSBkb2Vzbid0IGRlZmluZSBfUkVFTlRSQU5UCisvLyBzbyBqdXN0IHR1cm4gb24gdGhyZWFkaW5nIHN1cHBvcnQgd2hlbmV2ZXIgdGhlIHN0ZCBsaWIgaXMgdGhyZWFkIHNhZmU6CisjICBkZWZpbmUgQk9PU1RfSEFTX1RIUkVBRFMKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoX0dMSUJDUFBfVVNFX0xPTkdfTE9ORykgXAorICAgICYmICFkZWZpbmVkKF9HTElCQ1hYX1VTRV9MT05HX0xPTkcpXAorICAgICYmIGRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykKKy8vIE1heSBoYXZlIGJlZW4gc2V0IGJ5IGNvbXBpbGVyLyouaHBwLCBidXQgImxvbmcgbG9uZyIgd2l0aG91dCBsaWJyYXJ5CisvLyBzdXBwb3J0IGlzIHVzZWxlc3MuCisjICB1bmRlZiBCT09TVF9IQVNfTE9OR19MT05HCisjZW5kaWYKKworLy8gQXBwbGUgZG9lc24ndCBzZWVtIHRvIHJlbGlhYmx5IGRlZmluZWQgYSAqdW5peCogbWFjcm8KKyNpZiAhZGVmaW5lZChDWUdXSU4pICYmICggIGRlZmluZWQoX191bml4X18pICBcCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWZpbmVkKF9fdW5peCkgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZCh1bml4KSAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRlZmluZWQoX19BUFBMRV9fKSBcCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWZpbmVkKF9fQVBQTEUpICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZChBUFBMRSkpCisjICBpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX0dMSUJDWFhfXykgfHwgKGRlZmluZWQoX19HTElCQ1BQX18pICYmIF9fR0xJQkNQUF9fPj0yMDAyMDUxNCkgLy8gR0NDID49IDMuMS4wCisjICBkZWZpbmUgQk9PU1RfU1REX0VYVEVOU0lPTl9OQU1FU1BBQ0UgX19nbnVfY3h4CisjICBkZWZpbmUgQk9PU1RfSEFTX1NMSVNUCisjICBkZWZpbmUgQk9PU1RfSEFTX0hBU0gKKyMgIGRlZmluZSBCT09TVF9TTElTVF9IRUFERVIgPGV4dC9zbGlzdD4KKyMgaWYgIWRlZmluZWQoX19HTlVDX18pIHx8IF9fR05VQ19fIDwgNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA8IDMpCisjICAgZGVmaW5lIEJPT1NUX0hBU0hfU0VUX0hFQURFUiA8ZXh0L2hhc2hfc2V0PgorIyAgIGRlZmluZSBCT09TVF9IQVNIX01BUF9IRUFERVIgPGV4dC9oYXNoX21hcD4KKyMgZWxzZQorIyAgIGRlZmluZSBCT09TVF9IQVNIX1NFVF9IRUFERVIgPGJhY2t3YXJkL2hhc2hfc2V0PgorIyAgIGRlZmluZSBCT09TVF9IQVNIX01BUF9IRUFERVIgPGJhY2t3YXJkL2hhc2hfbWFwPgorIyBlbmRpZgorI2VuZGlmCisKKy8vICBzdGRsaWJjKysgQysrMHggc3VwcG9ydCBpcyBkZXRlY3RlZCB2aWEgX19HTlVDX18sIF9fR05VQ19NSU5PUl9fLCBhbmQgcG9zc2libHkKKy8vICBfX0dOVUNfUEFUQ0hMRVZFTF9fIGF0IHRoZSBzdWdnZXN0aW9uIG9mIEpvbmF0aGFuIFdha2VseSwgb25lIG9mIHRoZSBzdGRsaWJjKysKKy8vICBkZXZlbG9wZXJzLiBIZSBhbHNvIGNvbW1lbnRlZDoKKy8vCisvLyAgICAgICAiSSdtIG5vdCBzdXJlIGhvdyB1c2VmdWwgX19HTElCQ1hYX18gaXMgZm9yIHlvdXIgcHVycG9zZXMsIGZvciBpbnN0YW5jZSBpbgorLy8gICAgICAgR0NDIDQuMi40IGl0IGlzIHNldCB0byAyMDA4MDUxOSBidXQgaW4gR0NDIDQuMy4wIGl0IGlzIHNldCB0byAyMDA4MDMwNS4KKy8vICAgICAgIEFsdGhvdWdoIDQuMy4wIHdhcyByZWxlYXNlZCBlYXJsaWVyIHRoYW4gNC4yLjQsIGl0IGhhcyBiZXR0ZXIgQysrMHggc3VwcG9ydAorLy8gICAgICAgdGhhbiBhbnkgcmVsZWFzZSBpbiB0aGUgNC4yIHNlcmllcy4iCisvLworLy8gIEFub3RoZXIgcmVzb3VyY2UgZm9yIHVuZGVyc3RhbmRpbmcgc3RkbGliYysrIGZlYXR1cmVzIGlzOgorLy8gIGh0dHA6Ly9nY2MuZ251Lm9yZy9vbmxpbmVkb2NzL2xpYnN0ZGMrKy9tYW51YWwvc3RhdHVzLmh0bWwjbWFudWFsLmludHJvLnN0YXR1cy5zdGFuZGFyZC4yMDB4CisKKy8vICBDKysweCBoZWFkZXJzIGluIEdDQyA0LjMuMCBhbmQgbGF0ZXIKKy8vCisjaWYgX19HTlVDX18gPCA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgMykgfHwgIWRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0FSUkFZCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JFR0VYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RVUExFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9NQVAKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX1NFVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GVU5DVElPTkFMCisjZW5kaWYKKworLy8gIEMrKzB4IGhlYWRlcnMgaW4gR0NDIDQuNC4wIGFuZCBsYXRlcgorLy8KKyNpZiBfX0dOVUNfXyA8IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPCA0KSB8fCAhZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ORElUSU9OX1ZBUklBQkxFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZPUldBUkRfTElTVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBVElPCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1NZU1RFTV9FUlJPUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NNQVJUX1BUUgorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9IQVNfVFIxX0NPTVBMRVhfSU5WRVJTRV9UUklHIAorIyAgZGVmaW5lIEJPT1NUX0hBU19UUjFfQ09NUExFWF9PVkVSTE9BRFMgCisjZW5kaWYKKworI2lmICghZGVmaW5lZChfR0xJQkNYWF9IQVNfR1RIUkVBRFMpIHx8ICFkZWZpbmVkKF9HTElCQ1hYX1VTRV9DOTlfU1RESU5UX1RSMSkpICYmICghZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfQ09ORElUSU9OX1ZBUklBQkxFKSB8fCAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfTVVURVgpKQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT05ESVRJT05fVkFSSUFCTEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfTVVURVgKKyNlbmRpZgorCisvLyAgQysrMHggZmVhdHVyZXMgaW4gR0NDIDQuNS4wIGFuZCBsYXRlcgorLy8KKyNpZiBfX0dOVUNfXyA8IDQgfHwgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPCA1KSB8fCAhZGVmaW5lZChfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXykKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OVU1FUklDX0xJTUlUUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GVVRVUkUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkFORE9NCisjZW5kaWYKKworLy8gIEMrKzB4IGZlYXR1cmVzIGluIEdDQyA0LjYuMCBhbmQgbGF0ZXIKKy8vCisjaWYgX19HTlVDX18gPCA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgNikgfHwgIWRlZmluZWQoX19HWFhfRVhQRVJJTUVOVEFMX0NYWDBYX18pCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVJTkRFWAorI2VuZGlmCisKKy8vICBDKysweCBmZWF0dXJlcyBpbiBHQ0MgNC43LjAgYW5kIGxhdGVyCisvLworI2lmIF9fR05VQ19fIDwgNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA8IDcpIHx8ICFkZWZpbmVkKF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fKQorLy8gTm90ZSB0aGF0IGFsdGhvdWdoIDxjaHJvbm8+IGV4aXN0ZWQgcHJpb3IgdG8gNC43LCAic3RlYWRfY2xvY2siIGlzIHNwZWxsZWQgIm1vbm90b25pY19jbG9jayIKKy8vIHNvIDQuNy4wIGlzIHRoZSBmaXJzdCB0cnVlbHkgY29uZm9ybWluZyBvbmUuCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NIUk9OTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FMTE9DQVRPUgorI2VuZGlmCisvLyAgQysrMHggaGVhZGVycyBub3QgeWV0IChmdWxseSEpIGltcGxlbWVudGVkCisvLworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9USFJFQUQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFlQRV9UUkFJVFMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ERUNWVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FUT01JQ19TTUFSVF9QVFIKKworLy8gIC0tLSBlbmQgLS0tCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvc3RkbGliL21vZGVuYS5ocHAgYi9ib29zdC9jb25maWcvc3RkbGliL21vZGVuYS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ4M2I2ZQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L2NvbmZpZy9zdGRsaWIvbW9kZW5hLmhwcApAQCAtMCwwICsxLDU2IEBACisvLyAgKEMpIENvcHlyaWdodCBKZW5zIE1hdXJlciAyMDAxLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBNb2RlbmEgQysrIHN0YW5kYXJkIGxpYnJhcnkgKGNvbWVzIHdpdGggS0FJIEMrKykKKworI2lmICFkZWZpbmVkKE1TSVBMX0NPTVBJTEVfSCkKKyMgIGluY2x1ZGUgPGJvb3N0L2NvbmZpZy9ub190cjEvdXRpbGl0eS5ocHA+CisjICBpZiAhZGVmaW5lZChfX01TSVBMX0NPTVBJTEVfSCkKKyMgICAgICBlcnJvciAiVGhpcyBpcyBub3QgdGhlIE1vZGVuYSBDKysgbGlicmFyeSEiCisjICBlbmRpZgorI2VuZGlmCisKKyNpZm5kZWYgTVNJUExfTkxfVFlQRVMKKyNkZWZpbmUgQk9PU1RfTk9fU1REX01FU1NBR0VTCisjZW5kaWYKKworI2lmbmRlZiBNU0lQTF9XQ0hBUlQKKyNkZWZpbmUgQk9PU1RfTk9fU1REX1dTVFJJTkcKKyNlbmRpZgorCisvLyAgQysrMHggaGVhZGVycyBub3QgeWV0IGltcGxlbWVudGVkCisvLworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9BUlJBWQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DSFJPTk8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ERUNWVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT05ESVRJT05fVkFSSUFCTEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRk9SV0FSRF9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQVRJTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SRUdFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9TWVNURU1fRVJST1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVEhSRUFECisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RVUExFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVfVFJBSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVJTkRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfTUFQCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9TRVQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OVU1FUklDX0xJTUlUUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FMTE9DQVRPUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FUT01JQ19TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVOQ1RJT05BTAorCisjZGVmaW5lIEJPT1NUX1NURExJQiAiTW9kZW5hIEMrKyBzdGFuZGFyZCBsaWJyYXJ5IgorCisKKworCisKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9zdGRsaWIvbXNsLmhwcCBiL2Jvb3N0L2NvbmZpZy9zdGRsaWIvbXNsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjlhMmRhCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL3N0ZGxpYi9tc2wuaHBwCkBAIC0wLDAgKzEsODQgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxLiAKKy8vICAoQykgQ29weXJpZ2h0IERhcmluIEFkbGVyIDIwMDEuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworLy8gIE1ldHJvd2Vya3Mgc3RhbmRhcmQgbGlicmFyeToKKworI2lmbmRlZiBfX01TTF9DUFBfXworIyAgaW5jbHVkZSA8Ym9vc3QvY29uZmlnL25vX3RyMS91dGlsaXR5LmhwcD4KKyMgIGlmbmRlZiBfX01TTF9DUFBfXworIyAgICAgZXJyb3IgVGhpcyBpcyBub3QgdGhlIE1TTCBzdGFuZGFyZCBsaWJyYXJ5IQorIyAgZW5kaWYKKyNlbmRpZgorCisjaWYgX19NU0xfQ1BQX18gPj0gMHg2MDAwICAvLyBQcm8gNgorIyAgZGVmaW5lIEJPT1NUX0hBU19IQVNICisjICBkZWZpbmUgQk9PU1RfU1REX0VYVEVOU0lPTl9OQU1FU1BBQ0UgTWV0cm93ZXJrcworI2VuZGlmCisjZGVmaW5lIEJPT1NUX0hBU19TTElTVAorCisjaWYgX19NU0xfQ1BQX18gPCAweDYyMDkKKyMgIGRlZmluZSBCT09TVF9OT19TVERfTUVTU0FHRVMKKyNlbmRpZgorCisvLyBjaGVjayBDIGxpYiB2ZXJzaW9uIGZvciA8c3RkaW50Lmg+CisjaW5jbHVkZSA8Y3N0ZGRlZj4KKworI2lmIGRlZmluZWQoX19NU0xfXykgJiYgKF9fTVNMX18gPj0gMHg1MDAwKQorIyAgZGVmaW5lIEJPT1NUX0hBU19TVERJTlRfSAorIyAgaWYgIWRlZmluZWQoX19QQUxNT1NfVFJBUFNfXykKKyMgICAgZGVmaW5lIEJPT1NUX0hBU19VTklTVERfSAorIyAgZW5kaWYKKyAgIC8vIGJvaWxlcnBsYXRlIGNvZGU6CisjICBpbmNsdWRlIDxib29zdC9jb25maWcvcG9zaXhfZmVhdHVyZXMuaHBwPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9NV01UKSB8fCBfTVNMX1RIUkVBRFNBRkUKKyMgIGRlZmluZSBCT09TVF9IQVNfVEhSRUFEUworI2VuZGlmCisKKyNpZmRlZiBfTVNMX05PX0VYUExJQ0lUX0ZVTkNfVEVNUExBVEVfQVJHCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX1VTRV9GQUNFVAorIyAgZGVmaW5lIEJPT1NUX0hBU19UV09fQVJHX1VTRV9GQUNFVAorI2VuZGlmCisKKy8vICBDKysweCBoZWFkZXJzIG5vdCB5ZXQgaW1wbGVtZW50ZWQKKy8vCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0FSUkFZCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NIUk9OTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT0RFQ1ZUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NPTkRJVElPTl9WQVJJQUJMRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GT1JXQVJEX0xJU1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVUVVJFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfTVVURVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkFORE9NCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBVElPCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JFR0VYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1NZU1RFTV9FUlJPUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9USFJFQUQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFVQTEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFlQRV9UUkFJVFMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFlQRUlOREVYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9NQVAKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX1NFVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTUVSSUNfTElNSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQUxMT0NBVE9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVRPTUlDX1NNQVJUX1BUUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NNQVJUX1BUUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GVU5DVElPTkFMCisKKyNkZWZpbmUgQk9PU1RfU1RETElCICJNZXRyb3dlcmtzIFN0YW5kYXJkIExpYnJhcnkgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfX01TTF9DUFBfXykKKworCisKKworCisKKworCisKZGlmZiAtLWdpdCBhL2Jvb3N0L2NvbmZpZy9zdGRsaWIvcm9ndWV3YXZlLmhwcCBiL2Jvb3N0L2NvbmZpZy9zdGRsaWIvcm9ndWV3YXZlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjgwZjU3Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL3N0ZGxpYi9yb2d1ZXdhdmUuaHBwCkBAIC0wLDAgKzEsMTg2IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuIAorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMS4gCisvLyAgKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAzLiAKKy8vICAoQykgQ29weXJpZ2h0IEJvcmlzIEd1YmVua28gMjAwNy4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgUm9ndWUgV2F2ZSBzdGQgbGliOgorCisjZGVmaW5lIEJPT1NUX1JXX1NURExJQiAxIAorCisjaWYgIWRlZmluZWQoX19TVERfUldDT01QSUxFUl9IX18pICYmICFkZWZpbmVkKF9SV1NURF9WRVIpCisjICBpbmNsdWRlIDxib29zdC9jb25maWcvbm9fdHIxL3V0aWxpdHkuaHBwPgorIyAgaWYgIWRlZmluZWQoX19TVERfUldDT01QSUxFUl9IX18pICYmICFkZWZpbmVkKF9SV1NURF9WRVIpCisjICAgICBlcnJvciBUaGlzIGlzIG5vdCB0aGUgUm9ndWUgV2F2ZSBzdGFuZGFyZCBsaWJyYXJ5CisjICBlbmRpZgorI2VuZGlmCisvLworLy8gZmlndXJlIG91dCBhIGNvbnNpc3RlbnQgdmVyc2lvbiBudW1iZXI6CisvLworI2lmbmRlZiBfUldTVERfVkVSCisjICBkZWZpbmUgQk9PU1RfUldTVERfVkVSIDB4MDEwMDAwCisjZWxpZiBfUldTVERfVkVSIDwgMHgwMTAwMDAKKyMgIGRlZmluZSBCT09TVF9SV1NURF9WRVIgKF9SV1NURF9WRVIgPDwgOCkKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfUldTVERfVkVSIF9SV1NURF9WRVIKKyNlbmRpZgorCisjaWZuZGVmIF9SV1NURF9WRVIKKyMgIGRlZmluZSBCT09TVF9TVERMSUIgIlJvZ3VlIFdhdmUgc3RhbmRhcmQgbGlicmFyeSB2ZXJzaW9uIChVbmtub3duIHZlcnNpb24pIgorI2VsaWYgX1JXU1REX1ZFUiA8IDB4MDQwMTAyMDAKKyAjICBkZWZpbmUgQk9PU1RfU1RETElCICJSb2d1ZSBXYXZlIHN0YW5kYXJkIGxpYnJhcnkgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfUldTVERfVkVSKQorI2Vsc2UKKyMgIGlmZGVmIF9SV1NURF9WRVJfU1RSCisjICAgIGRlZmluZSBCT09TVF9TVERMSUIgIkFwYWNoZSBTVERDWFggc3RhbmRhcmQgbGlicmFyeSB2ZXJzaW9uICIgX1JXU1REX1ZFUl9TVFIKKyMgIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1NURExJQiAiQXBhY2hlIFNURENYWCBzdGFuZGFyZCBsaWJyYXJ5IHZlcnNpb24gIiBCT09TVF9TVFJJTkdJWkUoX1JXU1REX1ZFUikKKyMgIGVuZGlmCisjZW5kaWYKKworLy8KKy8vIFByaW9yIHRvIHZlcnNpb24gMi4yLjAgdGhlIHByaW1hcnkgdGVtcGxhdGUgZm9yIHN0ZDo6bnVtZXJpY19saW1pdHMKKy8vIGRvZXMgbm90IGhhdmUgY29tcGlsZSB0aW1lIGNvbnN0YW50cywgZXZlbiB0aG91Z2ggc3BlY2lhbGl6YXRpb25zIG9mIHRoYXQKKy8vIHRlbXBsYXRlIGRvOgorLy8KKyNpZiBCT09TVF9SV1NURF9WRVIgPCAweDAyMDIwMAorIyAgZGVmaW5lIEJPT1NUX05PX0xJTUlUU19DT01QSUxFX1RJTUVfQ09OU1RBTlRTCisjZW5kaWYKKworLy8gU3VuIENDIDUuNSBwYXRjaCAxMTM4MTctMDcgYWRkcyBsb25nIGxvbmcgc3BlY2lhbGl6YXRpb24sIGJ1dCBkb2VzIG5vdCBjaGFuZ2UgdGhlCisvLyBsaWJyYXJ5IHZlcnNpb24gbnVtYmVyIChodHRwOi8vc3Vuc29sdmU2LnN1bi5jb20vc2VhcmNoL2RvY3VtZW50LmRvP2Fzc2V0a2V5PTEtMjEtMTEzODE3KToKKyNpZiBCT09TVF9SV1NURF9WRVIgPD0gMHgwMjAxMDEgJiYgKCFkZWZpbmVkKF9fU1VOUFJPX0NDKSB8fCAoX19TVU5QUk9fQ0MgPCAweDU1MCkpCisjICBkZWZpbmUgQk9PU1RfTk9fTE9OR19MT05HX05VTUVSSUNfTElNSVRTCisjIGVuZGlmCisKKy8vCisvLyBCb3JsYW5kIHZlcnNpb24gb2YgbnVtZXJpY19saW1pdHMgbGFja3MgX19pbnQ2NCBzcGVjaWFsaXNhdGlvbjoKKy8vCisjaWZkZWYgX19CT1JMQU5EQ19fCisjICBkZWZpbmUgQk9PU1RfTk9fTVNfSU5UNjRfTlVNRVJJQ19MSU1JVFMKKyNlbmRpZgorCisvLworLy8gTm8gc3RkOjppdGVyYXRvciBpZiBpdCBjYW4ndCBmaWd1cmUgb3V0IGRlZmF1bHQgdGVtcGxhdGUgYXJnczoKKy8vCisjaWYgZGVmaW5lZChfUldTVERfTk9fU0lNUExFX0RFRkFVTFRfVEVNUExBVEVTKSB8fCBkZWZpbmVkKFJXU1REX05PX1NJTVBMRV9ERUZBVUxUX1RFTVBMQVRFUykgfHwgKEJPT1NUX1JXU1REX1ZFUiA8IDB4MDIwMDAwKQorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9JVEVSQVRPUgorI2VuZGlmCisKKy8vCisvLyBObyBpdGVyYXRvciB0cmFpdHMgd2l0aG91dCBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uOgorLy8KKyNpZiBkZWZpbmVkKF9SV1NURF9OT19DTEFTU19QQVJUSUFMX1NQRUMpIHx8IGRlZmluZWQoUldTVERfTk9fQ0xBU1NfUEFSVElBTF9TUEVDKQorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9JVEVSQVRPUl9UUkFJVFMKKyNlbmRpZgorCisvLworLy8gUHJpb3IgdG8gdmVyc2lvbiAyLjAsIHN0ZDo6YXV0b19wdHIgd2FzIGJ1Z2d5LCBhbmQgdGhlcmUgd2VyZSBubworLy8gbmV3LXN0eWxlIGlvc3RyZWFtcywgYW5kIG5vIGNvbmZvcm1hbnQgc3RkOjphbGxvY2F0b3I6CisvLworI2lmIChCT09TVF9SV1NURF9WRVIgPCAweDAyMDAwMCkKKyMgIGRlZmluZSBCT09TVF9OT19BVVRPX1BUUgorIyAgZGVmaW5lIEJPT1NUX05PX1NUUklOR1NUUkVBTQorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9BTExPQ0FUT1IKKyMgIGRlZmluZSBCT09TVF9OT19TVERfTE9DQUxFCisjZW5kaWYKKworLy8KKy8vIE5vIHRlbXBsYXRlIGl0ZXJhdG9yIGNvbnN0cnVjdG9ycyB3aXRob3V0IG1lbWJlciB0ZW1wbGF0ZSBzdXBwb3J0OgorLy8KKyNpZiBkZWZpbmVkKFJXU1REX05PX01FTUJFUl9URU1QTEFURVMpIHx8IGRlZmluZWQoX1JXU1REX05PX01FTUJFUl9URU1QTEFURVMpCisjICBkZWZpbmUgQk9PU1RfTk9fVEVNUExBVEVEX0lURVJBVE9SX0NPTlNUUlVDVE9SUworI2VuZGlmCisKKy8vCisvLyBSVyBkZWZpbmVzIF9SV1NURF9BTExPQ0FUT1IgaWYgdGhlIGFsbG9jYXRvciBpcyBjb25mb3JtYW50IGFuZCBpbiB1c2UKKy8vICh0aGUgb3IgX0hQQUNDXyBwYXJ0IGlzIGEgaGFjayAtIHRoZSBsaWJyYXJ5IHNlZW1zIHRvIGRlZmluZSBfUldTVERfQUxMT0NBVE9SCisvLyBvbiBIUCBhQ0Mgc3lzdGVtcyBldmVuIHRob3VnaCB0aGUgYWxsb2NhdG9yIGlzIGluIGZhY3QgYnJva2VuKToKKy8vCisjaWYgIWRlZmluZWQoX1JXU1REX0FMTE9DQVRPUikgfHwgKGRlZmluZWQoX19IUF9hQ0MpICYmIF9fSFBfYUNDIDw9IDMzMTAwKQorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9BTExPQ0FUT1IKKyNlbmRpZgorCisvLworLy8gSWYgd2UgaGF2ZSBhIHN0ZDo6bG9jYWxlLCB3ZSBzdGlsbCBtYXkgbm90IGhhdmUgc3RkOjp1c2VfZmFjZXQ6CisvLworI2lmIGRlZmluZWQoX1JXU1REX05PX1RFTVBMQVRFX09OX1JFVFVSTl9UWVBFKSAmJiAhZGVmaW5lZChCT09TVF9OT19TVERfTE9DQUxFKQorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9VU0VfRkFDRVQKKyMgIGRlZmluZSBCT09TVF9IQVNfVFdPX0FSR19VU0VfRkFDRVQKKyNlbmRpZgorCisvLworLy8gVGhlcmUncyBubyBzdGQ6OmRpc3RhbmNlIHByaW9yIHRvIHZlcnNpb24gMiwgb3Igd2l0aG91dAorLy8gcGFydGlhbCBzcGVjaWFsaXphdGlvbiBzdXBwb3J0OgorLy8KKyNpZiAoQk9PU1RfUldTVERfVkVSIDwgMHgwMjAwMDApIHx8IGRlZmluZWQoX1JXU1REX05PX0NMQVNTX1BBUlRJQUxfU1BFQykKKyAgICAjZGVmaW5lIEJPT1NUX05PX1NURF9ESVNUQU5DRQorI2VuZGlmCisKKy8vCisvLyBTb21lIHZlcnNpb25zIG9mIHRoZSByb2d1ZSB3YXZlIGxpYnJhcnkgZG9uJ3QgaGF2ZSBhc3NpZ25hYmxlCisvLyBPdXRwdXRJdGVyYXRvcnM6CisvLworI2lmIEJPT1NUX1JXU1REX1ZFUiA8IDB4MDIwMTAwCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX09VVFBVVF9JVEVSQVRPUl9BU1NJR04KKyNlbmRpZgorCisvLworLy8gRGlzYWJsZSBCT09TVF9IQVNfTE9OR19MT05HIHdoZW4gdGhlIGxpYnJhcnkgaGFzIG5vIHN1cHBvcnQgZm9yIGl0LgorLy8KKyNpZiAhZGVmaW5lZChfUldTVERfTE9OR19MT05HKSAmJiBkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpCisjICB1bmRlZiBCT09TVF9IQVNfTE9OR19MT05HCisjZW5kaWYKKworLy8KKy8vIGNoZWNrIHRoYXQgb24gSFAtVVgsIHRoZSBwcm9wZXIgUlcgbGlicmFyeSBpcyB1c2VkCisvLworI2lmIGRlZmluZWQoX19IUF9hQ0MpICYmICFkZWZpbmVkKF9IUF9OQU1FU1BBQ0VfU1REKQorIyAgZXJyb3IgIkJvb3N0IHJlcXVpcmVzIFN0YW5kYXJkIFJXIGxpYnJhcnkuIFBsZWFzZSBjb21waWxlIGFuZCBsaW5rIHdpdGggLUFBIgorI2VuZGlmCisKKy8vCisvLyBEZWZpbmUgbWFjcm9zIHNwZWNpZmljIHRvIFJXIFYyLjIgb24gSFAtVVgKKy8vCisjaWYgZGVmaW5lZChfX0hQX2FDQykgJiYgKEJPT1NUX1JXU1REX1ZFUiA9PSAweDAyMDIwMTAwKQorIyAgaWZuZGVmIF9fSFBfVEMxX01BS0VfUEFJUgorIyAgICBkZWZpbmUgX19IUF9UQzFfTUFLRV9QQUlSCisjICBlbmRpZgorIyAgaWZuZGVmIF9IUF9JTlNUQU5USUFURV9TVEQyX1ZMCisjICAgIGRlZmluZSBfSFBfSU5TVEFOVElBVEVfU1REMl9WTAorIyAgZW5kaWYKKyNlbmRpZgorCisjaWYgX1JXU1REX1ZFUiA8IDB4MDUwMDAwMDAKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQVJSQVkKKyNlbmRpZgorLy8gdHlwZV90cmFpdHMgaGVhZGVyIGlzIGluY29tcGxldGU6CisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVfVFJBSVRTCisvLworLy8gIEMrKzB4IGhlYWRlcnMgbm90IHlldCBpbXBsZW1lbnRlZAorLy8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ0hST05PCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NPREVDVlQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ORElUSU9OX1ZBUklBQkxFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZPUldBUkRfTElTVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GVVRVUkUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9NVVRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQU5ET00KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkFUSU8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkVHRVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfU1lTVEVNX0VSUk9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RIUkVBRAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UVVBMRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFSU5ERVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX01BUAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfU0VUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfTlVNRVJJQ19MSU1JVFMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BTExPQ0FUT1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9BVE9NSUNfU01BUlRfUFRSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU01BUlRfUFRSCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVTkNUSU9OQUwKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL3N0ZGxpYi9zZ2kuaHBwIGIvYm9vc3QvY29uZmlnL3N0ZGxpYi9zZ2kuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlOWI2YWQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvc3RkbGliL3NnaS5ocHAKQEAgLTAsMCArMSwxNDggQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxIC0gMjAwMy4gCisvLyAgKEMpIENvcHlyaWdodCBEYXJpbiBBZGxlciAyMDAxLiAKKy8vICAoQykgQ29weXJpZ2h0IEplbnMgTWF1cmVyIDIwMDEgLSAyMDAzLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uCisKKy8vICBnZW5lcmljIFNHSSBTVEw6CisKKyNpZiAhZGVmaW5lZChfX1NUTF9DT05GSUdfSCkKKyMgIGluY2x1ZGUgPGJvb3N0L2NvbmZpZy9ub190cjEvdXRpbGl0eS5ocHA+CisjICBpZiAhZGVmaW5lZChfX1NUTF9DT05GSUdfSCkKKyMgICAgICBlcnJvciAiVGhpcyBpcyBub3QgdGhlIFNHSSBTVEwhIgorIyAgZW5kaWYKKyNlbmRpZgorCisvLworLy8gTm8gc3RkOjppdGVyYXRvciB0cmFpdHMgd2l0aG91dCBwYXJ0aWFsIHNwZWNpYWxpc2F0aW9uOgorLy8KKyNpZiAhZGVmaW5lZChfX1NUTF9DTEFTU19QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9JVEVSQVRPUl9UUkFJVFMKKyNlbmRpZgorCisvLworLy8gTm8gc3RkOjpzdHJpbmdzdHJlYW0gd2l0aCBnY2MgPCAzCisvLworI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA8IDMpICYmIFwKKyAgICAgKChfX0dOVUNfTUlOT1JfXyA8IDk1KSB8fCAoX19HTlVDX01JTk9SX18gPT0gOTYpKSAmJiBcCisgICAgICFkZWZpbmVkKF9fU1RMX1VTRV9ORVdfSU9TVFJFQU1TKSB8fCBcCisgICBkZWZpbmVkKF9fQVBQTEVfQ0NfXykKKyAgIC8vIE5vdGUgdGhhdCB3ZSBvbmx5IHNldCB0aGlzIGZvciBHTlUgQysrIHByaW9yIHRvIDIuOTUgc2luY2UgdGhlCisgICAvLyBsYXRlc3QgcGF0Y2hlcyBmb3IgdGhhdCByZWxlYXNlIGRvIGNvbnRhaW4gYSBtaW5pbWFsIDxzc3RyZWFtPgorICAgLy8gSWYgeW91IGFyZSBydW5uaW5nIGEgMi45NSByZWxlYXNlIHByaW9yIHRvIDIuOTUuMyB0aGVuIHRoaXMgd2lsbCBuZWVkCisgICAvLyBzZXR0aW5nLCBidXQgdGhlcmUgaXMgbm8gd2F5IHRvIGRldGVjdCB0aGF0IGF1dG9tYXRpY2FsbHkgKG90aGVyCisgICAvLyB0aGFuIGJ5IHJ1bm5pbmcgdGhlIGNvbmZpZ3VyZSBzY3JpcHQpLgorICAgLy8gQWxzbywgdGhlIHVub2ZmaWNpYWwgR05VIEMrKyAyLjk2IGluY2x1ZGVkIGluIFJlZEhhdCA3LjEgZG9lc24ndAorICAgLy8gaGF2ZSA8c3N0cmVhbT4uCisjICBkZWZpbmUgQk9PU1RfTk9fU1RSSU5HU1RSRUFNCisjZW5kaWYKKworLy8gQXBwbGUgZG9lc24ndCBzZWVtIHRvIHJlbGlhYmx5IGRlZmluZWQgYSAqdW5peCogbWFjcm8KKyNpZiAhZGVmaW5lZChDWUdXSU4pICYmICggIGRlZmluZWQoX191bml4X18pICBcCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWZpbmVkKF9fdW5peCkgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZCh1bml4KSAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRlZmluZWQoX19BUFBMRV9fKSBcCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWZpbmVkKF9fQVBQTEUpICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZChBUFBMRSkpCisjICBpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorCisKKy8vCisvLyBBc3N1bWUgbm8gc3RkOjpsb2NhbGUgd2l0aG91dCBvd24gaW9zdHJlYW1zICh0aGlzIG1heSBiZSBhbgorLy8gaW5jb3JyZWN0IGFzc3VtcHRpb24gaW4gc29tZSBjYXNlcyk6CisvLworI2lmICFkZWZpbmVkKF9fU0dJX1NUTF9PV05fSU9TVFJFQU1TKSAmJiAhZGVmaW5lZChfX1NUTF9VU0VfTkVXX0lPU1RSRUFNUykKKyMgIGRlZmluZSBCT09TVF9OT19TVERfTE9DQUxFCisjZW5kaWYKKworLy8KKy8vIE9yaWdpbmFsIG5hdGl2ZSBTR0kgc3RyZWFtcyBoYXZlIG5vbi1zdGFuZGFyZCBzdGQ6Om1lc3NhZ2VzIGZhY2V0OgorLy8KKyNpZiBkZWZpbmVkKF9fc2dpKSAmJiAoX0NPTVBJTEVSX1ZFUlNJT04gPD0gNjUwKSAmJiAhZGVmaW5lZChfX1NHSV9TVExfT1dOX0lPU1RSRUFNUykKKyMgIGRlZmluZSBCT09TVF9OT19TVERfTE9DQUxFCisjZW5kaWYKKworLy8KKy8vIFNHSSdzIG5ldyBpb3N0cmVhbXMgaGF2ZSBtaXNzaW5nICJjb25zdCIgaW4gbWVzc2FnZXM8Pjo6b3BlbgorLy8KKyNpZiBkZWZpbmVkKF9fc2dpKSAmJiAoX0NPTVBJTEVSX1ZFUlNJT04gPD0gNzQwKSAmJiBkZWZpbmVkKF9fU1RMX1VTRV9ORVdfSU9TVFJFQU1TKQorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9NRVNTQUdFUworI2VuZGlmCisKKy8vCisvLyBObyB0ZW1wbGF0ZSBpdGVyYXRvciBjb25zdHJ1Y3RvcnMsIG9yIHN0ZDo6YWxsb2NhdG9yCisvLyB3aXRob3V0IG1lbWJlciB0ZW1wbGF0ZXM6CisvLworI2lmICFkZWZpbmVkKF9fU1RMX01FTUJFUl9URU1QTEFURVMpCisjICBkZWZpbmUgQk9PU1RfTk9fVEVNUExBVEVEX0lURVJBVE9SX0NPTlNUUlVDVE9SUworIyAgZGVmaW5lIEJPT1NUX05PX1NURF9BTExPQ0FUT1IKKyNlbmRpZgorCisvLworLy8gV2UgYWx3YXlzIGhhdmUgU0dJIHN0eWxlIGhhc2hfc2V0LCBoYXNoX21hcCwgYW5kIHNsaXN0OgorLy8KKyNkZWZpbmUgQk9PU1RfSEFTX0hBU0gKKyNkZWZpbmUgQk9PU1RfSEFTX1NMSVNUCisKKy8vCisvLyBJZiB0aGlzIGlzIEdOVSBsaWJzdGRjKysyLCB0aGVuIG5vIDxsaW1pdHM+IGFuZCBubyBzdGQ6OndzdHJpbmc6CisvLworI2lmIChkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPCAzKSkKKyMgIGluY2x1ZGUgPHN0cmluZz4KKyMgIGlmIGRlZmluZWQoX19CQVNUUklOR19fKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX0xJTUlUUworLy8gTm90ZTogPGJvb3N0L2xpbWl0cy5ocHA+IHdpbGwgcHJvdmlkZSBjb21waWxlLXRpbWUgY29uc3RhbnRzCisjICAgICB1bmRlZiBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworIyAgICAgZGVmaW5lIEJPT1NUX05PX1NURF9XU1RSSU5HCisjICBlbmRpZgorI2VuZGlmCisKKy8vCisvLyBUaGVyZSBpcyBubyBzdGFuZGFyZCBpdGVyYXRvciB1bmxlc3Mgd2UgaGF2ZSBuYW1lc3BhY2Ugc3VwcG9ydDoKKy8vCisjaWYgIWRlZmluZWQoX19TVExfVVNFX05BTUVTUEFDRVMpCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX0lURVJBVE9SCisjZW5kaWYKKworLy8KKy8vIEludHJpbnNpYyB0eXBlX3RyYWl0cyBzdXBwb3J0LgorLy8gVGhlIFNHSSBTVEwgaGFzIGl0J3Mgb3duIF9fdHlwZV90cmFpdHMgY2xhc3MsIHdoaWNoCisvLyBoYXMgaW50cmluc2ljIGNvbXBpbGVyIHN1cHBvcnQgd2l0aCBTR0kncyBjb21waWxlcnMuCisvLyBXaGF0ZXZlciBtYXAgU0dJIHN0eWxlIHR5cGUgdHJhaXRzIHRvIGJvb3N0IGVxdWl2YWxlbnRzOgorLy8KKyNkZWZpbmUgQk9PU1RfSEFTX1NHSV9UWVBFX1RSQUlUUworCisvLyAgQysrMHggaGVhZGVycyBub3QgeWV0IGltcGxlbWVudGVkCisvLworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9BUlJBWQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DSFJPTk8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ERUNWVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT05ESVRJT05fVkFSSUFCTEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRk9SV0FSRF9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQVRJTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SRUdFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9TWVNURU1fRVJST1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVEhSRUFECisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RVUExFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVfVFJBSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVJTkRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfTUFQCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9TRVQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OVU1FUklDX0xJTUlUUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FMTE9DQVRPUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FUT01JQ19TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVOQ1RJT05BTAorCisjZGVmaW5lIEJPT1NUX1NURExJQiAiU0dJIHN0YW5kYXJkIGxpYnJhcnkiCisKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvc3RkbGliL3N0bHBvcnQuaHBwIGIvYm9vc3QvY29uZmlnL3N0ZGxpYi9zdGxwb3J0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDkyNjdhCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY29uZmlnL3N0ZGxpYi9zdGxwb3J0LmhwcApAQCAtMCwwICsxLDI0MyBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDEgLSAyMDAyLiAKKy8vICAoQykgQ29weXJpZ2h0IERhcmluIEFkbGVyIDIwMDEuIAorLy8gIChDKSBDb3B5cmlnaHQgSmVucyBNYXVyZXIgMjAwMS4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgCisvLyAgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgCisvLyAgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgU1RMUG9ydCBzdGFuZGFyZCBsaWJyYXJ5IGNvbmZpZzoKKworI2lmICFkZWZpbmVkKF9fU0dJX1NUTF9QT1JUKSAmJiAhZGVmaW5lZChfU1RMUE9SVF9WRVJTSU9OKQorIyAgaW5jbHVkZSA8Y3N0ZGRlZj4KKyMgIGlmICFkZWZpbmVkKF9fU0dJX1NUTF9QT1JUKSAmJiAhZGVmaW5lZChfU1RMUE9SVF9WRVJTSU9OKQorIyAgICAgIGVycm9yICJUaGlzIGlzIG5vdCBTVExQb3J0ISIKKyMgIGVuZGlmCisjZW5kaWYKKworLy8gQXBwbGUgZG9lc24ndCBzZWVtIHRvIHJlbGlhYmx5IGRlZmluZWQgYSAqdW5peCogbWFjcm8KKyNpZiAhZGVmaW5lZChDWUdXSU4pICYmICggIGRlZmluZWQoX191bml4X18pICBcCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWZpbmVkKF9fdW5peCkgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZCh1bml4KSAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRlZmluZWQoX19BUFBMRV9fKSBcCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWZpbmVkKF9fQVBQTEUpICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZChBUFBMRSkpCisjICBpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorCisvLworLy8gX19TVExfU1RBVElDX0NPTlNUX0lOSVRfQlVHIGltcGxpZXMgQk9PU1RfTk9fTElNSVRTX0NPTVBJTEVfVElNRV9DT05TVEFOVFMKKy8vIGZvciB2ZXJzaW9ucyBwcmlvciB0byA0LjEoYmV0YSkKKy8vCisjaWYgKGRlZmluZWQoX19TVExfU1RBVElDX0NPTlNUX0lOSVRfQlVHKSB8fCBkZWZpbmVkKF9TVExQX1NUQVRJQ19DT05TVF9JTklUX0JVRykpICYmIChfX1NHSV9TVExfUE9SVCA8PSAweDQwMCkKKyMgIGRlZmluZSBCT09TVF9OT19MSU1JVFNfQ09NUElMRV9USU1FX0NPTlNUQU5UUworI2VuZGlmCisKKy8vCisvLyBJZiBTVExwb3J0IHRoaW5rcyB0aGF0IHRoZXJlIGlzIG5vIHBhcnRpYWwgc3BlY2lhbGlzYXRpb24sIHRoZW4gdGhlcmUgaXMgbm8KKy8vIHN0ZDo6aXRlcmF0b3IgdHJhaXRzOgorLy8KKyNpZiAhKGRlZmluZWQoX1NUTFBfQ0xBU1NfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgfHwgZGVmaW5lZChfX1NUTF9DTEFTU19QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSkKKyMgIGRlZmluZSBCT09TVF9OT19TVERfSVRFUkFUT1JfVFJBSVRTCisjZW5kaWYKKworLy8KKy8vIE5vIG5ldyBzdHlsZSBpb3N0cmVhbXMgb24gR0NDIHdpdGhvdXQgU1RMcG9ydCdzIGlvc3RyZWFtcyBlbmFibGVkOgorLy8KKyNpZiAoZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fIDwgMykpICYmICEoZGVmaW5lZChfX1NHSV9TVExfT1dOX0lPU1RSRUFNUykgfHwgZGVmaW5lZChfU1RMUF9PV05fSU9TVFJFQU1TKSkKKyMgIGRlZmluZSBCT09TVF9OT19TVFJJTkdTVFJFQU0KKyNlbmRpZgorCisvLworLy8gTm8gbmV3IGlvc3RyZWFtcyBpbXBsaWVzIG5vIHN0ZDo6bG9jYWxlLCBhbmQgbm8gc3RkOjpzdHJpbmdzdHJlYW06CisvLworI2lmIGRlZmluZWQoX19TVExfTk9fSU9TVFJFQU1TKSB8fCBkZWZpbmVkKF9fU1RMX05PX05FV19JT1NUUkVBTVMpIHx8IGRlZmluZWQoX1NUTFBfTk9fSU9TVFJFQU1TKSB8fCBkZWZpbmVkKF9TVExQX05PX05FV19JT1NUUkVBTVMpCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX0xPQ0FMRQorIyAgZGVmaW5lIEJPT1NUX05PX1NUUklOR1NUUkVBTQorI2VuZGlmCisKKy8vCisvLyBJZiB0aGUgc3RyZWFtcyBhcmUgbm90IG5hdGl2ZSwgYW5kIHdlIGhhdmUgYSAidXNpbmcgOjp4IiBjb21waWxlciBidWcKKy8vIHRoZW4gdGhlIGlvIHN0cmVhbSBmYWNldHMgYXJlIG5vdCBhdmFpbGFibGUgaW4gbmFtZXNwYWNlIHN0ZDo6CisvLworI2lmZGVmIF9TVExQT1JUX1ZFUlNJT04KKyMgIGlmICEoX1NUTFBPUlRfVkVSU0lPTiA+PSAweDUwMCkgJiYgIWRlZmluZWQoX1NUTFBfT1dOX0lPU1RSRUFNUykgJiYgZGVmaW5lZChfU1RMUF9VU0VfTkFNRVNQQUNFUykgJiYgZGVmaW5lZChCT09TVF9OT19VU0lOR19URU1QTEFURSkgJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX1NURF9MT0NBTEUKKyMgIGVuZGlmCisjZWxzZQorIyAgaWYgIWRlZmluZWQoX19TR0lfU1RMX09XTl9JT1NUUkVBTVMpICYmIGRlZmluZWQoX19TVExfVVNFX05BTUVTUEFDRVMpICYmIGRlZmluZWQoQk9PU1RfTk9fVVNJTkdfVEVNUExBVEUpICYmICFkZWZpbmVkKF9fQk9STEFORENfXykKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERfTE9DQUxFCisjICBlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9TVExQT1JUX1ZFUlNJT04pICYmIChfU1RMUE9SVF9WRVJTSU9OID49IDB4NTIwKQorIyAgZGVmaW5lIEJPT1NUX0hBU19UUjFfVU5PUkRFUkVEX1NFVAorIyAgZGVmaW5lIEJPT1NUX0hBU19UUjFfVU5PUkRFUkVEX01BUAorI2VuZGlmCisvLworLy8gV2l0aG91dCBtZW1iZXIgdGVtcGxhdGUgc3VwcG9ydCBlbmFibGVkLCB0aGVpciBhcmUgbm8gdGVtcGxhdGUKKy8vIGl0ZXJhdGUgY29uc3RydWN0b3JzLCBhbmQgbm8gc3RkOjphbGxvY2F0b3I6CisvLworI2lmICEoZGVmaW5lZChfX1NUTF9NRU1CRVJfVEVNUExBVEVTKSB8fCBkZWZpbmVkKF9TVExQX01FTUJFUl9URU1QTEFURVMpKQorIyAgZGVmaW5lIEJPT1NUX05PX1RFTVBMQVRFRF9JVEVSQVRPUl9DT05TVFJVQ1RPUlMKKyMgIGRlZmluZSBCT09TVF9OT19TVERfQUxMT0NBVE9SCisjZW5kaWYKKy8vCisvLyBob3dldmVyIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGEgcGFydGlhbCBhbGxvY2F0b3I6CisvLworI2RlZmluZSBCT09TVF9IQVNfUEFSVElBTF9TVERfQUxMT0NBVE9SCisKKyNpZiAhZGVmaW5lZChfU1RMUF9NRU1CRVJfVEVNUExBVEVfQ0xBU1NFUykgfHwgZGVmaW5lZChfU1RMUF9ET05UX1NVUFBPUlRfUkVCSU5EX01FTUJFUl9URU1QTEFURSkKKyMgIGRlZmluZSBCT09TVF9OT19TVERfQUxMT0NBVE9SCisjZW5kaWYKKworI2lmIGRlZmluZWQoX1NUTFBfTk9fTUVNQkVSX1RFTVBMQVRFX0tFWVdPUkQpICYmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgKEJPT1NUX01TVkMgPD0gMTMwMCkKKyMgIGRlZmluZSBCT09TVF9OT19TVERfQUxMT0NBVE9SCisjZW5kaWYKKworLy8KKy8vIElmIFNUTHBvcnQgdGhpbmtzIHRoZXJlIGlzIG5vIHdjaGFyX3QgYXQgYWxsLCB0aGVuIHdlIGhhdmUgdG8gZGlzYWJsZQorLy8gdGhlIHN1cHBvcnQgZm9yIHRoZSByZWxldmFudCBzcGVjaWxhemF0aW9ucyBvZiBzdGQ6OiB0ZW1wbGF0ZXMuCisvLworI2lmICFkZWZpbmVkKF9TVExQX0hBU19XQ0hBUl9UKSAmJiAhZGVmaW5lZChfU1RMUF9XQ0hBUl9UX0lTX1VTSE9SVCkKKyMgIGlmbmRlZiAgQk9PU1RfTk9fU1REX1dTVFJJTkcKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERfV1NUUklORworIyAgZW5kaWYKKyMgIGlmbmRlZiAgQk9PU1RfTk9fU1REX1dTVFJFQU1CVUYKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERfV1NUUkVBTUJVRgorIyAgZW5kaWYKKyNlbmRpZgorCisvLworLy8gV2UgYWx3YXlzIGhhdmUgU0dJIHN0eWxlIGhhc2hfc2V0LCBoYXNoX21hcCwgYW5kIHNsaXN0OgorLy8KKyNpZm5kZWYgX1NUTFBfTk9fRVhURU5TSU9OUworI2RlZmluZSBCT09TVF9IQVNfSEFTSAorI2RlZmluZSBCT09TVF9IQVNfU0xJU1QKKyNlbmRpZgorCisvLworLy8gU1RMcG9ydCBkb2VzIGEgZ29vZCBqb2Igb2YgaW1wb3J0aW5nIG5hbWVzIGludG8gbmFtZXNwYWNlIHN0ZDo6LAorLy8gYnV0IGRvZXNuJ3QgYWx3YXlzIGdldCB0aGVtIGFsbCwgZGVmaW5lIEJPT1NUX05PX1NURENfTkFNRVNQQUNFLCBzaW5jZSBvdXIKKy8vIHdvcmthcm91bmQgZG9lcyBub3QgY29uZmxpY3Qgd2l0aCBTVExwb3J0czoKKy8vCisvLworLy8gSGFyb2xkIEhvd2Ugc2F5czoKKy8vIEJvcmxhbmQgc3dpdGNoZWQgdG8gU1RMcG9ydCBpbiBCQ0I2LiBEZWZpbmluZyBCT09TVF9OT19TVERDX05BTUVTUEFDRSB3aXRoCisvLyBCQ0I2IGRvZXMgY2F1c2UgcHJvYmxlbXMuIElmIHdlIGRldGVjdCBDKysgQnVpbGRlciwgdGhlbiBkb24ndCBkZWZpbmUgCisvLyBCT09TVF9OT19TVERDX05BTUVTUEFDRQorLy8KKyNpZiAhZGVmaW5lZChfX0JPUkxBTkRDX18pICYmICFkZWZpbmVkKF9fRE1DX18pCisvLworLy8gSWYgU1RMcG9ydCBpcyB1c2luZyBpdCdzIG93biBuYW1lc3BhY2UsIGFuZCB0aGUgcmVhbCBuYW1lcyBhcmUgaW4KKy8vIHRoZSBnbG9iYWwgbmFtZXNwYWNlLCB0aGVuIHdlIGR1cGxpY2F0ZSBTVExwb3J0J3MgdXNpbmcgZGVjbGFyYXRpb25zCisvLyAoYnkgZGVmaW5pbmcgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UpLCB3ZSBkbyB0aGlzIGJlY2F1c2UgU1RMcG9ydCBkb2Vzbid0CisvLyBuZWNlc3NhcmlseSBpbXBvcnQgYWxsIHRoZSBuYW1lcyB3ZSBuZWVkIGludG8gbmFtZXNwYWNlIHN0ZDo6CisvLyAKKyMgIGlmIChkZWZpbmVkKF9fU1RMX0lNUE9SVF9WRU5ET1JfQ1NURCkgXAorICAgICAgICAgfHwgZGVmaW5lZChfX1NUTF9VU0VfT1dOX05BTUVTUEFDRSkgXAorICAgICAgICAgfHwgZGVmaW5lZChfU1RMUF9JTVBPUlRfVkVORE9SX0NTVEQpIFwKKyAgICAgICAgIHx8IGRlZmluZWQoX1NUTFBfVVNFX09XTl9OQU1FU1BBQ0UpKSBcCisgICAgICAmJiAoZGVmaW5lZChfX1NUTF9WRU5ET1JfR0xPQkFMX0NTVEQpIHx8IGRlZmluZWQgKF9TVExQX1ZFTkRPUl9HTE9CQUxfQ1NURCkpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UKKyMgICAgIGRlZmluZSBCT09TVF9OT19FWENFUFRJT05fU1REX05BTUVTUEFDRQorIyAgZW5kaWYKKyNlbGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiBfX0JPUkxBTkRDX18gPCAweDU2MAorLy8gU1RMcG9ydCBkb2Vzbid0IGltcG9ydCBzdGQ6OmFicyBjb3JyZWN0bHk6CisjaW5jbHVkZSA8c3RkbGliLmg+CituYW1lc3BhY2Ugc3RkIHsgdXNpbmcgOjphYnM7IH0KKy8vIGFuZCBzdHJjbXAvc3RyY3B5IGRvbid0IGdldCBpbXBvcnRlZCBlaXRoZXIgKCdjb3MgdGhleSBhcmUgbWFjcm9zKQorI2luY2x1ZGUgPHN0cmluZy5oPgorI2lmZGVmIHN0cmNweQorIyAgdW5kZWYgc3RyY3B5CisjZW5kaWYKKyNpZmRlZiBzdHJjbXAKKyMgIHVuZGVmIHN0cmNtcAorI2VuZGlmCisjaWZkZWYgX1NUTFBfVkVORE9SX0NTVEQKK25hbWVzcGFjZSBzdGR7IHVzaW5nIF9TVExQX1ZFTkRPUl9DU1REOjpzdHJjbXA7IHVzaW5nIF9TVExQX1ZFTkRPUl9DU1REOjpzdHJjcHk7IH0KKyNlbmRpZgorI2VuZGlmCisKKy8vCisvLyBzdGQ6OnVzZV9mYWNldCBtYXkgYmUgbm9uLXN0YW5kYXJkLCB1c2VzIGEgY2xhc3MgaW5zdGVhZDoKKy8vCisjaWYgZGVmaW5lZChfX1NUTF9OT19FWFBMSUNJVF9GVU5DVElPTl9UTVBMX0FSR1MpIHx8IGRlZmluZWQoX1NUTFBfTk9fRVhQTElDSVRfRlVOQ1RJT05fVE1QTF9BUkdTKQorIyAgZGVmaW5lIEJPT1NUX05PX1NURF9VU0VfRkFDRVQKKyMgIGRlZmluZSBCT09TVF9IQVNfU1RMUF9VU0VfRkFDRVQKKyNlbmRpZgorCisvLworLy8gSWYgU1RMcG9ydCB0aGlua3MgdGhlcmUgYXJlIG5vIHdpZGUgZnVuY3Rpb25zLCA8Y3djaGFyPiBldGMuIGlzIG5vdCB3b3JraW5nOyBidXQKKy8vIG9ubHkgaWYgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0UgaXMgbm90IGRlZmluZWQgKGlmIGl0IGlzIHRoZW4gd2UgZG8gdGhlIGltcG9ydCAKKy8vIGludG8gc3RkOjogb3Vyc2VsdmVzKS4KKy8vCisjaWYgZGVmaW5lZChfU1RMUF9OT19OQVRJVkVfV0lERV9GVU5DVElPTlMpICYmICFkZWZpbmVkKEJPT1NUX05PX1NURENfTkFNRVNQQUNFKQorIyAgZGVmaW5lIEJPT1NUX05PX0NXQ0hBUgorIyAgZGVmaW5lIEJPT1NUX05PX0NXQ1RZUEUKKyNlbmRpZgorCisvLworLy8gSWYgU1RMcG9ydCBmb3Igc29tZSByZWFzb24gd2FzIGNvbmZpZ3VyZWQgc28gdGhhdCBpdCB0aGlua3MgdGhhdCB3Y2hhcl90CisvLyBpcyBub3QgYW4gaW50cmluc2ljIHR5cGUsIHRoZW4gd2UgaGF2ZSB0byBkaXNhYmxlIHRoZSBzdXBwb3J0IGZvciBpdCBhcworLy8gd2VsbCAod2Ugd291bGQgYmUgbWlzc2luZyByZXF1aXJlZCBzcGVjaWFsaXphdGlvbnMgb3RoZXJ3aXNlKS4KKy8vCisjaWYgIWRlZmluZWQoIF9TVExQX0hBU19XQ0hBUl9UKSB8fCBkZWZpbmVkKF9TVExQX1dDSEFSX1RfSVNfVVNIT1JUKQorIyAgdW5kZWYgIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCisjICBkZWZpbmUgQk9PU1RfTk9fSU5UUklOU0lDX1dDSEFSX1QKKyNlbmRpZgorCisvLworLy8gQm9ybGFuZCBzaGlwcyBhIHZlcnNpb24gb2YgU1RMcG9ydCB3aXRoIEMrKyBCdWlsZGVyIDYgdGhhdCBsYWNrcworLy8gaGFzaHRhYmxlcyBhbmQgdGhlIGxpa2U6CisvLworI2lmIGRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiAoX19CT1JMQU5EQ19fID09IDB4NTYwKQorIyAgdW5kZWYgQk9PU1RfSEFTX0hBU0gKKyNlbmRpZgorCisvLworLy8gZ2NjLTIuOTUuMy9TVExQb3J0IGRvZXMgbm90IGxpa2UgdGhlIHVzaW5nIGRlY2xhcmF0aW9ucyB3ZSB1c2UgdG8gZ2V0IEFETCB3aXRoIHN0ZDo6bWluL21heAorLy8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPCAzKQorIyAgaW5jbHVkZSA8YWxnb3JpdGhtPiAvLyBmb3Igc3RkOjptaW4gYW5kIHN0ZDo6bWF4CisjICBkZWZpbmUgQk9PU1RfVVNJTkdfU1REX01JTigpICgodm9pZCkwKQorIyAgZGVmaW5lIEJPT1NUX1VTSU5HX1NURF9NQVgoKSAoKHZvaWQpMCkKK25hbWVzcGFjZSBuZG5ib29zdCB7IHVzaW5nIHN0ZDo6bWluOyB1c2luZyBzdGQ6Om1heDsgfQorI2VuZGlmCisKKy8vICBDKysweCBoZWFkZXJzIG5vdCB5ZXQgaW1wbGVtZW50ZWQKKy8vCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0FSUkFZCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NIUk9OTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT0RFQ1ZUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0NPTkRJVElPTl9WQVJJQUJMRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GT1JXQVJEX0xJU1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVUVVJFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfTVVURVgKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfUkFORE9NCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBVElPCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JFR0VYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1NZU1RFTV9FUlJPUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9USFJFQUQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFVQTEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFlQRV9UUkFJVFMKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVFlQRUlOREVYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9NQVAKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX1NFVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX05VTUVSSUNfTElNSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQUxMT0NBVE9SCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfQVRPTUlDX1NNQVJUX1BUUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX1NNQVJUX1BUUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9GVU5DVElPTkFMCisKKyNkZWZpbmUgQk9PU1RfU1RETElCICJTVExQb3J0IHN0YW5kYXJkIGxpYnJhcnkgdmVyc2lvbiAiIEJPT1NUX1NUUklOR0laRShfX1NHSV9TVExfUE9SVCkKKworCisKKworCisKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvc3RkbGliL3ZhY3BwLmhwcCBiL2Jvb3N0L2NvbmZpZy9zdGRsaWIvdmFjcHAuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkMTY5NDYKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvc3RkbGliL3ZhY3BwLmhwcApAQCAtMCwwICsxLDU0IEBACisvLyAgKEMpIENvcHlyaWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDIuIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4KKworI2lmIF9fSUJNQ1BQX18gPD0gNTAxCisjICBkZWZpbmUgQk9PU1RfTk9fU1REX0FMTE9DQVRPUgorI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfSEFTX01BQ1JPX1VTRV9GQUNFVAorI2RlZmluZSBCT09TVF9OT19TVERfTUVTU0FHRVMKKworLy8gQXBwbGUgZG9lc24ndCBzZWVtIHRvIHJlbGlhYmx5IGRlZmluZWQgYSAqdW5peCogbWFjcm8KKyNpZiAhZGVmaW5lZChDWUdXSU4pICYmICggIGRlZmluZWQoX191bml4X18pICBcCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWZpbmVkKF9fdW5peCkgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZCh1bml4KSAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRlZmluZWQoX19BUFBMRV9fKSBcCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWZpbmVkKF9fQVBQTEUpICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgZGVmaW5lZChBUFBMRSkpCisjICBpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorCisvLyAgQysrMHggaGVhZGVycyBub3QgeWV0IGltcGxlbWVudGVkCisvLworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9BUlJBWQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DSFJPTk8KKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ERUNWVAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9DT05ESVRJT05fVkFSSUFCTEUKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRk9SV0FSRF9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX0ZVVFVSRQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTQorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SQVRJTworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9SRUdFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9TWVNURU1fRVJST1IKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfVEhSRUFECisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RVUExFCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVfVFJBSVRTCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1RZUEVJTkRFWAorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfTUFQCisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9TRVQKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9OVU1FUklDX0xJTUlUUworIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FMTE9DQVRPUgorIyAgZGVmaW5lIEJPT1NUX05PX0NYWDExX0FUT01JQ19TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9TTUFSVF9QVFIKKyMgIGRlZmluZSBCT09TVF9OT19DWFgxMV9IRFJfRlVOQ1RJT05BTAorCisjZGVmaW5lIEJPT1NUX1NURExJQiAiVmlzdWFsIEFnZSBkZWZhdWx0IHN0YW5kYXJkIGxpYnJhcnkiCisKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvc3VmZml4LmhwcCBiL2Jvb3N0L2NvbmZpZy9zdWZmaXguaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhMGViYTEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvc3VmZml4LmhwcApAQCAtMCwwICsxLDkyMCBAQAorLy8gIEJvb3N0IGNvbmZpZy5ocHAgY29uZmlndXJhdGlvbiBoZWFkZXIgZmlsZSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKy8vCWJvb3N0aW5zcGVjdDpuZHByZWNhdGVkX21hY3JvcwktLSB0ZWxsIHRoZSBpbnNwZWN0IHRvb2wgdG8gaWdub3JlIHRoaXMgZmlsZQorCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLTIwMDMgSm9obiBNYWRkb2NrCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxIERhcmluIEFkbGVyCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxIFBldGVyIERpbW92CisvLyAgQ29weXJpZ2h0IChjKSAyMDAyIEJpbGwgS2VtcGYgCisvLyAgQ29weXJpZ2h0IChjKSAyMDAyIEplbnMgTWF1cmVyCisvLyAgQ29weXJpZ2h0IChjKSAyMDAyLTIwMDMgRGF2aWQgQWJyYWhhbXMKKy8vICBDb3B5cmlnaHQgKGMpIDIwMDMgR2VubmFybyBQcm90YQorLy8gIENvcHlyaWdodCAoYykgMjAwMyBFcmljIEZyaWVkbWFuCisvLyAgQ29weXJpZ2h0IChjKSAyMDEwIEVyaWMgSm91cmRhbm5lYXUsIEpvZWwgRmFsY291CisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCisvLyAgQm9vc3QgY29uZmlnLmhwcCBwb2xpY3kgYW5kIHJhdGlvbmFsZSBkb2N1bWVudGF0aW9uIGhhcyBiZWVuIG1vdmVkIHRvCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9jb25maWcvCisvLworLy8gIFRoaXMgZmlsZSBpcyBpbnRlbmRlZCB0byBiZSBzdGFibGUsIGFuZCByZWxhdGl2ZWx5IHVuY2hhbmdpbmcuCisvLyAgSXQgc2hvdWxkIGNvbnRhaW4gYm9pbGVycGxhdGUgY29kZSBvbmx5IC0gbm8gY29tcGlsZXIgc3BlY2lmaWMKKy8vICBjb2RlIHVubGVzcyBpdCBpcyB1bmF2b2lkYWJsZSAtIG5vIGNoYW5nZXMgdW5sZXNzIHVuYXZvaWRhYmxlLgorCisjaWZuZGVmIEJPT1NUX0NPTkZJR19TVUZGSVhfSFBQCisjZGVmaW5lIEJPT1NUX0NPTkZJR19TVUZGSVhfSFBQCisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPj0gNCkKKy8vCisvLyBTb21lIEdDQy00LnggdmVyc2lvbnMgaXNzdWUgd2FybmluZ3MgZXZlbiB3aGVuIF9fZXh0ZW5zaW9uX18gaXMgdXNlZCwKKy8vIHNvIHVzZSB0aGlzIGFzIGEgd29ya2Fyb3VuZDoKKy8vCisjcHJhZ21hIEdDQyBzeXN0ZW1faGVhZGVyCisjZW5kaWYKKworLy8KKy8vIGVuc3VyZSB0aGF0IHZpc2liaWxpdHkgbWFjcm9zIGFyZSBhbHdheXMgZGVmaW5lZCwgdGh1cyBzeW1wbGlmeWluZyB1c2UKKy8vCisjaWZuZGVmIEJPT1NUX1NZTUJPTF9FWFBPUlQKKyMgZGVmaW5lIEJPT1NUX1NZTUJPTF9FWFBPUlQKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9TWU1CT0xfSU1QT1JUCisjIGRlZmluZSBCT09TVF9TWU1CT0xfSU1QT1JUCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfU1lNQk9MX1ZJU0lCTEUKKyMgZGVmaW5lIEJPT1NUX1NZTUJPTF9WSVNJQkxFCisjZW5kaWYKKworLy8KKy8vIGxvb2sgZm9yIGxvbmcgbG9uZyBieSBsb29raW5nIGZvciB0aGUgYXBwcm9wcmlhdGUgbWFjcm9zIGluIDxsaW1pdHMuaD4uCisvLyBOb3RlIHRoYXQgd2UgdXNlIGxpbWl0cy5oIHJhdGhlciB0aGFuIGNsaW1pdHMgZm9yIG1heGltYWwgcG9ydGFiaWxpdHksCisvLyByZW1lbWJlciB0aGF0IHNpbmNlIHRoZXNlIGp1c3QgZGVjbGFyZSBhIGJ1bmNoIG9mIG1hY3JvcywgdGhlcmUgc2hvdWxkIGJlCisvLyBubyBuYW1lc3BhY2UgaXNzdWVzIGZyb20gdGhpcy4KKy8vCisjaWYgIWRlZmluZWQoQk9PU1RfSEFTX0xPTkdfTE9ORykgJiYgIWRlZmluZWQoQk9PU1RfTk9fTE9OR19MT05HKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAmJiAhZGVmaW5lZChCT09TVF9NU1ZDKSAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCisjIGluY2x1ZGUgPGxpbWl0cy5oPgorIyBpZiAoZGVmaW5lZChVTExPTkdfTUFYKSB8fCBkZWZpbmVkKFVMT05HX0xPTkdfTUFYKSB8fCBkZWZpbmVkKFVMT05HTE9OR19NQVgpKQorIyAgIGRlZmluZSBCT09TVF9IQVNfTE9OR19MT05HCisjIGVsc2UKKyMgICBkZWZpbmUgQk9PU1RfTk9fTE9OR19MT05HCisjIGVuZGlmCisjZW5kaWYKKworLy8gR0NDIDMueCB3aWxsIGNsZWFuIHVwIGFsbCBvZiB0aG9zZSBuYXN0eSBtYWNybyBkZWZpbml0aW9ucyB0aGF0CisvLyBCT09TVF9OT19DVFlQRV9GVU5DVElPTlMgaXMgaW50ZW5kZWQgdG8gaGVscCB3b3JrIGFyb3VuZCwgc28gdW5kZWZpbmUKKy8vIGl0IHVuZGVyIEdDQyAzLnguCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fID49IDMpICYmIGRlZmluZWQoQk9PU1RfTk9fQ1RZUEVfRlVOQ1RJT05TKQorIyAgdW5kZWYgQk9PU1RfTk9fQ1RZUEVfRlVOQ1RJT05TCisjZW5kaWYKKworLy8KKy8vIEFzc3VtZSBhbnkgZXh0ZW5zaW9ucyBhcmUgaW4gbmFtZXNwYWNlIHN0ZDo6IHVubGVzcyBzdGF0ZWQgb3RoZXJ3aXNlOgorLy8KKyMgIGlmbmRlZiBCT09TVF9TVERfRVhURU5TSU9OX05BTUVTUEFDRQorIyAgICBkZWZpbmUgQk9PU1RfU1REX0VYVEVOU0lPTl9OQU1FU1BBQ0Ugc3RkCisjICBlbmRpZgorCisvLworLy8gSWYgY3YtcXVhbGlmaWVkIHNwZWNpYWxpemF0aW9ucyBhcmUgbm90IGFsbG93ZWQsIHRoZW4gbmVpdGhlciBhcmUgY3Ytdm9pZCBvbmVzOgorLy8KKyMgIGlmIGRlZmluZWQoQk9PU1RfTk9fQ1ZfU1BFQ0lBTElaQVRJT05TKSBcCisgICAgICAmJiAhZGVmaW5lZChCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUykKKyMgICAgIGRlZmluZSBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworIyAgZW5kaWYKKworLy8KKy8vIElmIHRoZXJlIGlzIG5vIG51bWVyaWNfbGltaXRzIHRlbXBsYXRlLCB0aGVuIGl0IGNhbid0IGhhdmUgYW55IGNvbXBpbGUgdGltZQorLy8gY29uc3RhbnRzIGVpdGhlciEKKy8vCisjICBpZiBkZWZpbmVkKEJPT1NUX05PX0xJTUlUUykgXAorICAgICAgJiYgIWRlZmluZWQoQk9PU1RfTk9fTElNSVRTX0NPTVBJTEVfVElNRV9DT05TVEFOVFMpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fTElNSVRTX0NPTVBJTEVfVElNRV9DT05TVEFOVFMKKyMgICAgIGRlZmluZSBCT09TVF9OT19NU19JTlQ2NF9OVU1FUklDX0xJTUlUUworIyAgICAgZGVmaW5lIEJPT1NUX05PX0xPTkdfTE9OR19OVU1FUklDX0xJTUlUUworIyAgZW5kaWYKKworLy8KKy8vIGlmIHRoZXJlIGlzIG5vIGxvbmcgbG9uZyB0aGVuIHRoZXJlIGlzIG5vIHNwZWNpYWxpc2F0aW9uCisvLyBmb3IgbnVtZXJpY19saW1pdHM8bG9uZyBsb25nPiBlaXRoZXI6CisvLworI2lmICFkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpICYmICFkZWZpbmVkKEJPT1NUX05PX0xPTkdfTE9OR19OVU1FUklDX0xJTUlUUykKKyMgIGRlZmluZSBCT09TVF9OT19MT05HX0xPTkdfTlVNRVJJQ19MSU1JVFMKKyNlbmRpZgorCisvLworLy8gaWYgdGhlcmUgaXMgbm8gX19pbnQ2NCB0aGVuIHRoZXJlIGlzIG5vIHNwZWNpYWxpc2F0aW9uCisvLyBmb3IgbnVtZXJpY19saW1pdHM8X19pbnQ2ND4gZWl0aGVyOgorLy8KKyNpZiAhZGVmaW5lZChCT09TVF9IQVNfTVNfSU5UNjQpICYmICFkZWZpbmVkKEJPT1NUX05PX01TX0lOVDY0X05VTUVSSUNfTElNSVRTKQorIyAgZGVmaW5lIEJPT1NUX05PX01TX0lOVDY0X05VTUVSSUNfTElNSVRTCisjZW5kaWYKKworLy8KKy8vIGlmIG1lbWJlciB0ZW1wbGF0ZXMgYXJlIHN1cHBvcnRlZCB0aGVuIHNvIGlzIHRoZQorLy8gVkM2IHN1YnNldCBvZiBtZW1iZXIgdGVtcGxhdGVzOgorLy8KKyMgIGlmICFkZWZpbmVkKEJPT1NUX05PX01FTUJFUl9URU1QTEFURVMpIFwKKyAgICAgICAmJiAhZGVmaW5lZChCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTKQorIyAgICAgZGVmaW5lIEJPT1NUX01TVkM2X01FTUJFUl9URU1QTEFURVMKKyMgIGVuZGlmCisKKy8vCisvLyBXaXRob3V0IHBhcnRpYWwgc3BlY2lhbGl6YXRpb24sIGNhbid0IHRlc3QgZm9yIHBhcnRpYWwgc3BlY2lhbGlzYXRpb24gYnVnczoKKy8vCisjICBpZiBkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pIFwKKyAgICAgICYmICFkZWZpbmVkKEJPT1NUX0JDQl9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OX0JVRykKKyMgICAgIGRlZmluZSBCT09TVF9CQ0JfUEFSVElBTF9TUEVDSUFMSVpBVElPTl9CVUcKKyMgIGVuZGlmCisKKy8vCisvLyBXaXRob3V0IHBhcnRpYWwgc3BlY2lhbGl6YXRpb24sIHdlIGNhbid0IGhhdmUgYXJyYXktdHlwZSBwYXJ0aWFsIHNwZWNpYWxpc2F0aW9uczoKKy8vCisjICBpZiBkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pIFwKKyAgICAgICYmICFkZWZpbmVkKEJPT1NUX05PX0FSUkFZX1RZUEVfU1BFQ0lBTElaQVRJT05TKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX0FSUkFZX1RZUEVfU1BFQ0lBTElaQVRJT05TCisjICBlbmRpZgorCisvLworLy8gV2l0aG91dCBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uLCBzdGQ6Oml0ZXJhdG9yX3RyYWl0cyBjYW4ndCB3b3JrOgorLy8KKyMgIGlmIGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgXAorICAgICAgJiYgIWRlZmluZWQoQk9PU1RfTk9fU1REX0lURVJBVE9SX1RSQUlUUykKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERfSVRFUkFUT1JfVFJBSVRTCisjICBlbmRpZgorCisvLworLy8gV2l0aG91dCBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uLCBwYXJ0aWFsIAorLy8gc3BlY2lhbGl6YXRpb24gd2l0aCBkZWZhdWx0IGFyZ3Mgd29uJ3Qgd29yayBlaXRoZXI6CisvLworIyAgaWYgZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSBcCisgICAgICAmJiAhZGVmaW5lZChCT09TVF9OT19QQVJUSUFMX1NQRUNJQUxJWkFUSU9OX0lNUExJQ0lUX0RFRkFVTFRfQVJHUykKKyMgICAgIGRlZmluZSBCT09TVF9OT19QQVJUSUFMX1NQRUNJQUxJWkFUSU9OX0lNUExJQ0lUX0RFRkFVTFRfQVJHUworIyAgZW5kaWYKKworLy8KKy8vIFdpdGhvdXQgbWVtYmVyIHRlbXBsYXRlIHN1cHBvcnQsIHdlIGNhbid0IGhhdmUgdGVtcGxhdGUgY29uc3RydWN0b3JzCisvLyBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSBlaXRoZXI6CisvLworIyAgaWYgZGVmaW5lZChCT09TVF9OT19NRU1CRVJfVEVNUExBVEVTKSBcCisgICAgICAmJiAhZGVmaW5lZChCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTKSBcCisgICAgICAmJiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURURfSVRFUkFUT1JfQ09OU1RSVUNUT1JTKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX1RFTVBMQVRFRF9JVEVSQVRPUl9DT05TVFJVQ1RPUlMKKyMgIGVuZGlmCisKKy8vCisvLyBXaXRob3V0IG1lbWJlciB0ZW1wbGF0ZSBzdXBwb3J0LCB3ZSBjYW4ndCBoYXZlIGEgY29uZm9ybWluZworLy8gc3RkOjphbGxvY2F0b3IgdGVtcGxhdGUgZWl0aGVyOgorLy8KKyMgIGlmIGRlZmluZWQoQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFUykgXAorICAgICAgJiYgIWRlZmluZWQoQk9PU1RfTVNWQzZfTUVNQkVSX1RFTVBMQVRFUykgXAorICAgICAgJiYgIWRlZmluZWQoQk9PU1RfTk9fU1REX0FMTE9DQVRPUikKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERfQUxMT0NBVE9SCisjICBlbmRpZgorCisvLworLy8gd2l0aG91dCBBREwgc3VwcG9ydCB0aGVuIHVzaW5nIGRlY2xhcmF0aW9ucyB3aWxsIGJyZWFrIEFETCBhcyB3ZWxsOgorLy8KKyNpZiBkZWZpbmVkKEJPT1NUX05PX0FSR1VNRU5UX0RFUEVOREVOVF9MT09LVVApICYmICFkZWZpbmVkKEJPT1NUX0ZVTkNUSU9OX1NDT1BFX1VTSU5HX0RFQ0xBUkFUSU9OX0JSRUFLU19BREwpCisjICBkZWZpbmUgQk9PU1RfRlVOQ1RJT05fU0NPUEVfVVNJTkdfREVDTEFSQVRJT05fQlJFQUtTX0FETAorI2VuZGlmCisKKy8vCisvLyBXaXRob3V0IHR5cGVpZCBzdXBwb3J0IHdlIGhhdmUgbm8gZHluYW1pYyBSVFRJIGVpdGhlcjoKKy8vCisjaWYgZGVmaW5lZChCT09TVF9OT19UWVBFSUQpICYmICFkZWZpbmVkKEJPT1NUX05PX1JUVEkpCisjICBkZWZpbmUgQk9PU1RfTk9fUlRUSQorI2VuZGlmCisKKy8vCisvLyBJZiB3ZSBoYXZlIGEgc3RhbmRhcmQgYWxsb2NhdG9yLCB0aGVuIHdlIGhhdmUgYSBwYXJ0aWFsIG9uZSBhcyB3ZWxsOgorLy8KKyNpZiAhZGVmaW5lZChCT09TVF9OT19TVERfQUxMT0NBVE9SKQorIyAgZGVmaW5lIEJPT1NUX0hBU19QQVJUSUFMX1NURF9BTExPQ0FUT1IKKyNlbmRpZgorCisvLworLy8gV2UgY2FuJ3QgaGF2ZSBhIHdvcmtpbmcgc3RkOjp1c2VfZmFjZXQgaWYgdGhlcmUgaXMgbm8gc3RkOjpsb2NhbGU6CisvLworIyAgaWYgZGVmaW5lZChCT09TVF9OT19TVERfTE9DQUxFKSAmJiAhZGVmaW5lZChCT09TVF9OT19TVERfVVNFX0ZBQ0VUKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX1NURF9VU0VfRkFDRVQKKyMgIGVuZGlmCisKKy8vCisvLyBXZSBjYW4ndCBoYXZlIGEgc3RkOjptZXNzYWdlcyBmYWNldCBpZiB0aGVyZSBpcyBubyBzdGQ6OmxvY2FsZToKKy8vCisjICBpZiBkZWZpbmVkKEJPT1NUX05PX1NURF9MT0NBTEUpICYmICFkZWZpbmVkKEJPT1NUX05PX1NURF9NRVNTQUdFUykKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERfTUVTU0FHRVMKKyMgIGVuZGlmCisKKy8vCisvLyBXZSBjYW4ndCBoYXZlIGEgd29ya2luZyBzdGQ6OndzdHJlYW1idWYgaWYgdGhlcmUgaXMgbm8gc3RkOjpsb2NhbGU6CisvLworIyAgaWYgZGVmaW5lZChCT09TVF9OT19TVERfTE9DQUxFKSAmJiAhZGVmaW5lZChCT09TVF9OT19TVERfV1NUUkVBTUJVRikKKyMgICAgIGRlZmluZSBCT09TVF9OT19TVERfV1NUUkVBTUJVRgorIyAgZW5kaWYKKworLy8KKy8vIFdlIGNhbid0IGhhdmUgYSA8Y3djdHlwZT4gaWYgdGhlcmUgaXMgbm8gPGN3Y2hhcj46CisvLworIyAgaWYgZGVmaW5lZChCT09TVF9OT19DV0NIQVIpICYmICFkZWZpbmVkKEJPT1NUX05PX0NXQ1RZUEUpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fQ1dDVFlQRQorIyAgZW5kaWYKKworLy8KKy8vIFdlIGNhbid0IGhhdmUgYSBzd3ByaW50ZiBpZiB0aGVyZSBpcyBubyA8Y3djaGFyPjoKKy8vCisjICBpZiBkZWZpbmVkKEJPT1NUX05PX0NXQ0hBUikgJiYgIWRlZmluZWQoQk9PU1RfTk9fU1dQUklOVEYpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU1dQUklOVEYKKyMgIGVuZGlmCisKKy8vCisvLyBJZiBXaW4zMiBzdXBwb3J0IGlzIHR1cm5lZCBvZmYsIHRoZW4gd2UgbXVzdCB0dXJuIG9mZgorLy8gdGhyZWFkaW5nIHN1cHBvcnQgYWxzbywgdW5sZXNzIHRoZXJlIGlzIHNvbWUgb3RoZXIKKy8vIHRocmVhZCBBUEkgZW5hYmxlZDoKKy8vCisjaWYgZGVmaW5lZChCT09TVF9ESVNBQkxFX1dJTjMyKSAmJiBkZWZpbmVkKF9XSU4zMikgXAorICAgJiYgIWRlZmluZWQoQk9PU1RfRElTQUJMRV9USFJFQURTKSAmJiAhZGVmaW5lZChCT09TVF9IQVNfUFRIUkVBRFMpCisjICBkZWZpbmUgQk9PU1RfRElTQUJMRV9USFJFQURTCisjZW5kaWYKKworLy8KKy8vIFR1cm4gb24gdGhyZWFkaW5nIHN1cHBvcnQgaWYgdGhlIGNvbXBpbGVyIHRoaW5rcyB0aGF0IGl0J3MgaW4KKy8vIG11bHRpdGhyZWFkZWQgbW9kZS4gIFdlIHB1dCB0aGlzIGhlcmUgYmVjYXVzZSB0aGVyZSBhcmUgb25seSBhCisvLyBsaW1pdGVkIG51bWJlciBvZiBtYWNyb3MgdGhhdCBpZGVudGlmeSB0aGlzIChpZiB0aGVyZSdzIGFueSBtaXNzaW5nCisvLyBmcm9tIGhlcmUgdGhlbiBhZGQgdG8gdGhlIGFwcHJvcHJpYXRlIGNvbXBpbGVyIHNlY3Rpb24pOgorLy8KKyNpZiAoZGVmaW5lZChfX01UX18pIHx8IGRlZmluZWQoX01UKSB8fCBkZWZpbmVkKF9SRUVOVFJBTlQpIFwKKyAgICB8fCBkZWZpbmVkKF9QVEhSRUFEUykgfHwgZGVmaW5lZChfX0FQUExFX18pIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9IQVNfVEhSRUFEUykKKyMgIGRlZmluZSBCT09TVF9IQVNfVEhSRUFEUworI2VuZGlmCisKKy8vCisvLyBUdXJuIHRocmVhZGluZyBzdXBwb3J0IG9mZiBpZiBCT09TVF9ESVNBQkxFX1RIUkVBRFMgaXMgZGVmaW5lZDoKKy8vCisjaWYgZGVmaW5lZChCT09TVF9ESVNBQkxFX1RIUkVBRFMpICYmIGRlZmluZWQoQk9PU1RfSEFTX1RIUkVBRFMpCisjICB1bmRlZiBCT09TVF9IQVNfVEhSRUFEUworI2VuZGlmCisKKy8vCisvLyBUdXJuIHRocmVhZGluZyBzdXBwb3J0IG9mZiBpZiB3ZSBkb24ndCByZWNvZ25pc2UgdGhlIHRocmVhZGluZyBBUEk6CisvLworI2lmIGRlZmluZWQoQk9PU1RfSEFTX1RIUkVBRFMpICYmICFkZWZpbmVkKEJPT1NUX0hBU19QVEhSRUFEUylcCisgICAgICAmJiAhZGVmaW5lZChCT09TVF9IQVNfV0lOVEhSRUFEUykgJiYgIWRlZmluZWQoQk9PU1RfSEFTX0JFVEhSRUFEUylcCisgICAgICAmJiAhZGVmaW5lZChCT09TVF9IQVNfTVBUQVNLUykKKyMgIHVuZGVmIEJPT1NUX0hBU19USFJFQURTCisjZW5kaWYKKworLy8KKy8vIFR1cm4gdGhyZWFkaW5nIGRldGFpbCBtYWNyb3Mgb2ZmIGlmIHdlIGRvbid0ICh3YW50IHRvKSB1c2UgdGhyZWFkaW5nCisvLworI2lmbmRlZiBCT09TVF9IQVNfVEhSRUFEUworIyAgdW5kZWYgQk9PU1RfSEFTX1BUSFJFQURTCisjICB1bmRlZiBCT09TVF9IQVNfUFRIUkVBRF9NVVRFWEFUVFJfU0VUVFlQRQorIyAgdW5kZWYgQk9PU1RfSEFTX1BUSFJFQURfWUlFTEQKKyMgIHVuZGVmIEJPT1NUX0hBU19QVEhSRUFEX0RFTEFZX05QCisjICB1bmRlZiBCT09TVF9IQVNfV0lOVEhSRUFEUworIyAgdW5kZWYgQk9PU1RfSEFTX0JFVEhSRUFEUworIyAgdW5kZWYgQk9PU1RfSEFTX01QVEFTS1MKKyNlbmRpZgorCisvLworLy8gSWYgdGhlIGNvbXBpbGVyIGNsYWltcyB0byBiZSBDOTkgY29uZm9ybWFudCwgdGhlbiBpdCBoYWQgYmV0dGVyCisvLyBoYXZlIGEgPHN0ZGludC5oPjoKKy8vCisjICBpZiBkZWZpbmVkKF9fU1REQ19WRVJTSU9OX18pICYmIChfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMSkKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfU1RESU5UX0gKKyMgICAgIGlmbmRlZiBCT09TVF9IQVNfTE9HMVAKKyMgICAgICAgIGRlZmluZSBCT09TVF9IQVNfTE9HMVAKKyMgICAgIGVuZGlmCisjICAgICBpZm5kZWYgQk9PU1RfSEFTX0VYUE0xCisjICAgICAgICBkZWZpbmUgQk9PU1RfSEFTX0VYUE0xCisjICAgICBlbmRpZgorIyAgZW5kaWYKKworLy8KKy8vIERlZmluZSBCT09TVF9OT19TTElTVCBhbmQgQk9PU1RfTk9fSEFTSCBpZiByZXF1aXJlZC4KKy8vIE5vdGUgdGhhdCB0aGlzIGlzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBvbmx5LgorLy8KKyMgIGlmICFkZWZpbmVkKEJPT1NUX0hBU19TTElTVCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fU0xJU1QpCisjICAgICBkZWZpbmUgQk9PU1RfTk9fU0xJU1QKKyMgIGVuZGlmCisKKyMgIGlmICFkZWZpbmVkKEJPT1NUX0hBU19IQVNIKSAmJiAhZGVmaW5lZChCT09TVF9OT19IQVNIKQorIyAgICAgZGVmaW5lIEJPT1NUX05PX0hBU0gKKyMgIGVuZGlmCisKKy8vCisvLyBTZXQgQk9PU1RfU0xJU1RfSEVBREVSIGlmIG5vdCBzZXQgYWxyZWFkeToKKy8vCisjaWYgZGVmaW5lZChCT09TVF9IQVNfU0xJU1QpICYmICFkZWZpbmVkKEJPT1NUX1NMSVNUX0hFQURFUikKKyMgIGRlZmluZSBCT09TVF9TTElTVF9IRUFERVIgPHNsaXN0PgorI2VuZGlmCisKKy8vCisvLyBTZXQgQk9PU1RfSEFTSF9TRVRfSEVBREVSIGlmIG5vdCBzZXQgYWxyZWFkeToKKy8vCisjaWYgZGVmaW5lZChCT09TVF9IQVNfSEFTSCkgJiYgIWRlZmluZWQoQk9PU1RfSEFTSF9TRVRfSEVBREVSKQorIyAgZGVmaW5lIEJPT1NUX0hBU0hfU0VUX0hFQURFUiA8aGFzaF9zZXQ+CisjZW5kaWYKKworLy8KKy8vIFNldCBCT09TVF9IQVNIX01BUF9IRUFERVIgaWYgbm90IHNldCBhbHJlYWR5OgorLy8KKyNpZiBkZWZpbmVkKEJPT1NUX0hBU19IQVNIKSAmJiAhZGVmaW5lZChCT09TVF9IQVNIX01BUF9IRUFERVIpCisjICBkZWZpbmUgQk9PU1RfSEFTSF9NQVBfSEVBREVSIDxoYXNoX21hcD4KKyNlbmRpZgorCisvLyAgQk9PU1RfSEFTX0FCSV9IRUFERVJTCisvLyAgVGhpcyBtYWNybyBnZXRzIHNldCBpZiB3ZSBoYXZlIGhlYWRlcnMgdGhhdCBmaXggdGhlIEFCSSwKKy8vICBhbmQgcHJldmVudCBPRFIgdmlvbGF0aW9ucyB3aGVuIGxpbmtpbmcgdG8gZXh0ZXJuYWwgbGlicmFyaWVzOgorI2lmIGRlZmluZWQoQk9PU1RfQUJJX1BSRUZJWCkgJiYgZGVmaW5lZChCT09TVF9BQklfU1VGRklYKSAmJiAhZGVmaW5lZChCT09TVF9IQVNfQUJJX0hFQURFUlMpCisjICBkZWZpbmUgQk9PU1RfSEFTX0FCSV9IRUFERVJTCisjZW5kaWYKKworI2lmIGRlZmluZWQoQk9PU1RfSEFTX0FCSV9IRUFERVJTKSAmJiBkZWZpbmVkKEJPT1NUX0RJU0FCTEVfQUJJX0hFQURFUlMpCisjICB1bmRlZiBCT09TVF9IQVNfQUJJX0hFQURFUlMKKyNlbmRpZgorCisvLyAgQk9PU1RfTk9fU1REQ19OQU1FU1BBQ0Ugd29ya2Fyb3VuZCAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworLy8gIEJlY2F1c2Ugc3RkOjpzaXplX3QgdXNhZ2UgaXMgc28gY29tbW9uLCBldmVuIGluIGJvb3N0IGhlYWRlcnMgd2hpY2ggZG8gbm90CisvLyAgb3RoZXJ3aXNlIHVzZSB0aGUgQyBsaWJyYXJ5LCB0aGUgPGNzdGRkZWY+IHdvcmthcm91bmQgaXMgaW5jbHVkZWQgaGVyZSBzbworLy8gIHRoYXQgdWdseSB3b3JrYXJvdW5kIGNvZGUgbmVlZCBub3QgYXBwZWFyIGluIG1hbnkgb3RoZXIgYm9vc3QgaGVhZGVycy4KKy8vICBOT1RFIFdFTEw6IFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBub24tY29uZm9ybWluZyBjb21waWxlcnM7IDxjc3RkZGVmPgorLy8gIG11c3Qgc3RpbGwgYmUgI2luY2x1ZGVkIGluIHRoZSB1c3VhbCBwbGFjZXMgc28gdGhhdCA8Y3N0ZGRlZj4gaW5jbHVzaW9uCisvLyAgd29ya3MgYXMgZXhwZWN0ZWQgd2l0aCBzdGFuZGFyZCBjb25mb3JtaW5nIGNvbXBpbGVycy4gIFRoZSByZXN1bHRpbmcKKy8vICBkb3VibGUgaW5jbHVzaW9uIG9mIDxjc3RkZGVmPiBpcyBoYXJtbGVzcy4KKworIyBpZiBkZWZpbmVkKEJPT1NUX05PX1NURENfTkFNRVNQQUNFKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorIyAgIGluY2x1ZGUgPGNzdGRkZWY+CisgICAgbmFtZXNwYWNlIHN0ZCB7IHVzaW5nIDo6cHRyZGlmZl90OyB1c2luZyA6OnNpemVfdDsgfQorIyBlbmRpZgorCisvLyAgV29ya2Fyb3VuZCBmb3IgdGhlIHVuZm9ydHVuYXRlIG1pbi9tYXggbWFjcm9zIGRlZmluZWQgYnkgc29tZSBwbGF0Zm9ybSBoZWFkZXJzCisKKyNkZWZpbmUgQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04KKworI2lmbmRlZiBCT09TVF9VU0lOR19TVERfTUlOCisjICBkZWZpbmUgQk9PU1RfVVNJTkdfU1REX01JTigpIHVzaW5nIHN0ZDo6bWluCisjZW5kaWYKKworI2lmbmRlZiBCT09TVF9VU0lOR19TVERfTUFYCisjICBkZWZpbmUgQk9PU1RfVVNJTkdfU1REX01BWCgpIHVzaW5nIHN0ZDo6bWF4CisjZW5kaWYKKworLy8gIEJPT1NUX05PX1NURF9NSU5fTUFYIHdvcmthcm91bmQgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKworIyAgaWYgZGVmaW5lZChCT09TVF9OT19TVERfTUlOX01BWCkgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKKworbmFtZXNwYWNlIHN0ZCB7CisgIHRlbXBsYXRlIDxjbGFzcyBfVHA+CisgIGlubGluZSBjb25zdCBfVHAmIG1pbiBCT09TVF9QUkVWRU5UX01BQ1JPX1NVQlNUSVRVVElPTiAoY29uc3QgX1RwJiBfX2EsIGNvbnN0IF9UcCYgX19iKSB7CisgICAgcmV0dXJuIF9fYiA8IF9fYSA/IF9fYiA6IF9fYTsKKyAgfQorICB0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgorICBpbmxpbmUgY29uc3QgX1RwJiBtYXggQk9PU1RfUFJFVkVOVF9NQUNST19TVUJTVElUVVRJT04gKGNvbnN0IF9UcCYgX19hLCBjb25zdCBfVHAmIF9fYikgeworICAgIHJldHVybiAgX19hIDwgX19iID8gX19iIDogX19hOworICB9Cit9CisKKyMgIGVuZGlmCisKKy8vIEJPT1NUX1NUQVRJQ19DT05TVEFOVCB3b3JrYXJvdW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvLworLy8gT24gY29tcGlsZXJzIHdoaWNoIGRvbid0IGFsbG93IGluLWNsYXNzIGluaXRpYWxpemF0aW9uIG9mIHN0YXRpYyBpbnRlZ3JhbAorLy8gY29uc3RhbnQgbWVtYmVycywgd2UgbXVzdCB1c2UgZW51bXMgYXMgYSB3b3JrYXJvdW5kIGlmIHdlIHdhbnQgdGhlIGNvbnN0YW50cworLy8gdG8gYmUgYXZhaWxhYmxlIGF0IGNvbXBpbGUtdGltZS4gVGhpcyBtYWNybyBnaXZlcyB1cyBhIGNvbnZlbmllbnQgd2F5IHRvCisvLyBkZWNsYXJlIHN1Y2ggY29uc3RhbnRzLgorCisjICBpZmRlZiBCT09TVF9OT19JTkNMQVNTX01FTUJFUl9JTklUSUFMSVpBVElPTgorIyAgICAgICBkZWZpbmUgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHR5cGUsIGFzc2lnbm1lbnQpIGVudW0geyBhc3NpZ25tZW50IH0KKyMgIGVsc2UKKyMgICAgIGRlZmluZSBCT09TVF9TVEFUSUNfQ09OU1RBTlQodHlwZSwgYXNzaWdubWVudCkgc3RhdGljIGNvbnN0IHR5cGUgYXNzaWdubWVudAorIyAgZW5kaWYKKworLy8gQk9PU1RfVVNFX0ZBQ0VUIC8gSEFTX0ZBQ0VUIHdvcmthcm91bmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisvLyBXaGVuIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IGRvZXMgbm90IGhhdmUgYSBjb25mb3JtaW5nIHN0ZDo6dXNlX2ZhY2V0IHRoZXJlCisvLyBhcmUgdmFyaW91cyB3b3JrYXJvdW5kcyBhdmFpbGFibGUsIGJ1dCB0aGV5IGRpZmZlciBmcm9tIGxpYnJhcnkgdG8gbGlicmFyeS4KKy8vIFRoZSBzYW1lIHByb2JsZW0gb2NjdXJzIHdpdGggaGFzX2ZhY2V0LgorLy8gVGhlc2UgbWFjcm9zIHByb3ZpZGUgYSBjb25zaXN0ZW50IHdheSB0byBhY2Nlc3MgYSBsb2NhbGUncyBmYWNldHMuCisvLyBVc2FnZToKKy8vICAgIHJlcGxhY2UKKy8vICAgICAgIHN0ZDo6dXNlX2ZhY2V0PFR5cGU+KGxvYyk7CisvLyAgICB3aXRoCisvLyAgICAgICBCT09TVF9VU0VfRkFDRVQoVHlwZSwgbG9jKTsKKy8vICAgIE5vdGUgZG8gbm90IGFkZCBhIHN0ZDo6IHByZWZpeCB0byB0aGUgZnJvbnQgb2YgQk9PU1RfVVNFX0ZBQ0VUIQorLy8gIFVzZSBmb3IgQk9PU1RfSEFTX0ZBQ0VUIGlzIGFuYWxvZ291cy4KKworI2lmIGRlZmluZWQoQk9PU1RfTk9fU1REX1VTRV9GQUNFVCkKKyMgIGlmZGVmIEJPT1NUX0hBU19UV09fQVJHX1VTRV9GQUNFVAorIyAgICAgZGVmaW5lIEJPT1NUX1VTRV9GQUNFVChUeXBlLCBsb2MpIHN0ZDo6dXNlX2ZhY2V0KGxvYywgc3RhdGljX2Nhc3Q8VHlwZSo+KDApKQorIyAgICAgZGVmaW5lIEJPT1NUX0hBU19GQUNFVChUeXBlLCBsb2MpIHN0ZDo6aGFzX2ZhY2V0KGxvYywgc3RhdGljX2Nhc3Q8VHlwZSo+KDApKQorIyAgZWxpZiBkZWZpbmVkKEJPT1NUX0hBU19NQUNST19VU0VfRkFDRVQpCisjICAgICBkZWZpbmUgQk9PU1RfVVNFX0ZBQ0VUKFR5cGUsIGxvYykgc3RkOjpfVVNFKGxvYywgVHlwZSkKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfRkFDRVQoVHlwZSwgbG9jKSBzdGQ6Ol9IQVMobG9jLCBUeXBlKQorIyAgZWxpZiBkZWZpbmVkKEJPT1NUX0hBU19TVExQX1VTRV9GQUNFVCkKKyMgICAgIGRlZmluZSBCT09TVF9VU0VfRkFDRVQoVHlwZSwgbG9jKSAoKnN0ZDo6X1VzZV9mYWNldDxUeXBlID4obG9jKSkKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfRkFDRVQoVHlwZSwgbG9jKSBzdGQ6Omhhc19mYWNldDwgVHlwZSA+KGxvYykKKyMgIGVuZGlmCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX1VTRV9GQUNFVChUeXBlLCBsb2MpIHN0ZDo6dXNlX2ZhY2V0PCBUeXBlID4obG9jKQorIyAgZGVmaW5lIEJPT1NUX0hBU19GQUNFVChUeXBlLCBsb2MpIHN0ZDo6aGFzX2ZhY2V0PCBUeXBlID4obG9jKQorI2VuZGlmCisKKy8vIEJPT1NUX05FU1RFRF9URU1QTEFURSB3b3JrYXJvdW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisvLyBNZW1iZXIgdGVtcGxhdGVzIGFyZSBzdXBwb3J0ZWQgYnkgc29tZSBjb21waWxlcnMgZXZlbiB0aG91Z2ggdGhleSBjYW4ndCB1c2UKKy8vIHRoZSBBOjp0ZW1wbGF0ZSBtZW1iZXI8VT4gc3ludGF4LCBhcyBhIHdvcmthcm91bmQgcmVwbGFjZToKKy8vCisvLyB0eXBlZGVmIHR5cGVuYW1lIEE6OnRlbXBsYXRlIHJlYmluZDxVPiBiaW5kZXI7CisvLworLy8gd2l0aDoKKy8vCisvLyB0eXBlZGVmIHR5cGVuYW1lIEE6OkJPT1NUX05FU1RFRF9URU1QTEFURSByZWJpbmQ8VT4gYmluZGVyOworCisjaWZuZGVmIEJPT1NUX05PX01FTUJFUl9URU1QTEFURV9LRVlXT1JECisjICBkZWZpbmUgQk9PU1RfTkVTVEVEX1RFTVBMQVRFIHRlbXBsYXRlCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX05FU1RFRF9URU1QTEFURQorI2VuZGlmCisKKy8vIEJPT1NUX1VOUkVBQ0hBQkxFX1JFVFVSTih4KSB3b3JrYXJvdW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworLy8gTm9ybWFsbHkgZXZhbHVhdGVzIHRvIG5vdGhpbmcsIHVubGVzcyBCT09TVF9OT19VTlJFQUNIQUJMRV9SRVRVUk5fREVURUNUSU9OCisvLyBpcyBkZWZpbmVkLCBpbiB3aGljaCBjYXNlIGl0IGV2YWx1YXRlcyB0byByZXR1cm4geDsgVXNlIHdoZW4geW91IGhhdmUgYSByZXR1cm4KKy8vIHN0YXRlbWVudCB0aGF0IGNhbiBuZXZlciBiZSByZWFjaGVkLgorCisjaWZkZWYgQk9PU1RfTk9fVU5SRUFDSEFCTEVfUkVUVVJOX0RFVEVDVElPTgorIyAgZGVmaW5lIEJPT1NUX1VOUkVBQ0hBQkxFX1JFVFVSTih4KSByZXR1cm4geDsKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfVU5SRUFDSEFCTEVfUkVUVVJOKHgpCisjZW5kaWYKKworLy8gQk9PU1RfREVEVUNFRF9UWVBFTkFNRSB3b3JrYXJvdW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisvLworLy8gU29tZSBjb21waWxlcnMgZG9uJ3Qgc3VwcG9ydCB0aGUgdXNlIG9mIGB0eXBlbmFtZScgZm9yIGRlcGVuZGVudAorLy8gdHlwZXMgaW4gZGVkdWNlZCBjb250ZXh0cywgZS5nLgorLy8KKy8vICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4gdm9pZCBmKFQsIHR5cGVuYW1lIFQ6OnR5cGUpOworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXl4KKy8vIFJlcGxhY2UgdGhlc2UgZGVjbGFyYXRpb25zIHdpdGg6CisvLworLy8gICAgIHRlbXBsYXRlIDxjbGFzcyBUPiB2b2lkIGYoVCwgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSBUOjp0eXBlKTsKKworI2lmbmRlZiBCT09TVF9OT19ERURVQ0VEX1RZUEVOQU1FCisjICBkZWZpbmUgQk9PU1RfREVEVUNFRF9UWVBFTkFNRSB0eXBlbmFtZQorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9ERURVQ0VEX1RZUEVOQU1FCisjZW5kaWYKKworI2lmbmRlZiBCT09TVF9OT19UWVBFTkFNRV9XSVRIX0NUT1IKKyMgIGRlZmluZSBCT09TVF9DVE9SX1RZUEVOQU1FIHR5cGVuYW1lCisjZWxzZQorIyAgZGVmaW5lIEJPT1NUX0NUT1JfVFlQRU5BTUUKKyNlbmRpZgorCisvLyBsb25nIGxvbmcgd29ya2Fyb3VuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworLy8gT24gZ2NjIChhbmQgbWF5YmUgb3RoZXIgY29tcGlsZXJzPykgbG9uZyBsb25nIGlzIGFsd2F5IHN1cHBvcnRlZAorLy8gYnV0IGl0J3MgdXNlIG1heSBnZW5lcmF0ZSBlaXRoZXIgd2FybmluZ3MgKHdpdGggLWFuc2kpLCBvciBlcnJvcnMKKy8vICh3aXRoIC1wZWRhbnRpYyAtYW5zaSkgdW5sZXNzIGl0J3MgdXNlIGlzIHByZWZpeGVkIGJ5IF9fZXh0ZW5zaW9uX18KKy8vCisjaWYgZGVmaW5lZChCT09TVF9IQVNfTE9OR19MT05HKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorbmFtZXNwYWNlIG5kbmJvb3N0eworIyAgaWZkZWYgX19HTlVDX18KKyAgIF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25nIGxvbmcgbG9uZ19sb25nX3R5cGU7CisgICBfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVsb25nX2xvbmdfdHlwZTsKKyMgIGVsc2UKKyAgIHR5cGVkZWYgbG9uZyBsb25nIGxvbmdfbG9uZ190eXBlOworICAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxvbmdfbG9uZ190eXBlOworIyAgZW5kaWYKK30KKyNlbmRpZgorLy8gc2FtZSBhZ2FpbiBmb3IgX19pbnQxMjg6CisjaWYgZGVmaW5lZChCT09TVF9IQVNfSU5UMTI4KSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorbmFtZXNwYWNlIG5kbmJvb3N0eworIyAgaWZkZWYgX19HTlVDX18KKyAgIF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBfX2ludDEyOCBpbnQxMjhfdHlwZTsKKyAgIF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBfX2ludDEyOCB1aW50MTI4X3R5cGU7CisjICBlbHNlCisgICB0eXBlZGVmIF9faW50MTI4IGludDEyOF90eXBlOworICAgdHlwZWRlZiB1bnNpZ25lZCBfX2ludDEyOCB1aW50MTI4X3R5cGU7CisjICBlbmRpZgorfQorI2VuZGlmCisKKy8vIEJPT1NUX1tBUFBFTkRfXUVYUExJQ0lUX1RFTVBMQVRFX1tOT05fXVRZUEUgbWFjcm9zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKy8vCisvLyBTb21lIGNvbXBpbGVycyBoYXZlIHByb2JsZW1zIHdpdGggZnVuY3Rpb24gdGVtcGxhdGVzIHdob3NlIHRlbXBsYXRlCisvLyBwYXJhbWV0ZXJzIGRvbid0IGFwcGVhciBpbiB0aGUgZnVuY3Rpb24gcGFyYW1ldGVyIGxpc3QgKGJhc2ljYWxseQorLy8gdGhleSBqdXN0IGxpbmsgb25lIGluc3RhbnRpYXRpb24gb2YgdGhlIHRlbXBsYXRlIGluIHRoZSBmaW5hbAorLy8gZXhlY3V0YWJsZSkuIFRoZXNlIG1hY3JvcyBwcm92aWRlIGEgdW5pZm9ybSB3YXkgdG8gY29wZSB3aXRoIHRoZQorLy8gcHJvYmxlbSB3aXRoIG5vIGVmZmVjdHMgb24gdGhlIGNhbGxpbmcgc3ludGF4LgorCisvLyBFeGFtcGxlOgorLy8KKy8vICAjaW5jbHVkZSA8aW9zdHJlYW0+CisvLyAgI2luY2x1ZGUgPG9zdHJlYW0+CisvLyAgI2luY2x1ZGUgPHR5cGVpbmZvPgorLy8KKy8vICB0ZW1wbGF0ZSA8aW50IG4+CisvLyAgdm9pZCBmKCkgeyBzdGQ6OmNvdXQgPDwgbiA8PCAnICc7IH0KKy8vCisvLyAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisvLyAgdm9pZCBnKCkgeyBzdGQ6OmNvdXQgPDwgdHlwZWlkKFQpLm5hbWUoKSA8PCAnICc7IH0KKy8vCisvLyAgaW50IG1haW4oKSB7CisvLyAgICBmPDE+KCk7CisvLyAgICBmPDI+KCk7CisvLworLy8gICAgZzxpbnQ+KCk7CisvLyAgICBnPGRvdWJsZT4oKTsKKy8vICB9CisvLworLy8gV2l0aCBWQysrIDYuMCB0aGUgb3V0cHV0IGlzOgorLy8KKy8vICAgMiAyIGRvdWJsZSBkb3VibGUKKy8vCisvLyBUbyBmaXggaXQsIHdyaXRlCisvLworLy8gICB0ZW1wbGF0ZSA8aW50IG4+CisvLyAgIHZvaWQgZihCT09TVF9FWFBMSUNJVF9URU1QTEFURV9OT05fVFlQRShpbnQsIG4pKSB7IC4uLiB9CisvLworLy8gICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKy8vICAgdm9pZCBnKEJPT1NUX0VYUExJQ0lUX1RFTVBMQVRFX1RZUEUoVCkpIHsgLi4uIH0KKy8vCisKKworI2lmIGRlZmluZWQoQk9PU1RfTk9fRVhQTElDSVRfRlVOQ1RJT05fVEVNUExBVEVfQVJHVU1FTlRTKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorCisjICBpbmNsdWRlICJib29zdC90eXBlLmhwcCIKKyMgIGluY2x1ZGUgImJvb3N0L25vbl90eXBlLmhwcCIKKworIyAgZGVmaW5lIEJPT1NUX0VYUExJQ0lUX1RFTVBMQVRFX1RZUEUodCkgICAgICAgICAgICAgIG5kbmJvb3N0Ojp0eXBlPHQ+KiA9IDAKKyMgIGRlZmluZSBCT09TVF9FWFBMSUNJVF9URU1QTEFURV9UWVBFX1NQRUModCkgICAgICAgICBuZG5ib29zdDo6dHlwZTx0PioKKyMgIGRlZmluZSBCT09TVF9FWFBMSUNJVF9URU1QTEFURV9OT05fVFlQRSh0LCB2KSAgICAgICBuZG5ib29zdDo6bm9uX3R5cGU8dCwgdj4qID0gMAorIyAgZGVmaW5lIEJPT1NUX0VYUExJQ0lUX1RFTVBMQVRFX05PTl9UWVBFX1NQRUModCwgdikgIG5kbmJvb3N0Ojpub25fdHlwZTx0LCB2PioKKworIyAgZGVmaW5lIEJPT1NUX0FQUEVORF9FWFBMSUNJVF9URU1QTEFURV9UWVBFKHQpICAgICAgICBcCisgICAgICAgICAgICAgLCBCT09TVF9FWFBMSUNJVF9URU1QTEFURV9UWVBFKHQpCisjICBkZWZpbmUgQk9PU1RfQVBQRU5EX0VYUExJQ0lUX1RFTVBMQVRFX1RZUEVfU1BFQyh0KSAgIFwKKyAgICAgICAgICAgICAsIEJPT1NUX0VYUExJQ0lUX1RFTVBMQVRFX1RZUEVfU1BFQyh0KQorIyAgZGVmaW5lIEJPT1NUX0FQUEVORF9FWFBMSUNJVF9URU1QTEFURV9OT05fVFlQRSh0LCB2KSBcCisgICAgICAgICAgICAgLCBCT09TVF9FWFBMSUNJVF9URU1QTEFURV9OT05fVFlQRSh0LCB2KQorIyAgZGVmaW5lIEJPT1NUX0FQUEVORF9FWFBMSUNJVF9URU1QTEFURV9OT05fVFlQRV9TUEVDKHQsIHYpICAgIFwKKyAgICAgICAgICAgICAsIEJPT1NUX0VYUExJQ0lUX1RFTVBMQVRFX05PTl9UWVBFX1NQRUModCwgdikKKworI2Vsc2UKKworLy8gbm8gd29ya2Fyb3VuZCBuZWVkZWQ6IGV4cGFuZCB0byBub3RoaW5nCisKKyMgIGRlZmluZSBCT09TVF9FWFBMSUNJVF9URU1QTEFURV9UWVBFKHQpCisjICBkZWZpbmUgQk9PU1RfRVhQTElDSVRfVEVNUExBVEVfVFlQRV9TUEVDKHQpCisjICBkZWZpbmUgQk9PU1RfRVhQTElDSVRfVEVNUExBVEVfTk9OX1RZUEUodCwgdikKKyMgIGRlZmluZSBCT09TVF9FWFBMSUNJVF9URU1QTEFURV9OT05fVFlQRV9TUEVDKHQsIHYpCisKKyMgIGRlZmluZSBCT09TVF9BUFBFTkRfRVhQTElDSVRfVEVNUExBVEVfVFlQRSh0KQorIyAgZGVmaW5lIEJPT1NUX0FQUEVORF9FWFBMSUNJVF9URU1QTEFURV9UWVBFX1NQRUModCkKKyMgIGRlZmluZSBCT09TVF9BUFBFTkRfRVhQTElDSVRfVEVNUExBVEVfTk9OX1RZUEUodCwgdikKKyMgIGRlZmluZSBCT09TVF9BUFBFTkRfRVhQTElDSVRfVEVNUExBVEVfTk9OX1RZUEVfU1BFQyh0LCB2KQorCisKKyNlbmRpZiAvLyBkZWZpbmVkIEJPT1NUX05PX0VYUExJQ0lUX0ZVTkNUSU9OX1RFTVBMQVRFX0FSR1VNRU5UUworCisvLyBXaGVuIEJPT1NUX05PX1NURF9UWVBFSU5GTyBpcyBkZWZpbmVkLCB3ZSBjYW4ganVzdCBpbXBvcnQKKy8vIHRoZSBnbG9iYWwgZGVmaW5pdGlvbiBpbnRvIHN0ZCBuYW1lc3BhY2U6CisjaWYgZGVmaW5lZChCT09TVF9OT19TVERfVFlQRUlORk8pICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCisjaW5jbHVkZSA8dHlwZWluZm8+CituYW1lc3BhY2Ugc3RkeyB1c2luZyA6OnR5cGVfaW5mbzsgfQorI2VuZGlmCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vCisvLyBIZWxwZXIgbWFjcm8gQk9PU1RfU1RSSU5HSVpFOgorLy8gQ29udmVydHMgdGhlIHBhcmFtZXRlciBYIHRvIGEgc3RyaW5nIGFmdGVyIG1hY3JvIHJlcGxhY2VtZW50CisvLyBvbiBYIGhhcyBiZWVuIHBlcmZvcm1lZC4KKy8vCisjZGVmaW5lIEJPT1NUX1NUUklOR0laRShYKSBCT09TVF9ET19TVFJJTkdJWkUoWCkKKyNkZWZpbmUgQk9PU1RfRE9fU1RSSU5HSVpFKFgpICNYCisKKy8vCisvLyBIZWxwZXIgbWFjcm8gQk9PU1RfSk9JTjoKKy8vIFRoZSBmb2xsb3dpbmcgcGllY2Ugb2YgbWFjcm8gbWFnaWMgam9pbnMgdGhlIHR3bworLy8gYXJndW1lbnRzIHRvZ2V0aGVyLCBldmVuIHdoZW4gb25lIG9mIHRoZSBhcmd1bWVudHMgaXMKKy8vIGl0c2VsZiBhIG1hY3JvIChzZWUgMTYuMy4xIGluIEMrKyBzdGFuZGFyZCkuICBUaGUga2V5CisvLyBpcyB0aGF0IG1hY3JvIGV4cGFuc2lvbiBvZiBtYWNybyBhcmd1bWVudHMgZG9lcyBub3QKKy8vIG9jY3VyIGluIEJPT1NUX0RPX0pPSU4yIGJ1dCBkb2VzIGluIEJPT1NUX0RPX0pPSU4uCisvLworI2RlZmluZSBCT09TVF9KT0lOKCBYLCBZICkgQk9PU1RfRE9fSk9JTiggWCwgWSApCisjZGVmaW5lIEJPT1NUX0RPX0pPSU4oIFgsIFkgKSBCT09TVF9ET19KT0lOMihYLFkpCisjZGVmaW5lIEJPT1NUX0RPX0pPSU4yKCBYLCBZICkgWCMjWQorCisvLworLy8gU2V0IHNvbWUgZGVmYXVsdCB2YWx1ZXMgZm9yIGNvbXBpbGVyL2xpYnJhcnkvcGxhdGZvcm0gbmFtZXMuCisvLyBUaGVzZSBhcmUgZm9yIGRlYnVnZ2luZyBjb25maWcgc2V0dXAgb25seToKKy8vCisjICBpZm5kZWYgQk9PU1RfQ09NUElMRVIKKyMgICAgIGRlZmluZSBCT09TVF9DT01QSUxFUiAiVW5rbm93biBJU08gQysrIENvbXBpbGVyIgorIyAgZW5kaWYKKyMgIGlmbmRlZiBCT09TVF9TVERMSUIKKyMgICAgIGRlZmluZSBCT09TVF9TVERMSUIgIlVua25vd24gSVNPIHN0YW5kYXJkIGxpYnJhcnkiCisjICBlbmRpZgorIyAgaWZuZGVmIEJPT1NUX1BMQVRGT1JNCisjICAgICBpZiBkZWZpbmVkKHVuaXgpIHx8IGRlZmluZWQoX191bml4KSB8fCBkZWZpbmVkKF9YT1BFTl9TT1VSQ0UpIFwKKyAgICAgICAgIHx8IGRlZmluZWQoX1BPU0lYX1NPVVJDRSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QTEFURk9STSAiR2VuZXJpYyBVbml4IgorIyAgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BMQVRGT1JNICJVbmtub3duIgorIyAgICAgZW5kaWYKKyMgIGVuZGlmCisKKy8vCisvLyBTZXQgc29tZSBkZWZhdWx0IHZhbHVlcyBHUFUgc3VwcG9ydAorLy8KKyMgIGlmbmRlZiBCT09TVF9HUFVfRU5BQkxFRAorIyAgZGVmaW5lIEJPT1NUX0dQVV9FTkFCTEVEIAorIyAgZW5kaWYKKworLy8gQk9PU1RfRk9SQ0VJTkxJTkUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KKy8vIE1hY3JvIHRvIHVzZSBpbiBwbGFjZSBvZiAnaW5saW5lJyB0byBmb3JjZSBhIGZ1bmN0aW9uIHRvIGJlIGlubGluZQorI2lmICFkZWZpbmVkKEJPT1NUX0ZPUkNFSU5MSU5FKQorIyAgaWYgZGVmaW5lZChfTVNDX1ZFUikKKyMgICAgZGVmaW5lIEJPT1NUX0ZPUkNFSU5MSU5FIF9fZm9yY2VpbmxpbmUKKyMgIGVsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgX19HTlVDX18gPiAzCisjICAgIGRlZmluZSBCT09TVF9GT1JDRUlOTElORSBpbmxpbmUgX19hdHRyaWJ1dGVfXyAoKGFsd2F5c19pbmxpbmUpKQorIyAgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfRk9SQ0VJTkxJTkUgaW5saW5lCisjICBlbmRpZgorI2VuZGlmCisKKy8vCisvLyBTZXQgQk9PU1RfTk9fREVDTFRZUEVfTjMyNzYgd2hlbiBCT09TVF9OT19ERUNMVFlQRSBpcyBkZWZpbmVkCisvLworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfREVDTFRZUEUpICYmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2KQorI2RlZmluZQlCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NiBCT09TVF9OT19DWFgxMV9ERUNMVFlQRQorI2VuZGlmCisKKy8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLSBEZXByZWNhdGVkIG1hY3JvcyBmb3IgMS41MCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICBUaGVzZSB3aWxsIGdvIGF3YXkgaW4gYSBmdXR1cmUgcmVsZWFzZQorCisvLyAgVXNlIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfU0VUIG9yIEJPT1NUX05PX0NYWDExX0hEUl9VTk9SREVSRURfTUFQCisvLyAgICAgICAgICAgaW5zdGVhZCBvZiBCT09TVF9OT19TVERfVU5PUkRFUkVECisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX01BUCkgfHwgZGVmaW5lZCAoQk9PU1RfTk9fQ1hYMTFfSERSX1VOT1JERVJFRF9TRVQpCisjIGlmbmRlZiBCT09TVF9OT19DWFgxMV9TVERfVU5PUkRFUkVECisjICBkZWZpbmUgQk9PU1RfTk9fQ1hYMTFfU1REX1VOT1JERVJFRAorIyBlbmRpZgorI2VuZGlmCisKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QgaW5zdGVhZCBvZiBCT09TVF9OT19JTklUSUFMSVpFUl9MSVNUUworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX0lOSVRJQUxJWkVSX0xJU1QpICYmICFkZWZpbmVkKEJPT1NUX05PX0lOSVRJQUxJWkVSX0xJU1RTKQorIyAgZGVmaW5lIEJPT1NUX05PX0lOSVRJQUxJWkVSX0xJU1RTCisjZW5kaWYKKworLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfQVJSQVkgaW5zdGVhZCBvZiBCT09TVF9OT18wWF9IRFJfQVJSQVkKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9BUlJBWSkgJiYgIWRlZmluZWQoQk9PU1RfTk9fQk9PU1RfTk9fMFhfSERSX0FSUkFZKQorIyAgZGVmaW5lIEJPT1NUX05PXzBYX0hEUl9BUlJBWQorI2VuZGlmCisvLyAgVXNlIEJPT1NUX05PX0NYWDExX0hEUl9DSFJPTk8gaW5zdGVhZCBvZiBCT09TVF9OT18wWF9IRFJfQ0hST05PCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfQ0hST05PKSAmJiAhZGVmaW5lZChCT09TVF9OT18wWF9IRFJfQ0hST05PKQorIyAgZGVmaW5lIEJPT1NUX05PXzBYX0hEUl9DSFJPTk8KKyNlbmRpZgorLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ERUNWVCBpbnN0ZWFkIG9mIEJPT1NUX05PXzBYX0hEUl9DT0RFQ1ZUCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfQ09ERUNWVCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fMFhfSERSX0NPREVDVlQpCisjICBkZWZpbmUgQk9PU1RfTk9fMFhfSERSX0NPREVDVlQKKyNlbmRpZgorLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfQ09ORElUSU9OX1ZBUklBQkxFIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX0NPTkRJVElPTl9WQVJJQUJMRQorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX0NPTkRJVElPTl9WQVJJQUJMRSkgJiYgIWRlZmluZWQoQk9PU1RfTk9fMFhfSERSX0NPTkRJVElPTl9WQVJJQUJMRSkKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfQ09ORElUSU9OX1ZBUklBQkxFCisjZW5kaWYKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX0ZPUldBUkRfTElTVCBpbnN0ZWFkIG9mIEJPT1NUX05PXzBYX0hEUl9GT1JXQVJEX0xJU1QKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9GT1JXQVJEX0xJU1QpICYmICFkZWZpbmVkKEJPT1NUX05PXzBYX0hEUl9GT1JXQVJEX0xJU1QpCisjICBkZWZpbmUgQk9PU1RfTk9fMFhfSERSX0ZPUldBUkRfTElTVAorI2VuZGlmCisvLyAgVXNlIEJPT1NUX05PX0NYWDExX0hEUl9GVVRVUkUgaW5zdGVhZCBvZiBCT09TVF9OT18wWF9IRFJfRlVUVVJFCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfRlVUVVJFKSAmJiAhZGVmaW5lZChCT09TVF9OT18wWF9IRFJfRlVUVVJFKQorIyAgZGVmaW5lIEJPT1NUX05PXzBYX0hEUl9GVVRVUkUKKyNlbmRpZgorCisvLyAgVXNlIEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUIAorLy8gIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX0lOSVRJQUxJWkVSX0xJU1Qgb3IgQk9PU1RfTk9fSU5JVElBTElaRVJfTElTVFMKKyNpZmRlZiBCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVAorIyBpZm5kZWYgQk9PU1RfTk9fMFhfSERSX0lOSVRJQUxJWkVSX0xJU1QKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfSU5JVElBTElaRVJfTElTVAorIyBlbmRpZgorIyBpZm5kZWYgQk9PU1RfTk9fSU5JVElBTElaRVJfTElTVFMKKyMgIGRlZmluZSBCT09TVF9OT19JTklUSUFMSVpFUl9MSVNUUworIyBlbmRpZgorI2VuZGlmCisKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX01VVEVYIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX01VVEVYCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfTVVURVgpICYmICFkZWZpbmVkKEJPT1NUX05PXzBYX0hEUl9NVVRFWCkKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfTVVURVgKKyNlbmRpZgorLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfUkFORE9NIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX1JBTkRPTQorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX1JBTkRPTSkgJiYgIWRlZmluZWQoQk9PU1RfTk9fMFhfSERSX1JBTkRPTSkKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfUkFORE9NCisjZW5kaWYKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX1JBVElPIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX1JBVElPCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfUkFUSU8pICYmICFkZWZpbmVkKEJPT1NUX05PXzBYX0hEUl9SQVRJTykKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfUkFUSU8KKyNlbmRpZgorLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfUkVHRVggaW5zdGVhZCBvZiBCT09TVF9OT18wWF9IRFJfUkVHRVgKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9SRUdFWCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fMFhfSERSX1JFR0VYKQorIyAgZGVmaW5lIEJPT1NUX05PXzBYX0hEUl9SRUdFWAorI2VuZGlmCisvLyAgVXNlIEJPT1NUX05PX0NYWDExX0hEUl9TWVNURU1fRVJST1IgaW5zdGVhZCBvZiBCT09TVF9OT18wWF9IRFJfU1lTVEVNX0VSUk9SCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfU1lTVEVNX0VSUk9SKSAmJiAhZGVmaW5lZChCT09TVF9OT18wWF9IRFJfU1lTVEVNX0VSUk9SKQorIyAgZGVmaW5lIEJPT1NUX05PXzBYX0hEUl9TWVNURU1fRVJST1IKKyNlbmRpZgorLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfVEhSRUFEIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX1RIUkVBRAorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfSERSX1RIUkVBRCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fMFhfSERSX1RIUkVBRCkKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfVEhSRUFECisjZW5kaWYKKy8vICBVc2UgQk9PU1RfTk9fQ1hYMTFfSERSX1RVUExFIGluc3RlYWQgb2YgQk9PU1RfTk9fMFhfSERSX1RVUExFCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfVFVQTEUpICYmICFkZWZpbmVkKEJPT1NUX05PXzBYX0hEUl9UVVBMRSkKKyMgIGRlZmluZSBCT09TVF9OT18wWF9IRFJfVFVQTEUKKyNlbmRpZgorLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfVFlQRV9UUkFJVFMgaW5zdGVhZCBvZiBCT09TVF9OT18wWF9IRFJfVFlQRV9UUkFJVFMKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9UWVBFX1RSQUlUUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fMFhfSERSX1RZUEVfVFJBSVRTKQorIyAgZGVmaW5lIEJPT1NUX05PXzBYX0hEUl9UWVBFX1RSQUlUUworI2VuZGlmCisvLyAgVXNlIEJPT1NUX05PX0NYWDExX0hEUl9UWVBFSU5ERVggaW5zdGVhZCBvZiBCT09TVF9OT18wWF9IRFJfVFlQRUlOREVYCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfVFlQRUlOREVYKSAmJiAhZGVmaW5lZChCT09TVF9OT18wWF9IRFJfVFlQRUlOREVYKQorIyAgZGVmaW5lIEJPT1NUX05PXzBYX0hEUl9UWVBFSU5ERVgKKyNlbmRpZgorLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX01BUCBpbnN0ZWFkIG9mIEJPT1NUX05PXzBYX0hEUl9VTk9SREVSRURfTUFQCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX01BUCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fMFhfSERSX1VOT1JERVJFRF9NQVApCisjICBkZWZpbmUgQk9PU1RfTk9fMFhfSERSX1VOT1JERVJFRF9NQVAKKyNlbmRpZgorLy8gIFVzZSBCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX1NFVCBpbnN0ZWFkIG9mIEJPT1NUX05PXzBYX0hEUl9VTk9SREVSRURfU0VUCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfVU5PUkRFUkVEX1NFVCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fMFhfSERSX1VOT1JERVJFRF9TRVQpCisjICBkZWZpbmUgQk9PU1RfTk9fMFhfSERSX1VOT1JERVJFRF9TRVQKKyNlbmRpZgorCisvLyAgLS0tLS0tLS0tLS0tLS0tLS0tIEVuZCBvZiBkZXByZWNhdGVkIG1hY3JvcyBmb3IgMS41MCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tIERlcHJlY2F0ZWQgbWFjcm9zIGZvciAxLjUxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gIFRoZXNlIHdpbGwgZ28gYXdheSBpbiBhIGZ1dHVyZSByZWxlYXNlCisKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX0FVVE9fREVDTEFSQVRJT05TIGluc3RlYWQgb2YgICBCT09TVF9OT19BVVRPX0RFQ0xBUkFUSU9OUworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfQVVUT19ERUNMQVJBVElPTlMpICYmICFkZWZpbmVkKEJPT1NUX05PX0FVVE9fREVDTEFSQVRJT05TKQorIyAgZGVmaW5lIEJPT1NUX05PX0FVVE9fREVDTEFSQVRJT05TCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMgaW5zdGVhZCBvZiAgIEJPT1NUX05PX0FVVE9fTVVMVElERUNMQVJBVElPTlMKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0FVVE9fTVVMVElERUNMQVJBVElPTlMpICYmICFkZWZpbmVkKEJPT1NUX05PX0FVVE9fTVVMVElERUNMQVJBVElPTlMpCisjICBkZWZpbmUgQk9PU1RfTk9fQVVUT19NVUxUSURFQ0xBUkFUSU9OUworI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9DSEFSMTZfVCBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fQ0hBUjE2X1QKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0NIQVIxNl9UKSAmJiAhZGVmaW5lZChCT09TVF9OT19DSEFSMTZfVCkKKyMgIGRlZmluZSBCT09TVF9OT19DSEFSMTZfVAorI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9DSEFSMzJfVCBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fQ0hBUjMyX1QKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0NIQVIzMl9UKSAmJiAhZGVmaW5lZChCT09TVF9OT19DSEFSMzJfVCkKKyMgIGRlZmluZSBCT09TVF9OT19DSEFSMzJfVAorI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9URU1QTEFURV9BTElBU0VTIGluc3RlYWQgb2YgICBCT09TVF9OT19URU1QTEFURV9BTElBU0VTCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9URU1QTEFURV9BTElBU0VTKSAmJiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9BTElBU0VTKQorIyAgZGVmaW5lIEJPT1NUX05PX1RFTVBMQVRFX0FMSUFTRVMKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSIGluc3RlYWQgb2YgICBCT09TVF9OT19DT05TVEVYUFIKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0NPTlNURVhQUikgJiYgIWRlZmluZWQoQk9PU1RfTk9fQ09OU1RFWFBSKQorIyAgZGVmaW5lIEJPT1NUX05PX0NPTlNURVhQUgorI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9ERUNMVFlQRV9OMzI3NiBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fREVDTFRZUEVfTjMyNzYKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFX04zMjc2KSAmJiAhZGVmaW5lZChCT09TVF9OT19ERUNMVFlQRV9OMzI3NikKKyMgIGRlZmluZSBCT09TVF9OT19ERUNMVFlQRV9OMzI3NgorI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9ERUNMVFlQRSBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fREVDTFRZUEUKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFKSAmJiAhZGVmaW5lZChCT09TVF9OT19ERUNMVFlQRSkKKyMgIGRlZmluZSBCT09TVF9OT19ERUNMVFlQRQorI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9ERUZBVUxURURfRlVOQ1RJT05TIGluc3RlYWQgb2YgICBCT09TVF9OT19ERUZBVUxURURfRlVOQ1RJT05TCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9ERUZBVUxURURfRlVOQ1RJT05TKSAmJiAhZGVmaW5lZChCT09TVF9OT19ERUZBVUxURURfRlVOQ1RJT05TKQorIyAgZGVmaW5lIEJPT1NUX05PX0RFRkFVTFRFRF9GVU5DVElPTlMKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfREVMRVRFRF9GVU5DVElPTlMgaW5zdGVhZCBvZiAgIEJPT1NUX05PX0RFTEVURURfRlVOQ1RJT05TCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9ERUxFVEVEX0ZVTkNUSU9OUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fREVMRVRFRF9GVU5DVElPTlMpCisjICBkZWZpbmUgQk9PU1RfTk9fREVMRVRFRF9GVU5DVElPTlMKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMgaW5zdGVhZCBvZiAgIEJPT1NUX05PX0VYUExJQ0lUX0NPTlZFUlNJT05fT1BFUkFUT1JTCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9FWFBMSUNJVF9DT05WRVJTSU9OX09QRVJBVE9SUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMpCisjICBkZWZpbmUgQk9PU1RfTk9fRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfRVhURVJOX1RFTVBMQVRFIGluc3RlYWQgb2YgICBCT09TVF9OT19FWFRFUk5fVEVNUExBVEUKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0VYVEVSTl9URU1QTEFURSkgJiYgIWRlZmluZWQoQk9PU1RfTk9fRVhURVJOX1RFTVBMQVRFKQorIyAgZGVmaW5lIEJPT1NUX05PX0VYVEVSTl9URU1QTEFURQorI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MgaW5zdGVhZCBvZiAgIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX0RFRkFVTFRfQVJHUworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTKSAmJiAhZGVmaW5lZChCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9ERUZBVUxUX0FSR1MpCisjICBkZWZpbmUgQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfREVGQVVMVF9BUkdTCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX0xBTUJEQVMgaW5zdGVhZCBvZiAgIEJPT1NUX05PX0xBTUJEQVMKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX0xBTUJEQVMpICYmICFkZWZpbmVkKEJPT1NUX05PX0xBTUJEQVMpCisjICBkZWZpbmUgQk9PU1RfTk9fTEFNQkRBUworI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9MT0NBTF9DTEFTU19URU1QTEFURV9QQVJBTUVURVJTIGluc3RlYWQgb2YgICBCT09TVF9OT19MT0NBTF9DTEFTU19URU1QTEFURV9QQVJBTUVURVJTCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9MT0NBTF9DTEFTU19URU1QTEFURV9QQVJBTUVURVJTKSAmJiAhZGVmaW5lZChCT09TVF9OT19MT0NBTF9DTEFTU19URU1QTEFURV9QQVJBTUVURVJTKQorIyAgZGVmaW5lIEJPT1NUX05PX0xPQ0FMX0NMQVNTX1RFTVBMQVRFX1BBUkFNRVRFUlMKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfTk9FWENFUFQgaW5zdGVhZCBvZiAgIEJPT1NUX05PX05PRVhDRVBUCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9OT0VYQ0VQVCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fTk9FWENFUFQpCisjICBkZWZpbmUgQk9PU1RfTk9fTk9FWENFUFQKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUiBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fTlVMTFBUUgorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUikgJiYgIWRlZmluZWQoQk9PU1RfTk9fTlVMTFBUUikKKyMgIGRlZmluZSBCT09TVF9OT19OVUxMUFRSCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX1JBV19MSVRFUkFMUyBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fUkFXX0xJVEVSQUxTCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9SQVdfTElURVJBTFMpICYmICFkZWZpbmVkKEJPT1NUX05PX1JBV19MSVRFUkFMUykKKyMgIGRlZmluZSBCT09TVF9OT19SQVdfTElURVJBTFMKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgaW5zdGVhZCBvZiAgIEJPT1NUX05PX1JWQUxVRV9SRUZFUkVOQ0VTCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fUlZBTFVFX1JFRkVSRU5DRVMpCisjICBkZWZpbmUgQk9PU1RfTk9fUlZBTFVFX1JFRkVSRU5DRVMKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfU0NPUEVEX0VOVU1TIGluc3RlYWQgb2YgICBCT09TVF9OT19TQ09QRURfRU5VTVMKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX1NDT1BFRF9FTlVNUykgJiYgIWRlZmluZWQoQk9PU1RfTk9fU0NPUEVEX0VOVU1TKQorIyAgZGVmaW5lIEJPT1NUX05PX1NDT1BFRF9FTlVNUworI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUIGluc3RlYWQgb2YgICBCT09TVF9OT19TVEFUSUNfQVNTRVJUCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUKSAmJiAhZGVmaW5lZChCT09TVF9OT19TVEFUSUNfQVNTRVJUKQorIyAgZGVmaW5lIEJPT1NUX05PX1NUQVRJQ19BU1NFUlQKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfU1REX1VOT1JERVJFRCBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fU1REX1VOT1JERVJFRAorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfU1REX1VOT1JERVJFRCkgJiYgIWRlZmluZWQoQk9PU1RfTk9fU1REX1VOT1JERVJFRCkKKyMgIGRlZmluZSBCT09TVF9OT19TVERfVU5PUkRFUkVECisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMgaW5zdGVhZCBvZiAgIEJPT1NUX05PX1VOSUNPREVfTElURVJBTFMKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX1VOSUNPREVfTElURVJBTFMpICYmICFkZWZpbmVkKEJPT1NUX05PX1VOSUNPREVfTElURVJBTFMpCisjICBkZWZpbmUgQk9PU1RfTk9fVU5JQ09ERV9MSVRFUkFMUworI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9VTklGSUVEX0lOSVRJQUxJWkFUSU9OX1NZTlRBWCBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYKSAmJiAhZGVmaW5lZChCT09TVF9OT19VTklGSUVEX0lOSVRJQUxJWkFUSU9OX1NZTlRBWCkKKyMgIGRlZmluZSBCT09TVF9OT19VTklGSUVEX0lOSVRJQUxJWkFUSU9OX1NZTlRBWAorI2VuZGlmCisvLyAgVXNlICAgICBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMgaW5zdGVhZCBvZiAgIEJPT1NUX05PX1ZBUklBRElDX1RFTVBMQVRFUworI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKSAmJiAhZGVmaW5lZChCT09TVF9OT19WQVJJQURJQ19URU1QTEFURVMpCisjICBkZWZpbmUgQk9PU1RfTk9fVkFSSUFESUNfVEVNUExBVEVTCisjZW5kaWYKKy8vICBVc2UgICAgIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX01BQ1JPUyBpbnN0ZWFkIG9mICAgQk9PU1RfTk9fVkFSSUFESUNfTUFDUk9TCisjaWYgZGVmaW5lZChCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MpICYmICFkZWZpbmVkKEJPT1NUX05PX1ZBUklBRElDX01BQ1JPUykKKyMgIGRlZmluZSBCT09TVF9OT19WQVJJQURJQ19NQUNST1MKKyNlbmRpZgorLy8gIFVzZSAgICAgQk9PU1RfTk9fQ1hYMTFfTlVNRVJJQ19MSU1JVFMgaW5zdGVhZCBvZiAgIEJPT1NUX05PX05VTUVSSUNfTElNSVRTX0xPV0VTVAorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfTlVNRVJJQ19MSU1JVFMpICYmICFkZWZpbmVkKEJPT1NUX05PX05VTUVSSUNfTElNSVRTX0xPV0VTVCkKKyMgIGRlZmluZSBCT09TVF9OT19OVU1FUklDX0xJTUlUU19MT1dFU1QKKyNlbmRpZgorLy8gIC0tLS0tLS0tLS0tLS0tLS0tLSBFbmQgb2YgZGVwcmVjYXRlZCBtYWNyb3MgZm9yIDEuNTEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworCisvLworLy8gSGVscGVyIG1hY3JvcyBCT09TVF9OT0VYQ0VQVCwgQk9PU1RfTk9FWENFUFRfSUYsIEJPT1NUX05PRVhDRVBUX0VYUFIKKy8vIFRoZXNlIGFpZCB0aGUgdHJhbnNpdGlvbiB0byBDKysxMSB3aGlsZSBzdGlsbCBzdXBwb3J0aW5nIEMrKzAzIGNvbXBpbGVycworLy8KKyNpZmRlZiBCT09TVF9OT19DWFgxMV9OT0VYQ0VQVAorIyAgZGVmaW5lIEJPT1NUX05PRVhDRVBUCisjICBkZWZpbmUgQk9PU1RfTk9FWENFUFRfSUYoUHJlZGljYXRlKQorIyAgZGVmaW5lIEJPT1NUX05PRVhDRVBUX0VYUFIoRXhwcmVzc2lvbikgZmFsc2UKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfTk9FWENFUFQgbm9leGNlcHQKKyMgIGRlZmluZSBCT09TVF9OT0VYQ0VQVF9JRihQcmVkaWNhdGUpIG5vZXhjZXB0KChQcmVkaWNhdGUpKQorIyAgZGVmaW5lIEJPT1NUX05PRVhDRVBUX0VYUFIoRXhwcmVzc2lvbikgbm9leGNlcHQoKEV4cHJlc3Npb24pKQorI2VuZGlmCisKKy8vCisvLyBjb25zdGV4cHIgd29ya2Fyb3VuZHMKKy8vIAorI2lmIGRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfQ09OU1RFWFBSKQorI2RlZmluZSBCT09TVF9DT05TVEVYUFIKKyNkZWZpbmUgQk9PU1RfQ09OU1RFWFBSX09SX0NPTlNUIGNvbnN0CisjZWxzZQorI2RlZmluZSBCT09TVF9DT05TVEVYUFIgY29uc3RleHByCisjZGVmaW5lIEJPT1NUX0NPTlNURVhQUl9PUl9DT05TVCBjb25zdGV4cHIKKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX1NUQVRJQ19DT05TVEVYUFIgIHN0YXRpYyBCT09TVF9DT05TVEVYUFJfT1JfQ09OU1QKKworLy8KKy8vIFNldCBCT09TVF9IQVNfU1RBVElDX0FTU0VSVCB3aGVuIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQgaXMgbm90IGRlZmluZWQKKy8vCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVCkgJiYgIWRlZmluZWQoQk9PU1RfSEFTX1NUQVRJQ19BU1NFUlQpCisjICBkZWZpbmUgQk9PU1RfSEFTX1NUQVRJQ19BU1NFUlQKKyNlbmRpZgorCisvLworLy8gU2V0IEJPT1NUX0hBU19SVkFMVUVfUkVGUyB3aGVuIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTIGlzIG5vdCBkZWZpbmVkCisvLworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTKSAmJiAhZGVmaW5lZChCT09TVF9IQVNfUlZBTFVFX1JFRlMpCisjZGVmaW5lIEJPT1NUX0hBU19SVkFMVUVfUkVGUworI2VuZGlmCisKKy8vCisvLyBTZXQgQk9PU1RfSEFTX1ZBUklBRElDX1RNUEwgd2hlbiBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMgaXMgbm90IGRlZmluZWQKKy8vCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKSAmJiAhZGVmaW5lZChCT09TVF9IQVNfVkFSSUFESUNfVE1QTCkKKyNkZWZpbmUgQk9PU1RfSEFTX1ZBUklBRElDX1RNUEwKKyNlbmRpZgorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvY29uZmlnL3VzZXIuaHBwIGIvYm9vc3QvY29uZmlnL3VzZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNGE5ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvdXNlci5ocHAKQEAgLTAsMCArMSwxMjQgQEAKKy8vICBib29zdC9jb25maWcvdXNlci5ocHAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAxLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBEbyBub3QgY2hlY2sgaW4gbW9kaWZpZWQgdmVyc2lvbnMgb2YgdGhpcyBmaWxlLAorLy8gIFRoaXMgZmlsZSBtYXkgYmUgY3VzdG9taXplZCBieSB0aGUgZW5kIHVzZXIsIGJ1dCBub3QgYnkgYm9vc3QuCisKKy8vCisvLyAgVXNlIHRoaXMgZmlsZSB0byBkZWZpbmUgYSBzaXRlIGFuZCBjb21waWxlciBzcGVjaWZpYworLy8gIGNvbmZpZ3VyYXRpb24gcG9saWN5OgorLy8KKworLy8gZGVmaW5lIHRoaXMgdG8gbG9jYXRlIGEgY29tcGlsZXIgY29uZmlnIGZpbGU6CisvLyAjZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0NPTkZJRyA8bXloZWFkZXI+CisKKy8vIGRlZmluZSB0aGlzIHRvIGxvY2F0ZSBhIHN0ZGxpYiBjb25maWcgZmlsZToKKy8vICNkZWZpbmUgQk9PU1RfU1RETElCX0NPTkZJRyAgIDxteWhlYWRlcj4KKworLy8gZGVmaW5lIHRoaXMgdG8gbG9jYXRlIGEgcGxhdGZvcm0gY29uZmlnIGZpbGU6CisvLyAjZGVmaW5lIEJPT1NUX1BMQVRGT1JNX0NPTkZJRyA8bXloZWFkZXI+CisKKy8vIGRlZmluZSB0aGlzIHRvIGRpc2FibGUgY29tcGlsZXIgY29uZmlnLAorLy8gdXNlIGlmIHlvdXIgY29tcGlsZXIgY29uZmlnIGhhcyBub3RoaW5nIHRvIHNldDoKKy8vICNkZWZpbmUgQk9PU1RfTk9fQ09NUElMRVJfQ09ORklHCisKKy8vIGRlZmluZSB0aGlzIHRvIGRpc2FibGUgc3RkbGliIGNvbmZpZywKKy8vIHVzZSBpZiB5b3VyIHN0ZGxpYiBjb25maWcgaGFzIG5vdGhpbmcgdG8gc2V0OgorLy8gI2RlZmluZSBCT09TVF9OT19TVERMSUJfQ09ORklHCisKKy8vIGRlZmluZSB0aGlzIHRvIGRpc2FibGUgcGxhdGZvcm0gY29uZmlnLAorLy8gdXNlIGlmIHlvdXIgcGxhdGZvcm0gY29uZmlnIGhhcyBub3RoaW5nIHRvIHNldDoKKy8vICNkZWZpbmUgQk9PU1RfTk9fUExBVEZPUk1fQ09ORklHCisKKy8vIGRlZmluZSB0aGlzIHRvIGRpc2FibGUgYWxsIGNvbmZpZyBvcHRpb25zLAorLy8gZXhjbHVkaW5nIHRoZSB1c2VyIGNvbmZpZy4gIFVzZSBpZiB5b3VyCisvLyBzZXR1cCBpcyBmdWxseSBJU08gY29tcGxpYW50LCBhbmQgaGFzIG5vCisvLyB1c2VmdWwgZXh0ZW5zaW9ucywgb3IgZm9yIGF1dG9jb25mIGdlbmVyYXRlZAorLy8gc2V0dXBzOgorLy8gI2RlZmluZSBCT09TVF9OT19DT05GSUcKKworLy8gZGVmaW5lIHRoaXMgdG8gbWFrZSB0aGUgY29uZmlnICJvcHRpbWlzdGljIgorLy8gYWJvdXQgdW5rbm93biBjb21waWxlciB2ZXJzaW9ucy4gIE5vcm1hbGx5CisvLyB1bmtub3duIGNvbXBpbGVyIHZlcnNpb25zIGFyZSBhc3N1bWVkIHRvIGhhdmUKKy8vIGFsbCB0aGUgZGVmZWN0cyBvZiB0aGUgbGFzdCBrbm93biB2ZXJzaW9uLCBob3dldmVyCisvLyBzZXR0aW5nIHRoaXMgZmxhZywgY2F1c2VzIHRoZSBjb25maWcgdG8gYXNzdW1lCisvLyB0aGF0IHVua25vd24gY29tcGlsZXIgdmVyc2lvbnMgYXJlIGZ1bGx5IGNvbmZvcm1hbnQKKy8vIHdpdGggdGhlIHN0YW5kYXJkOgorLy8gI2RlZmluZSBCT09TVF9TVFJJQ1RfQ09ORklHCisKKy8vIGRlZmluZSB0aGlzIHRvIGNhdXNlIHRoZSBjb25maWcgdG8gaGFsdCBjb21waWxhdGlvbgorLy8gd2l0aCBhbiAjZXJyb3IgaWYgaXQgZW5jb3VudGVycyBhbnl0aGluZyB1bmtub3duIC0tCisvLyBlaXRoZXIgYW4gdW5rbm93biBjb21waWxlciB2ZXJzaW9uIG9yIGFuIHVua25vd24KKy8vIGNvbXBpbGVyL3BsYXRmb3JtL2xpYnJhcnk6CisvLyAjZGVmaW5lIEJPT1NUX0FTU0VSVF9DT05GSUcKKworCisvLyBkZWZpbmUgaWYgeW91IHdhbnQgdG8gZGlzYWJsZSB0aHJlYWRpbmcgc3VwcG9ydCwgZXZlbgorLy8gd2hlbiBhdmFpbGFibGU6CisvLyAjZGVmaW5lIEJPT1NUX0RJU0FCTEVfVEhSRUFEUworCisvLyBkZWZpbmUgd2hlbiB5b3Ugd2FudCB0byBkaXNhYmxlIFdpbjMyIHNwZWNpZmljIGZlYXR1cmVzCisvLyBldmVuIHdoZW4gYXZhaWxhYmxlOgorLy8gI2RlZmluZSBCT09TVF9ESVNBQkxFX1dJTjMyCisKKy8vIEJPT1NUX0RJU0FCTEVfQUJJX0hFQURFUlM6IFN0b3BzIGJvb3N0IGhlYWRlcnMgZnJvbSBpbmNsdWRpbmcgYW55IAorLy8gcHJlZml4L3N1ZmZpeCBoZWFkZXJzIHRoYXQgbm9ybWFsbHkgY29udHJvbCB0aGluZ3MgbGlrZSBzdHJ1Y3QgCisvLyBwYWNraW5nIGFuZCBhbGlnbm1lbnQuIAorLy8gI2RlZmluZSBCT09TVF9ESVNBQkxFX0FCSV9IRUFERVJTCisKKy8vIEJPT1NUX0FCSV9QUkVGSVg6IEEgcHJlZml4IGhlYWRlciB0byBpbmNsdWRlIGluIHBsYWNlIG9mIHdoYXRldmVyCisvLyBib29zdC5jb25maWcgd291bGQgbm9ybWFsbHkgc2VsZWN0LCBhbnkgcmVwbGFjZW1lbnQgc2hvdWxkIHNldCB1cCAKKy8vIHN0cnVjdCBwYWNraW5nIGFuZCBhbGlnbm1lbnQgb3B0aW9ucyBhcyByZXF1aXJlZC4gCisvLyAjZGVmaW5lIEJPT1NUX0FCSV9QUkVGSVggbXktaGVhZGVyLW5hbWUKKworLy8gQk9PU1RfQUJJX1NVRkZJWDogQSBzdWZmaXggaGVhZGVyIHRvIGluY2x1ZGUgaW4gcGxhY2Ugb2Ygd2hhdGV2ZXIgCisvLyBib29zdC5jb25maWcgd291bGQgbm9ybWFsbHkgc2VsZWN0LCBhbnkgcmVwbGFjZW1lbnQgc2hvdWxkIHVuZG8gCisvLyB0aGUgZWZmZWN0cyBvZiB0aGUgcHJlZml4IGhlYWRlci4gCisvLyAjZGVmaW5lIEJPT1NUX0FCSV9TVUZGSVggbXktaGVhZGVyLW5hbWUKKworLy8gQk9PU1RfQUxMX0RZTl9MSU5LOiBGb3JjZXMgYWxsIGxpYnJhcmllcyB0aGF0IGhhdmUgc2VwYXJhdGUgc291cmNlLCAKKy8vIHRvIGJlIGxpbmtlZCBhcyBkbGwncyByYXRoZXIgdGhhbiBzdGF0aWMgbGlicmFyaWVzIG9uIE1pY3Jvc29mdCBXaW5kb3dzIAorLy8gKHRoaXMgbWFjcm8gaXMgdXNlZCB0byB0dXJuIG9uIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBtb2RpZmllcnMsIHNvIHRoYXQgCisvLyB0aGUgY29tcGlsZXIga25vd3Mgd2hpY2ggc3ltYm9scyB0byBsb29rIGZvciBpbiBhIGRsbCByYXRoZXIgdGhhbiBpbiBhIAorLy8gc3RhdGljIGxpYnJhcnkpLiAgTm90ZSB0aGF0IHRoZXJlIG1heSBiZSBzb21lIGxpYnJhcmllcyB0aGF0IGNhbiBvbmx5IAorLy8gYmUgc3RhdGljYWxseSBsaW5rZWQgKEJvb3N0LlRlc3QgZm9yIGV4YW1wbGUpIGFuZCBvdGhlcnMgd2hpY2ggbWF5IG9ubHkgCisvLyBiZSBkeW5hbWljYWxseSBsaW5rZWQgKEJvb3N0LlRocmVhZHMgZm9yIGV4YW1wbGUpLCBpbiB0aGVzZSBjYXNlcyB0aGlzIAorLy8gbWFjcm8gaGFzIG5vIGVmZmVjdC4KKy8vICNkZWZpbmUgQk9PU1RfQUxMX0RZTl9MSU5LCisgCisvLyBCT09TVF9XSEFURVZFUl9EWU5fTElOSzogRm9yY2VzIGxpYnJhcnkgIndoYXRldmVyIiB0byBiZSBsaW5rZWQgYXMgYSBkbGwgCisvLyByYXRoZXIgdGhhbiBhIHN0YXRpYyBsaWJyYXJ5IG9uIE1pY3Jvc29mdCBXaW5kb3dzOiByZXBsYWNlIHRoZSBXSEFURVZFUiAKKy8vIHBhcnQgb2YgdGhlIG1hY3JvIG5hbWUgd2l0aCB0aGUgbmFtZSBvZiB0aGUgbGlicmFyeSB0aGF0IHlvdSB3YW50IHRvIAorLy8gZHluYW1pY2FsbHkgbGluayB0bywgZm9yIGV4YW1wbGUgdXNlIEJPT1NUX0RBVEVfVElNRV9EWU5fTElOSyBvciAKKy8vIEJPT1NUX1JFR0VYX0RZTl9MSU5LIGV0YyAodGhpcyBtYWNybyBpcyB1c2VkIHRvIHR1cm4gb24gX19kZWNsc3BlYyhkbGxpbXBvcnQpIAorLy8gbW9kaWZpZXJzLCBzbyB0aGF0IHRoZSBjb21waWxlciBrbm93cyB3aGljaCBzeW1ib2xzIHRvIGxvb2sgZm9yIGluIGEgZGxsIAorLy8gcmF0aGVyIHRoYW4gaW4gYSBzdGF0aWMgbGlicmFyeSkuICAKKy8vIE5vdGUgdGhhdCB0aGVyZSBtYXkgYmUgc29tZSBsaWJyYXJpZXMgdGhhdCBjYW4gb25seSBiZSBzdGF0aWNhbGx5IGxpbmtlZCAKKy8vIChCb29zdC5UZXN0IGZvciBleGFtcGxlKSBhbmQgb3RoZXJzIHdoaWNoIG1heSBvbmx5IGJlIGR5bmFtaWNhbGx5IGxpbmtlZCAKKy8vIChCb29zdC5UaHJlYWRzIGZvciBleGFtcGxlKSwgaW4gdGhlc2UgY2FzZXMgdGhpcyBtYWNybyBpcyB1bnN1cHBvcnRlZC4KKy8vICNkZWZpbmUgQk9PU1RfV0hBVEVWRVJfRFlOX0xJTksKKyAKKy8vIEJPT1NUX0FMTF9OT19MSUI6IFRlbGxzIHRoZSBjb25maWcgc3lzdGVtIG5vdCB0byBhdXRvbWF0aWNhbGx5IHNlbGVjdCAKKy8vIHdoaWNoIGxpYnJhcmllcyB0byBsaW5rIGFnYWluc3QuICAKKy8vIE5vcm1hbGx5IGlmIGEgY29tcGlsZXIgc3VwcG9ydHMgI3ByYWdtYSBsaWIsIHRoZW4gdGhlIGNvcnJlY3QgbGlicmFyeSAKKy8vIGJ1aWxkIHZhcmlhbnQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkIGFuZCBsaW5rZWQgYWdhaW5zdCwgCisvLyBzaW1wbHkgYnkgdGhlIGFjdCBvZiBpbmNsdWRpbmcgb25lIG9mIHRoYXQgbGlicmFyeSdzIGhlYWRlcnMuICAKKy8vIFRoaXMgbWFjcm8gdHVybnMgdGhhdCBmZWF0dXJlIG9mZi4KKy8vICNkZWZpbmUgQk9PU1RfQUxMX05PX0xJQgorIAorLy8gQk9PU1RfV0hBVEVWRVJfTk9fTElCOiBUZWxscyB0aGUgY29uZmlnIHN5c3RlbSBub3QgdG8gYXV0b21hdGljYWxseSAKKy8vIHNlbGVjdCB3aGljaCBsaWJyYXJ5IHRvIGxpbmsgYWdhaW5zdCBmb3IgbGlicmFyeSAid2hhdGV2ZXIiLCAKKy8vIHJlcGxhY2UgV0hBVEVWRVIgaW4gdGhlIG1hY3JvIG5hbWUgd2l0aCB0aGUgbmFtZSBvZiB0aGUgbGlicmFyeTsgCisvLyBmb3IgZXhhbXBsZSBCT09TVF9EQVRFX1RJTUVfTk9fTElCIG9yIEJPT1NUX1JFR0VYX05PX0xJQi4gIAorLy8gTm9ybWFsbHkgaWYgYSBjb21waWxlciBzdXBwb3J0cyAjcHJhZ21hIGxpYiwgdGhlbiB0aGUgY29ycmVjdCBsaWJyYXJ5IAorLy8gYnVpbGQgdmFyaWFudCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgYW5kIGxpbmtlZCBhZ2FpbnN0LCBzaW1wbHkgCisvLyBieSB0aGUgYWN0IG9mIGluY2x1ZGluZyBvbmUgb2YgdGhhdCBsaWJyYXJ5J3MgaGVhZGVycy4gIFRoaXMgbWFjcm8gdHVybnMgCisvLyB0aGF0IGZlYXR1cmUgb2ZmLgorLy8gI2RlZmluZSBCT09TVF9XSEFURVZFUl9OT19MSUIKKyAKKworCmRpZmYgLS1naXQgYS9ib29zdC9jb25maWcvd2FybmluZ19kaXNhYmxlLmhwcCBiL2Jvb3N0L2NvbmZpZy93YXJuaW5nX2Rpc2FibGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlYThlODIKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9jb25maWcvd2FybmluZ19kaXNhYmxlLmhwcApAQCAtMCwwICsxLDQ3IEBACisvLyAgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDA4CisvLyAgVXNlLCBtb2RpZmljYXRpb24sIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vICBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgVGhpcyBmaWxlIGV4aXN0cyB0byB0dXJuIG9mZiBzb21lIG92ZXJseS1wZWRhbnRpYyB3YXJuaW5nIGVtaXR0ZWQKKy8vICBieSBjZXJ0YWluIGNvbXBpbGVycy4gIFlvdSBzaG91bGQgaW5jbHVkZSB0aGlzIGhlYWRlciBvbmx5IGluOgorLy8KKy8vICAqIEEgdGVzdCBjYXNlLCBiZWZvcmUgYW55IG90aGVyIGhlYWRlcnMsIG9yLAorLy8gICogQSBsaWJyYXJ5IHNvdXJjZSBmaWxlIGJlZm9yZSBhbnkgb3RoZXIgaGVhZGVycy4KKy8vCisvLyAgSVQgU0hPVUxEIE5PVCBCRSBJTkNMVURFRCBCWSBBTlkgQk9PU1QgSEVBREVSLgorLy8KKy8vICBZT1UgU0hPVUxEIE5PVCBJTkNMVURFIElUIElGIFlPVSBDQU4gUkVBU09OQUJMWSBGSVggVEhFIFdBUk5JTkcuCisvLworLy8gIFRoZSBvbmx5IHdhcm5pbmdzIGRpc2FibGVkIGhlcmUgYXJlIHRob3NlIHRoYXQgYXJlOgorLy8KKy8vICAqIFF1aXRlIHVucmVhc29uYWJseSBwZWRhbnRpYy4KKy8vICAqIEdlbmVyYWxseSBvbmx5IGVtaXR0ZWQgYnkgYSBzaW5nbGUgY29tcGlsZXIuCisvLyAgKiBDYW4ndCBlYXNpbHkgYmUgZml4ZWQ6IGZvciBleGFtcGxlIGlmIHRoZSB2ZW5kb3JzIG93biBzdGQgbGliIAorLy8gICAgY29kZSBlbWl0cyB0aGVzZSB3YXJuaW5ncyEKKy8vCisvLyAgTm90ZSB0aGF0IFRISVMgSEVBREVSIE1VU1QgTk9UIElOQ0xVREUgQU5ZIE9USEVSIEhFQURFUlM6CisvLyAgbm90IGV2ZW4gc3RkIGxpYnJhcnkgb25lcyEgIERvaW5nIHNvIG1heSB0dXJuIHRoZSB3YXJuaW5nCisvLyAgb2ZmIHRvbyBsYXRlIHRvIGJlIG9mIGFueSB1c2UuICBGb3IgZXhhbXBsZSB0aGUgVkMrKyBDNDk5NgorLy8gIHdhcm5pbmcgY2FuIGJlIGVtaXR0ZWQgZnJvbSA8aW9zZndkPiBpZiB0aGF0IGhlYWRlciBpcyBpbmNsdWRlZAorLy8gIGJlZm9yZSBvciBieSB0aGlzIG9uZSA6LSgKKy8vCisKKyNpZm5kZWYgQk9PU1RfQ09ORklHX1dBUk5JTkdfRElTQUJMRV9IUFAKKyNkZWZpbmUgQk9PU1RfQ09ORklHX1dBUk5JTkdfRElTQUJMRV9IUFAKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxNDAwKSAKKyAgIC8vIEVycm9yICdmdW5jdGlvbic6IHdhcyBkZWNsYXJlZCBkZXByZWNhdGVkCisgICAvLyBodHRwOi8vbXNkbjIubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3R0Y3owYnlzKFZTLjgwKS5hc3B4CisgICAvLyBUaGlzIGVycm9yIGlzIGVtaXR0ZWQgd2hlbiB5b3UgdXNlIHNvbWUgcGVyZmVjdGx5IGNvbmZvcm1pbmcKKyAgIC8vIHN0ZCBsaWIgZnVuY3Rpb25zIGluIGEgcGVyZmVjdGx5IGNvcnJlY3Qgd2F5LCBhbmQgYWxzbyBieQorICAgLy8gc29tZSBvZiBNaWNyb3NvZnQncyBvd24gc3RkIGxpYiBjb2RlICEKKyMgIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDk5NikKKyNlbmRpZgorI2lmIGRlZmluZWQoX19JTlRFTF9DT01QSUxFUikgfHwgZGVmaW5lZChfX0lDTCkKKyAgIC8vIEFzIGFib3ZlOiBnaXZlcyB3YXJuaW5nIHdoZW4gYSAiZGVwcmVjYXRlZCIKKyAgIC8vIHN0ZCBsaWJyYXJ5IGZ1bmN0aW9uIGlzIGVuY291bnRlcmVkLgorIyAgcHJhZ21hIHdhcm5pbmcoZGlzYWJsZToxNzg2KQorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9DT05GSUdfV0FSTklOR19ESVNBQkxFX0hQUApkaWZmIC0tZ2l0IGEvYm9vc3QvY3VycmVudF9mdW5jdGlvbi5ocHAgYi9ib29zdC9jdXJyZW50X2Z1bmN0aW9uLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTgwY2E1Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvY3VycmVudF9mdW5jdGlvbi5ocHAKQEAgLTAsMCArMSw2OCBAQAorI2lmbmRlZiBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBib29zdC9jdXJyZW50X2Z1bmN0aW9uLmhwcCAtIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT04KKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAyIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3V0aWxpdHkvY3VycmVudF9mdW5jdGlvbi5odG1sCisvLworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitpbmxpbmUgdm9pZCBjdXJyZW50X2Z1bmN0aW9uX2hlbHBlcigpCit7CisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSB8fCAoZGVmaW5lZChfX01XRVJLU19fKSAmJiAoX19NV0VSS1NfXyA+PSAweDMwMDApKSB8fCAoZGVmaW5lZChfX0lDQykgJiYgKF9fSUNDID49IDYwMCkpIHx8IGRlZmluZWQoX19naHNfXykKKworIyBkZWZpbmUgQk9PU1RfQ1VSUkVOVF9GVU5DVElPTiBfX1BSRVRUWV9GVU5DVElPTl9fCisKKyNlbGlmIGRlZmluZWQoX19ETUNfXykgJiYgKF9fRE1DX18gPj0gMHg4MTApCisKKyMgZGVmaW5lIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT04gX19QUkVUVFlfRlVOQ1RJT05fXworCisjZWxpZiBkZWZpbmVkKF9fRlVOQ1NJR19fKQorCisjIGRlZmluZSBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OIF9fRlVOQ1NJR19fCisKKyNlbGlmIChkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpICYmIChfX0lOVEVMX0NPTVBJTEVSID49IDYwMCkpIHx8IChkZWZpbmVkKF9fSUJNQ1BQX18pICYmIChfX0lCTUNQUF9fID49IDUwMCkpCisKKyMgZGVmaW5lIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT04gX19GVU5DVElPTl9fCisKKyNlbGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiAoX19CT1JMQU5EQ19fID49IDB4NTUwKQorCisjIGRlZmluZSBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OIF9fRlVOQ19fCisKKyNlbGlmIGRlZmluZWQoX19TVERDX1ZFUlNJT05fXykgJiYgKF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxKQorCisjIGRlZmluZSBCT09TVF9DVVJSRU5UX0ZVTkNUSU9OIF9fZnVuY19fCisKKyNlbHNlCisKKyMgZGVmaW5lIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT04gIih1bmtub3duKSIKKworI2VuZGlmCisKK30KKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT05fSFBQX0lOQ0xVREVECisKZGlmZiAtLWdpdCBhL2Jvb3N0L2RldGFpbC9pbnRlcmxvY2tlZC5ocHAgYi9ib29zdC9kZXRhaWwvaW50ZXJsb2NrZWQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyZmVmOGYKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9kZXRhaWwvaW50ZXJsb2NrZWQuaHBwCkBAIC0wLDAgKzEsMTgwIEBACisjaWZuZGVmIEJPT1NUX0RFVEFJTF9JTlRFUkxPQ0tFRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfREVUQUlMX0lOVEVSTE9DS0VEX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBib29zdC9kZXRhaWwvaW50ZXJsb2NrZWQuaHBwCisvLworLy8gIENvcHlyaWdodCAyMDA1IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy5ocHA+CisKKyNpZiBkZWZpbmVkKCBCT09TVF9VU0VfV0lORE9XU19IICkKKworIyBpbmNsdWRlIDx3aW5kb3dzLmg+CisKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0lOQ1JFTUVOVCBJbnRlcmxvY2tlZEluY3JlbWVudAorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfREVDUkVNRU5UIEludGVybG9ja2VkRGVjcmVtZW50CisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9DT01QQVJFX0VYQ0hBTkdFIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlCisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRSBJbnRlcmxvY2tlZEV4Y2hhbmdlCisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRV9BREQgSW50ZXJsb2NrZWRFeGNoYW5nZUFkZAorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfQ09NUEFSRV9FWENIQU5HRV9QT0lOVEVSIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlUG9pbnRlcgorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0VfUE9JTlRFUiBJbnRlcmxvY2tlZEV4Y2hhbmdlUG9pbnRlcgorCisjZWxpZiBkZWZpbmVkKF9XSU4zMl9XQ0UpCisKKyNpZiBfV0lOMzJfV0NFID49IDB4NjAwCisKK2V4dGVybiAiQyIgbG9uZyBfX2NkZWNsIF9JbnRlcmxvY2tlZEluY3JlbWVudCggbG9uZyB2b2xhdGlsZSAqICk7CitleHRlcm4gIkMiIGxvbmcgX19jZGVjbCBfSW50ZXJsb2NrZWREZWNyZW1lbnQoIGxvbmcgdm9sYXRpbGUgKiApOworZXh0ZXJuICJDIiBsb25nIF9fY2RlY2wgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKCBsb25nIHZvbGF0aWxlICosIGxvbmcsIGxvbmcgKTsKK2V4dGVybiAiQyIgbG9uZyBfX2NkZWNsIF9JbnRlcmxvY2tlZEV4Y2hhbmdlKCBsb25nIHZvbGF0aWxlICosIGxvbmcgKTsKK2V4dGVybiAiQyIgbG9uZyBfX2NkZWNsIF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkKCBsb25nIHZvbGF0aWxlICosIGxvbmcgKTsKKworIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfSU5DUkVNRU5UIF9JbnRlcmxvY2tlZEluY3JlbWVudAorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfREVDUkVNRU5UIF9JbnRlcmxvY2tlZERlY3JlbWVudAorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfQ09NUEFSRV9FWENIQU5HRSBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0VYQ0hBTkdFIF9JbnRlcmxvY2tlZEV4Y2hhbmdlCisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRV9BREQgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGQKKworI2Vsc2UKKy8vIHVuZGVyIFdpbmRvd3MgQ0Ugd2Ugc3RpbGwgaGF2ZSBvbGQtc3R5bGUgSW50ZXJsb2NrZWQqIGZ1bmN0aW9ucworCitleHRlcm4gIkMiIGxvbmcgX19jZGVjbCBJbnRlcmxvY2tlZEluY3JlbWVudCggbG9uZyogKTsKK2V4dGVybiAiQyIgbG9uZyBfX2NkZWNsIEludGVybG9ja2VkRGVjcmVtZW50KCBsb25nKiApOworZXh0ZXJuICJDIiBsb25nIF9fY2RlY2wgSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UoIGxvbmcqLCBsb25nLCBsb25nICk7CitleHRlcm4gIkMiIGxvbmcgX19jZGVjbCBJbnRlcmxvY2tlZEV4Y2hhbmdlKCBsb25nKiwgbG9uZyApOworZXh0ZXJuICJDIiBsb25nIF9fY2RlY2wgSW50ZXJsb2NrZWRFeGNoYW5nZUFkZCggbG9uZyosIGxvbmcgKTsKKworIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfSU5DUkVNRU5UIEludGVybG9ja2VkSW5jcmVtZW50CisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9ERUNSRU1FTlQgSW50ZXJsb2NrZWREZWNyZW1lbnQKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0NPTVBBUkVfRVhDSEFOR0UgSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0VYQ0hBTkdFIEludGVybG9ja2VkRXhjaGFuZ2UKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0VYQ0hBTkdFX0FERCBJbnRlcmxvY2tlZEV4Y2hhbmdlQWRkCisKKyNlbmRpZgorCisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9DT01QQVJFX0VYQ0hBTkdFX1BPSU5URVIoZGVzdCxleGNoYW5nZSxjb21wYXJlKSBcCisgICAgKCh2b2lkKilCT09TVF9JTlRFUkxPQ0tFRF9DT01QQVJFX0VYQ0hBTkdFKChsb25nKikoZGVzdCksKGxvbmcpKGV4Y2hhbmdlKSwobG9uZykoY29tcGFyZSkpKQorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0VfUE9JTlRFUihkZXN0LGV4Y2hhbmdlKSBcCisgICAgKCh2b2lkKilCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRSgobG9uZyopKGRlc3QpLChsb25nKShleGNoYW5nZSkpKQorCisjZWxpZiBkZWZpbmVkKCBCT09TVF9NU1ZDICkgfHwgZGVmaW5lZCggQk9PU1RfSU5URUxfV0lOICkKKworI2lmIGRlZmluZWQoIEJPT1NUX01TVkMgKSAmJiBCT09TVF9NU1ZDID49IDE2MDAKKworI2luY2x1ZGUgPGludHJpbi5oPgorCisjZWxpZiBkZWZpbmVkKCBfX0NMUkNBTExfUFVSRV9PUl9DREVDTCApCisKK2V4dGVybiAiQyIgbG9uZyBfX0NMUkNBTExfUFVSRV9PUl9DREVDTCBfSW50ZXJsb2NrZWRJbmNyZW1lbnQoIGxvbmcgdm9sYXRpbGUgKiApOworZXh0ZXJuICJDIiBsb25nIF9fQ0xSQ0FMTF9QVVJFX09SX0NERUNMIF9JbnRlcmxvY2tlZERlY3JlbWVudCggbG9uZyB2b2xhdGlsZSAqICk7CitleHRlcm4gIkMiIGxvbmcgX19DTFJDQUxMX1BVUkVfT1JfQ0RFQ0wgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKCBsb25nIHZvbGF0aWxlICosIGxvbmcsIGxvbmcgKTsKK2V4dGVybiAiQyIgbG9uZyBfX0NMUkNBTExfUFVSRV9PUl9DREVDTCBfSW50ZXJsb2NrZWRFeGNoYW5nZSggbG9uZyB2b2xhdGlsZSAqLCBsb25nICk7CitleHRlcm4gIkMiIGxvbmcgX19DTFJDQUxMX1BVUkVfT1JfQ0RFQ0wgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGQoIGxvbmcgdm9sYXRpbGUgKiwgbG9uZyApOworCisjZWxzZQorCitleHRlcm4gIkMiIGxvbmcgX19jZGVjbCBfSW50ZXJsb2NrZWRJbmNyZW1lbnQoIGxvbmcgdm9sYXRpbGUgKiApOworZXh0ZXJuICJDIiBsb25nIF9fY2RlY2wgX0ludGVybG9ja2VkRGVjcmVtZW50KCBsb25nIHZvbGF0aWxlICogKTsKK2V4dGVybiAiQyIgbG9uZyBfX2NkZWNsIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSggbG9uZyB2b2xhdGlsZSAqLCBsb25nLCBsb25nICk7CitleHRlcm4gIkMiIGxvbmcgX19jZGVjbCBfSW50ZXJsb2NrZWRFeGNoYW5nZSggbG9uZyB2b2xhdGlsZSAqLCBsb25nICk7CitleHRlcm4gIkMiIGxvbmcgX19jZGVjbCBfSW50ZXJsb2NrZWRFeGNoYW5nZUFkZCggbG9uZyB2b2xhdGlsZSAqLCBsb25nICk7CisKKyNlbmRpZgorCisjIHByYWdtYSBpbnRyaW5zaWMoIF9JbnRlcmxvY2tlZEluY3JlbWVudCApCisjIHByYWdtYSBpbnRyaW5zaWMoIF9JbnRlcmxvY2tlZERlY3JlbWVudCApCisjIHByYWdtYSBpbnRyaW5zaWMoIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSApCisjIHByYWdtYSBpbnRyaW5zaWMoIF9JbnRlcmxvY2tlZEV4Y2hhbmdlICkKKyMgcHJhZ21hIGludHJpbnNpYyggX0ludGVybG9ja2VkRXhjaGFuZ2VBZGQgKQorCisjIGlmIGRlZmluZWQoX01fSUE2NCkgfHwgZGVmaW5lZChfTV9BTUQ2NCkKKworZXh0ZXJuICJDIiB2b2lkKiBfX2NkZWNsIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZVBvaW50ZXIoIHZvaWQqIHZvbGF0aWxlICosIHZvaWQqLCB2b2lkKiApOworZXh0ZXJuICJDIiB2b2lkKiBfX2NkZWNsIF9JbnRlcmxvY2tlZEV4Y2hhbmdlUG9pbnRlciggdm9pZCogdm9sYXRpbGUgKiwgdm9pZCogKTsKKworIyAgcHJhZ21hIGludHJpbnNpYyggX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlUG9pbnRlciApCisjICBwcmFnbWEgaW50cmluc2ljKCBfSW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIgKQorCisjICBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfQ09NUEFSRV9FWENIQU5HRV9QT0lOVEVSIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZVBvaW50ZXIKKyMgIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRV9QT0lOVEVSIF9JbnRlcmxvY2tlZEV4Y2hhbmdlUG9pbnRlcgorCisjIGVsc2UKKworIyAgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0NPTVBBUkVfRVhDSEFOR0VfUE9JTlRFUihkZXN0LGV4Y2hhbmdlLGNvbXBhcmUpIFwKKyAgICAoKHZvaWQqKUJPT1NUX0lOVEVSTE9DS0VEX0NPTVBBUkVfRVhDSEFOR0UoKGxvbmcgdm9sYXRpbGUqKShkZXN0KSwobG9uZykoZXhjaGFuZ2UpLChsb25nKShjb21wYXJlKSkpCisjICBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0VfUE9JTlRFUihkZXN0LGV4Y2hhbmdlKSBcCisgICAgKCh2b2lkKilCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRSgobG9uZyB2b2xhdGlsZSopKGRlc3QpLChsb25nKShleGNoYW5nZSkpKQorCisjIGVuZGlmCisKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0lOQ1JFTUVOVCBfSW50ZXJsb2NrZWRJbmNyZW1lbnQKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0RFQ1JFTUVOVCBfSW50ZXJsb2NrZWREZWNyZW1lbnQKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0NPTVBBUkVfRVhDSEFOR0UgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlCisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRSBfSW50ZXJsb2NrZWRFeGNoYW5nZQorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0VfQUREIF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkCisKKyNlbGlmIGRlZmluZWQoIFdJTjMyICkgfHwgZGVmaW5lZCggX1dJTjMyICkgfHwgZGVmaW5lZCggX19XSU4zMl9fICkgfHwgZGVmaW5lZCggX19DWUdXSU5fXyApCisKKyNpZiBkZWZpbmVkKF9fTUlOR1c2NF9fKQorI2RlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9JTVBPUlQKKyNlbHNlCisjZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0lNUE9SVCBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyNlbmRpZgorCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2V4dGVybiAiQyIgQk9PU1RfSU5URVJMT0NLRURfSU1QT1JUIGxvbmcgX19zdGRjYWxsIEludGVybG9ja2VkSW5jcmVtZW50KCBsb25nIHZvbGF0aWxlICogKTsKK2V4dGVybiAiQyIgQk9PU1RfSU5URVJMT0NLRURfSU1QT1JUIGxvbmcgX19zdGRjYWxsIEludGVybG9ja2VkRGVjcmVtZW50KCBsb25nIHZvbGF0aWxlICogKTsKK2V4dGVybiAiQyIgQk9PU1RfSU5URVJMT0NLRURfSU1QT1JUIGxvbmcgX19zdGRjYWxsIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKCBsb25nIHZvbGF0aWxlICosIGxvbmcsIGxvbmcgKTsKK2V4dGVybiAiQyIgQk9PU1RfSU5URVJMT0NLRURfSU1QT1JUIGxvbmcgX19zdGRjYWxsIEludGVybG9ja2VkRXhjaGFuZ2UoIGxvbmcgdm9sYXRpbGUgKiwgbG9uZyApOworZXh0ZXJuICJDIiBCT09TVF9JTlRFUkxPQ0tFRF9JTVBPUlQgbG9uZyBfX3N0ZGNhbGwgSW50ZXJsb2NrZWRFeGNoYW5nZUFkZCggbG9uZyB2b2xhdGlsZSAqLCBsb25nICk7CisKKyMgaWYgZGVmaW5lZChfTV9JQTY0KSB8fCBkZWZpbmVkKF9NX0FNRDY0KQorZXh0ZXJuICJDIiBCT09TVF9JTlRFUkxPQ0tFRF9JTVBPUlQgdm9pZCogX19zdGRjYWxsIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlUG9pbnRlciggdm9pZCogdm9sYXRpbGUgKiwgdm9pZCosIHZvaWQqICk7CitleHRlcm4gIkMiIEJPT1NUX0lOVEVSTE9DS0VEX0lNUE9SVCB2b2lkKiBfX3N0ZGNhbGwgSW50ZXJsb2NrZWRFeGNoYW5nZVBvaW50ZXIoIHZvaWQqIHZvbGF0aWxlICosIHZvaWQqICk7CisjIGVuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9JTkNSRU1FTlQgOjpuZG5ib29zdDo6ZGV0YWlsOjpJbnRlcmxvY2tlZEluY3JlbWVudAorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfREVDUkVNRU5UIDo6bmRuYm9vc3Q6OmRldGFpbDo6SW50ZXJsb2NrZWREZWNyZW1lbnQKKyMgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0NPTVBBUkVfRVhDSEFOR0UgOjpuZG5ib29zdDo6ZGV0YWlsOjpJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZQorIyBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfRVhDSEFOR0UgOjpuZG5ib29zdDo6ZGV0YWlsOjpJbnRlcmxvY2tlZEV4Y2hhbmdlCisjIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRV9BREQgOjpuZG5ib29zdDo6ZGV0YWlsOjpJbnRlcmxvY2tlZEV4Y2hhbmdlQWRkCisKKyMgaWYgZGVmaW5lZChfTV9JQTY0KSB8fCBkZWZpbmVkKF9NX0FNRDY0KQorIyAgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0NPTVBBUkVfRVhDSEFOR0VfUE9JTlRFUiA6Om5kbmJvb3N0OjpkZXRhaWw6OkludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlUG9pbnRlcgorIyAgZGVmaW5lIEJPT1NUX0lOVEVSTE9DS0VEX0VYQ0hBTkdFX1BPSU5URVIgOjpuZG5ib29zdDo6ZGV0YWlsOjpJbnRlcmxvY2tlZEV4Y2hhbmdlUG9pbnRlcgorIyBlbHNlCisjICBkZWZpbmUgQk9PU1RfSU5URVJMT0NLRURfQ09NUEFSRV9FWENIQU5HRV9QT0lOVEVSKGRlc3QsZXhjaGFuZ2UsY29tcGFyZSkgXAorICAgICgodm9pZCopQk9PU1RfSU5URVJMT0NLRURfQ09NUEFSRV9FWENIQU5HRSgobG9uZyB2b2xhdGlsZSopKGRlc3QpLChsb25nKShleGNoYW5nZSksKGxvbmcpKGNvbXBhcmUpKSkKKyMgIGRlZmluZSBCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRV9QT0lOVEVSKGRlc3QsZXhjaGFuZ2UpIFwKKyAgICAoKHZvaWQqKUJPT1NUX0lOVEVSTE9DS0VEX0VYQ0hBTkdFKChsb25nIHZvbGF0aWxlKikoZGVzdCksKGxvbmcpKGV4Y2hhbmdlKSkpCisjIGVuZGlmCisKKyNlbHNlCisKKyMgZXJyb3IgIkludGVybG9ja2VkIGludHJpbnNpY3Mgbm90IGF2YWlsYWJsZSIKKworI2VuZGlmCisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX0RFVEFJTF9JTlRFUkxPQ0tFRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHAgYi9ib29zdC9kZXRhaWwvc3BfdHlwZWluZm8uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjYWUyNmUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9kZXRhaWwvc3BfdHlwZWluZm8uaHBwCkBAIC0wLDAgKzEsMTM1IEBACisjaWZuZGVmIEJPT1NUX0RFVEFJTF9TUF9UWVBFSU5GT19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfREVUQUlMX1NQX1RZUEVJTkZPX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8gIGRldGFpbC9zcF90eXBlaW5mby5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IDIwMDcgUGV0ZXIgRGltb3YKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy5ocHA+CisKKyNpZiBkZWZpbmVkKCBCT09TVF9OT19UWVBFSUQgKQorCisjaW5jbHVkZSA8Ym9vc3QvY3VycmVudF9mdW5jdGlvbi5ocHA+CisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworY2xhc3Mgc3BfdHlwZWluZm8KK3sKK3ByaXZhdGU6CisKKyAgICBzcF90eXBlaW5mbyggc3BfdHlwZWluZm8gY29uc3QmICk7CisgICAgc3BfdHlwZWluZm8mIG9wZXJhdG9yPSggc3BfdHlwZWluZm8gY29uc3QmICk7CisKKyAgICBjaGFyIGNvbnN0ICogbmFtZV87CisKK3B1YmxpYzoKKworICAgIGV4cGxpY2l0IHNwX3R5cGVpbmZvKCBjaGFyIGNvbnN0ICogbmFtZSApOiBuYW1lXyggbmFtZSApCisgICAgeworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PSggc3BfdHlwZWluZm8gY29uc3QmIHJocyApIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gdGhpcyA9PSAmcmhzOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3IhPSggc3BfdHlwZWluZm8gY29uc3QmIHJocyApIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gdGhpcyAhPSAmcmhzOworICAgIH0KKworICAgIGJvb2wgYmVmb3JlKCBzcF90eXBlaW5mbyBjb25zdCYgcmhzICkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBzdGQ6Omxlc3M8IHNwX3R5cGVpbmZvIGNvbnN0KiA+KCkoIHRoaXMsICZyaHMgKTsKKyAgICB9CisKKyAgICBjaGFyIGNvbnN0KiBuYW1lKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBuYW1lXzsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgc3BfdHlwZWlkXworeworICAgIHN0YXRpYyBzcF90eXBlaW5mbyB0aV87CisKKyAgICBzdGF0aWMgY2hhciBjb25zdCAqIG5hbWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEJPT1NUX0NVUlJFTlRfRlVOQ1RJT047CisgICAgfQorfTsKKworI2lmIGRlZmluZWQoX19TVU5QUk9fQ0MpCisvLyBzZWUgIzQxOTksIHRoZSBTdW4gU3R1ZGlvIGNvbXBpbGVyIGdldHMgY29uZnVzZWQgYWJvdXQgc3RhdGljIGluaXRpYWxpemF0aW9uIAorLy8gY29uc3RydWN0b3IgYXJndW1lbnRzLiBCdXQgYW4gYXNzaWdubWVudCB3b3JrcyBqdXN0IGZpbmUuIAordGVtcGxhdGU8Y2xhc3MgVD4gc3BfdHlwZWluZm8gc3BfdHlwZWlkXzwgVCA+Ojp0aV8gPSBzcF90eXBlaWRfPCBUID46Om5hbWUoKTsKKyNlbHNlCit0ZW1wbGF0ZTxjbGFzcyBUPiBzcF90eXBlaW5mbyBzcF90eXBlaWRfPCBUID46OnRpXyhzcF90eXBlaWRfPCBUID46Om5hbWUoKSk7CisjZW5kaWYKKwordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNwX3R5cGVpZF88IFQgJiA+OiBzcF90eXBlaWRfPCBUID4KK3sKK307CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHN0cnVjdCBzcF90eXBlaWRfPCBUIGNvbnN0ID46IHNwX3R5cGVpZF88IFQgPgoreworfTsKKwordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IHNwX3R5cGVpZF88IFQgdm9sYXRpbGUgPjogc3BfdHlwZWlkXzwgVCA+Cit7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3Qgc3BfdHlwZWlkXzwgVCBjb25zdCB2b2xhdGlsZSA+OiBzcF90eXBlaWRfPCBUID4KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZGVmaW5lIEJPT1NUX1NQX1RZUEVJRChUKSAobmRuYm9vc3Q6OmRldGFpbDo6c3BfdHlwZWlkXzxUPjo6dGlfKQorCisjZWxzZQorCisjaW5jbHVkZSA8dHlwZWluZm8+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKKyNpZiBkZWZpbmVkKCBCT09TVF9OT19TVERfVFlQRUlORk8gKQorCit0eXBlZGVmIDo6dHlwZV9pbmZvIHNwX3R5cGVpbmZvOworCisjZWxzZQorCit0eXBlZGVmIHN0ZDo6dHlwZV9pbmZvIHNwX3R5cGVpbmZvOworCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNkZWZpbmUgQk9PU1RfU1BfVFlQRUlEKFQpIHR5cGVpZChUKQorCisjZW5kaWYKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX0RFVEFJTF9TUF9UWVBFSU5GT19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcCBiL2Jvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGIzNDIzCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwCkBAIC0wLDAgKzEsMjY3IEBACisvLyBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMi4KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyNpZm5kZWYgV09SS0FST1VORF9EV0EyMDAyMTI2X0hQUAorIyBkZWZpbmUgV09SS0FST1VORF9EV0EyMDAyMTI2X0hQUAorCisvLyBDb21waWxlci9saWJyYXJ5IHZlcnNpb24gd29ya2Fyb3VuZCBtYWNybworLy8KKy8vIFVzYWdlOgorLy8KKy8vICAgICAjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisvLyAgICAgICAgLy8gd29ya2Fyb3VuZCBmb3IgZVZDNCBhbmQgVkM2CisvLyAgICAgICAgLi4uIC8vIHdvcmthcm91bmQgY29kZSBoZXJlCisvLyAgICAgI2VuZGlmCisvLworLy8gV2hlbiBCT09TVF9TVFJJQ1RfQ09ORklHIGlzIGRlZmluZWQsIGV4cGFuZHMgdG8gMC4gT3RoZXJ3aXNlLCB0aGUKKy8vIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgdW5kZWZpbmVkIG9yIGV4cGFuZCB0byBhIG51bWVyaWMKKy8vIHZhbHVlLiBUaGUgYWJvdmUgZXhwYW5kcyB0bzoKKy8vCisvLyAgICAgKEJPT1NUX01TVkMpICE9IDAgJiYgKEJPT1NUX01TVkMpIDwgMTMwMAorLy8KKy8vIFdoZW4gdXNlZCBmb3Igd29ya2Fyb3VuZHMgdGhhdCBhcHBseSB0byB0aGUgbGF0ZXN0IGtub3duIHZlcnNpb24gCisvLyBhbmQgYWxsIGVhcmxpZXIgdmVyc2lvbnMgb2YgYSBjb21waWxlciwgdGhlIGZvbGxvd2luZyBjb252ZW50aW9uIAorLy8gc2hvdWxkIGJlIG9ic2VydmVkOgorLy8KKy8vICAgICAjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCBCT09TVF9URVNURURfQVQoMTMwMSkpCisvLworLy8gVGhlIHZlcnNpb24gbnVtYmVyIGluIHRoaXMgY2FzZSBjb3JyZXNwb25kcyB0byB0aGUgbGFzdCB2ZXJzaW9uIGluCisvLyB3aGljaCB0aGUgd29ya2Fyb3VuZCB3YXMga25vd24gdG8gaGF2ZSBiZWVuIHJlcXVpcmVkLiBXaGVuCisvLyBCT09TVF9ERVRFQ1RfT1VUREFURURfV09SS0FST1VORFMgaXMgbm90IHRoZSBkZWZpbmVkLCB0aGUgbWFjcm8KKy8vIEJPT1NUX1RFU1RFRF9BVCh4KSBleHBhbmRzIHRvICIhPSAwIiwgd2hpY2ggZWZmZWN0aXZlbHkgYWN0aXZhdGVzCisvLyB0aGUgd29ya2Fyb3VuZCBmb3IgYW55IHZlcnNpb24gb2YgdGhlIGNvbXBpbGVyLiBXaGVuCisvLyBCT09TVF9ERVRFQ1RfT1VUREFURURfV09SS0FST1VORFMgaXMgZGVmaW5lZCwgYSBjb21waWxlciB3YXJuaW5nIG9yCisvLyBlcnJvciB3aWxsIGJlIGlzc3VlZCBpZiB0aGUgY29tcGlsZXIgdmVyc2lvbiBleGNlZWRzIHRoZSBhcmd1bWVudAorLy8gdG8gQk9PU1RfVEVTVEVEX0FUKCkuICBUaGlzIGNhbiBiZSB1c2VkIHRvIGxvY2F0ZSB3b3JrYXJvdW5kcyB3aGljaAorLy8gbWF5IGJlIG9ic29sZXRlZCBieSBuZXdlciB2ZXJzaW9ucy4KKworIyBpZm5kZWYgQk9PU1RfU1RSSUNUX0NPTkZJRworCisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKworI2lmbmRlZiBfX0JPUkxBTkRDX18KKyNkZWZpbmUgX19CT1JMQU5EQ19fX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX19CT1JMQU5EQ19fX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9fQ09ERUdFQVJDX18KKyNkZWZpbmUgX19DT0RFR0VBUkNfX19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fQ09ERUdFQVJDX19fV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX01TQ19WRVIKKyNkZWZpbmUgX01TQ19WRVJfV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfTVNDX1ZFUl9XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfTVNDX0ZVTExfVkVSCisjZGVmaW5lIF9NU0NfRlVMTF9WRVJfV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfTVNDX0ZVTExfVkVSX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIEJPT1NUX01TVkMKKyNkZWZpbmUgQk9PU1RfTVNWQ19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIEJPT1NUX01TVkNfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfTVNWQ19GVUxMX1ZFUgorI2RlZmluZSBCT09TVF9NU1ZDX0ZVTExfVkVSX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfTVNWQ19GVUxMX1ZFUl9XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX0dOVUNfXworI2RlZmluZSBfX0dOVUNfX19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fR05VQ19fX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9fR05VQ19NSU5PUl9fCisjZGVmaW5lIF9fR05VQ19NSU5PUl9fX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX19HTlVDX01JTk9SX19fV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX19HTlVDX1BBVENITEVWRUxfXworI2RlZmluZSBfX0dOVUNfUEFUQ0hMRVZFTF9fX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX19HTlVDX1BBVENITEVWRUxfX19XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX0lCTUNQUF9fCisjZGVmaW5lIF9fSUJNQ1BQX19fV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX0lCTUNQUF9fX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9fU1VOUFJPX0NDCisjZGVmaW5lIF9fU1VOUFJPX0NDX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX19TVU5QUk9fQ0NfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX19ERUNDWFhfVkVSCisjZGVmaW5lIF9fREVDQ1hYX1ZFUl9XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fREVDQ1hYX1ZFUl9XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX01XRVJLU19fCisjZGVmaW5lIF9fTVdFUktTX19fV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX01XRVJLU19fX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9fRURHX18KKyNkZWZpbmUgX19FREdfX19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fRURHX19fV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX19FREdfVkVSU0lPTl9fCisjZGVmaW5lIF9fRURHX1ZFUlNJT05fX19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fRURHX1ZFUlNJT05fX19XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX0hQX2FDQworI2RlZmluZSBfX0hQX2FDQ19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fSFBfYUNDX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9faHB4c3RkOTgKKyNkZWZpbmUgX19ocHhzdGQ5OF9XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9faHB4c3RkOThfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX0NSQVlDCisjZGVmaW5lIF9DUkFZQ19XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9DUkFZQ19XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX0RNQ19fCisjZGVmaW5lIF9fRE1DX19fV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX0RNQ19fX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIE1QV19DUExVUworI2RlZmluZSBNUFdfQ1BMVVNfV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBNUFdfQ1BMVVNfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX19DT01PX18KKyNkZWZpbmUgX19DT01PX19fV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX0NPTU9fX19XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX0NPTU9fVkVSU0lPTl9fCisjZGVmaW5lIF9fQ09NT19WRVJTSU9OX19fV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX0NPTU9fVkVSU0lPTl9fX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9fSU5URUxfQ09NUElMRVIKKyNkZWZpbmUgX19JTlRFTF9DT01QSUxFUl9XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fSU5URUxfQ09NUElMRVJfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX19JQ0wKKyNkZWZpbmUgX19JQ0xfV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBfX0lDTF9XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfQ09NUElMRVJfVkVSU0lPTgorI2RlZmluZSBfQ09NUElMRVJfVkVSU0lPTl9XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9DT01QSUxFUl9WRVJTSU9OX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisKKyNpZm5kZWYgX1JXU1REX1ZFUgorI2RlZmluZSBfUldTVERfVkVSX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX1JXU1REX1ZFUl9XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9SV1NURF9WRVIKKyNkZWZpbmUgQk9PU1RfUldTVERfVkVSX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfUldTVERfVkVSX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9fR0xJQkNQUF9fCisjZGVmaW5lIF9fR0xJQkNQUF9fX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX19HTElCQ1BQX19fV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX0dMSUJDWFhfVVNFX0M5OV9GUF9NQUNST1NfRFlOQU1JQworI2RlZmluZSBfR0xJQkNYWF9VU0VfQzk5X0ZQX01BQ1JPU19EWU5BTUlDX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX0dMSUJDWFhfVVNFX0M5OV9GUF9NQUNST1NfRFlOQU1JQ19XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfX1NHSV9TVExfUE9SVAorI2RlZmluZSBfX1NHSV9TVExfUE9SVF9XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9fU0dJX1NUTF9QT1JUX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIF9TVExQT1JUX1ZFUlNJT04KKyNkZWZpbmUgX1NUTFBPUlRfVkVSU0lPTl9XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9TVExQT1JUX1ZFUlNJT05fV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgX19MSUJDT01PX1ZFUlNJT05fXworI2RlZmluZSBfX0xJQkNPTU9fVkVSU0lPTl9fX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgX19MSUJDT01PX1ZFUlNJT05fX19XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBfQ1BQTElCX1ZFUgorI2RlZmluZSBfQ1BQTElCX1ZFUl9XT1JLQVJPVU5EX0dVQVJEIDEKKyNlbHNlCisjZGVmaW5lIF9DUFBMSUJfVkVSX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisKKyNpZm5kZWYgQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04KKyNkZWZpbmUgQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT05fV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBCT09TVF9JTlRFTF9DWFhfVkVSU0lPTl9XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorI2lmbmRlZiBCT09TVF9JTlRFTF9XSU4KKyNkZWZpbmUgQk9PU1RfSU5URUxfV0lOX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfSU5URUxfV0lOX1dPUktBUk9VTkRfR1VBUkQgMAorI2VuZGlmCisjaWZuZGVmIEJPT1NUX0RJTktVTVdBUkVfU1RETElCCisjZGVmaW5lIEJPT1NUX0RJTktVTVdBUkVfU1RETElCX1dPUktBUk9VTkRfR1VBUkQgMQorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfRElOS1VNV0FSRV9TVERMSUJfV09SS0FST1VORF9HVUFSRCAwCisjZW5kaWYKKyNpZm5kZWYgQk9PU1RfSU5URUwKKyNkZWZpbmUgQk9PU1RfSU5URUxfV09SS0FST1VORF9HVUFSRCAxCisjZWxzZQorI2RlZmluZSBCT09TVF9JTlRFTF9XT1JLQVJPVU5EX0dVQVJEIDAKKyNlbmRpZgorLy8gQWx3YXlzIGRlZmluZSB0byB6ZXJvLCBpZiBpdCdzIHVzZWQgaXQnbGwgYmUgZGVmaW5lZCBteSBNUEw6CisjZGVmaW5lIEJPT1NUX01QTF9DRkdfR0NDX1dPUktBUk9VTkRfR1VBUkQgMAorCisjICBkZWZpbmUgQk9PU1RfV09SS0FST1VORChzeW1ib2wsIHRlc3QpICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICgoc3ltYm9sICMjIF9XT1JLQVJPVU5EX0dVQVJEICsgMCA9PSAwKSAmJiAgICAgXAorICAgICAgICAgKHN5bWJvbCAhPSAwKSAmJiAoMSAlICgoIChzeW1ib2wgdGVzdCkgKSArIDEpKSkKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiBeICAgICAgICAgICBeIF4KKy8vIFRoZSBleHRyYSBsZXZlbCBvZiBwYXJlbnRoZXNpcyBuZXN0aW5nIGFib3ZlLCBhbG9uZyB3aXRoIHRoZQorLy8gQk9PU1RfT1BFTl9QQVJFTiBpbmRpcmVjdGlvbiBiZWxvdywgaXMgcmVxdWlyZWQgdG8gc2F0aXNmeSB0aGUKKy8vIGJyb2tlbiBwcmVwcm9jZXNzb3IgaW4gTVdDVyA4LjMgYW5kIGVhcmxpZXIuCisvLworLy8gVGhlIGJhc2ljIG1lY2hhbmlzbSB3b3JrcyBhcyBmb2xsb3dzOgorLy8gICAgICAoc3ltYm9sIHRlc3QpICsgMSAgICAgICAgPT4gICBpZiAoc3ltYm9sIHRlc3QpIHRoZW4gMiBlbHNlIDEKKy8vICAgICAgMSAlICgoc3ltYm9sIHRlc3QpICsgMSkgID0+ICAgaWYgKHN5bWJvbCB0ZXN0KSB0aGVuIDEgZWxzZSAwCisvLworLy8gVGhlIGNvbXBsaWNhdGlvbiB3aXRoICUgaXMgZm9yIGNvb3BlcmF0aW9uIHdpdGggQk9PU1RfVEVTVEVEX0FUKCkuCisvLyBXaGVuICJ0ZXN0IiBpcyBCT09TVF9URVNURURfQVQoeCkgYW5kCisvLyBCT09TVF9ERVRFQ1RfT1VUREFURURfV09SS0FST1VORFMgaXMgI2RlZmluZWQsCisvLworLy8gICAgICBzeW1ib2wgdGVzdCAgICAgICAgICAgICAgPT4gICBpZiAoc3ltYm9sIDw9IHgpIHRoZW4gMSBlbHNlIC0xCisvLyAgICAgIChzeW1ib2wgdGVzdCkgKyAxICAgICAgICA9PiAgIGlmIChzeW1ib2wgPD0geCkgdGhlbiAyIGVsc2UgMAorLy8gICAgICAxICUgKChzeW1ib2wgdGVzdCkgKyAxKSAgPT4gICBpZiAoc3ltYm9sIDw9IHgpIHRoZW4gMSBlbHNlIGRpdmlkZS1ieS16ZXJvCisvLworCisjICBpZmRlZiBCT09TVF9ERVRFQ1RfT1VUREFURURfV09SS0FST1VORFMKKyMgICBkZWZpbmUgQk9PU1RfT1BFTl9QQVJFTiAoCisjICAgZGVmaW5lIEJPT1NUX1RFU1RFRF9BVCh2YWx1ZSkgID4gdmFsdWUpID8oLTEpOiBCT09TVF9PUEVOX1BBUkVOIDEKKyMgIGVsc2UKKyMgICBkZWZpbmUgQk9PU1RfVEVTVEVEX0FUKHZhbHVlKSAhPSAoKHZhbHVlKS0odmFsdWUpKQorIyAgZW5kaWYKKworIyBlbHNlCisKKyMgIGRlZmluZSBCT09TVF9XT1JLQVJPVU5EKHN5bWJvbCwgdGVzdCkgMAorCisjIGVuZGlmIAorCisjZW5kaWYgLy8gV09SS0FST1VORF9EV0EyMDAyMTI2X0hQUApkaWZmIC0tZ2l0IGEvYm9vc3QvZXhjZXB0aW9uL2RldGFpbC9hdHRyaWJ1dGVfbm9yZXR1cm4uaHBwIGIvYm9vc3QvZXhjZXB0aW9uL2RldGFpbC9hdHRyaWJ1dGVfbm9yZXR1cm4uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlOWYwMzEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9leGNlcHRpb24vZGV0YWlsL2F0dHJpYnV0ZV9ub3JldHVybi5ocHAKQEAgLTAsMCArMSwxNyBAQAorLy9Db3B5cmlnaHQgKGMpIDIwMDkgRW1pbCBEb3RjaGV2c2tpIGFuZCBSZXZlcmdlIFN0dWRpb3MsIEluYy4KKworLy9EaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvL2ZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIFVVSURfNjE1MzFBQjA2ODA2MTFERUFERDU4NDY4NTVEODk1OTMKKyNkZWZpbmUgVVVJRF82MTUzMUFCMDY4MDYxMURFQURENTg0Njg1NUQ4OTU5MworCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNkZWZpbmUgQk9PU1RfQVRUUklCVVRFX05PUkVUVVJOIF9fZGVjbHNwZWMobm9yZXR1cm4pCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorI2RlZmluZSBCT09TVF9BVFRSSUJVVEVfTk9SRVRVUk4gX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSkKKyNlbHNlCisjZGVmaW5lIEJPT1NUX0FUVFJJQlVURV9OT1JFVFVSTgorI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvZXhjZXB0aW9uL2V4Y2VwdGlvbi5ocHAgYi9ib29zdC9leGNlcHRpb24vZXhjZXB0aW9uLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjcxNjFkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvZXhjZXB0aW9uL2V4Y2VwdGlvbi5ocHAKQEAgLTAsMCArMSw0ODMgQEAKKy8vQ29weXJpZ2h0IChjKSAyMDA2LTIwMDkgRW1pbCBEb3RjaGV2c2tpIGFuZCBSZXZlcmdlIFN0dWRpb3MsIEluYy4KKworLy9EaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nCisvL2ZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIFVVSURfMjc0REEzNjYwMDRFMTFEQ0IxRERGRTJFNTZEODk1OTMKKyNkZWZpbmUgVVVJRF8yNzREQTM2NjAwNEUxMURDQjFEREZFMkU1NkQ4OTU5MworI2lmIGRlZmluZWQoX19HTlVDX18pICYmICFkZWZpbmVkKEJPT1NUX0VYQ0VQVElPTl9FTkFCTEVfV0FSTklOR1MpCisjcHJhZ21hIEdDQyBzeXN0ZW1faGVhZGVyCisjZW5kaWYKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAhZGVmaW5lZChCT09TVF9FWENFUFRJT05fRU5BQkxFX1dBUk5JTkdTKQorI3ByYWdtYSB3YXJuaW5nKHB1c2gsMSkKKyNlbmRpZgorCituYW1lc3BhY2UKK25kbmJvb3N0CisgICAgeworICAgIG5hbWVzcGFjZQorICAgIGV4Y2VwdGlvbl9kZXRhaWwKKyAgICAgICAgeworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICAgICAgY2xhc3MKKyAgICAgICAgcmVmY291bnRfcHRyCisgICAgICAgICAgICB7CisgICAgICAgICAgICBwdWJsaWM6CisKKyAgICAgICAgICAgIHJlZmNvdW50X3B0cigpOgorICAgICAgICAgICAgICAgIHB4XygwKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH5yZWZjb3VudF9wdHIoKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZWxlYXNlKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZWZjb3VudF9wdHIoIHJlZmNvdW50X3B0ciBjb25zdCAmIHggKToKKyAgICAgICAgICAgICAgICBweF8oeC5weF8pCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGFkZF9yZWYoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlZmNvdW50X3B0ciAmCisgICAgICAgICAgICBvcGVyYXRvcj0oIHJlZmNvdW50X3B0ciBjb25zdCAmIHggKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBhZG9wdCh4LnB4Xyk7CisgICAgICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZAorICAgICAgICAgICAgYWRvcHQoIFQgKiBweCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlbGVhc2UoKTsKKyAgICAgICAgICAgICAgICBweF89cHg7CisgICAgICAgICAgICAgICAgYWRkX3JlZigpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgVCAqCisgICAgICAgICAgICBnZXQoKSBjb25zdAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcHhfOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHJpdmF0ZToKKworICAgICAgICAgICAgVCAqIHB4XzsKKworICAgICAgICAgICAgdm9pZAorICAgICAgICAgICAgYWRkX3JlZigpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmKCBweF8gKQorICAgICAgICAgICAgICAgICAgICBweF8tPmFkZF9yZWYoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZvaWQKKyAgICAgICAgICAgIHJlbGVhc2UoKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiggcHhfICYmIHB4Xy0+cmVsZWFzZSgpICkKKyAgICAgICAgICAgICAgICAgICAgcHhfPTA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVGFnLGNsYXNzIFQ+CisgICAgY2xhc3MgZXJyb3JfaW5mbzsKKworICAgIHR5cGVkZWYgZXJyb3JfaW5mbzxzdHJ1Y3QgdGhyb3dfZnVuY3Rpb25fLGNoYXIgY29uc3QgKj4gdGhyb3dfZnVuY3Rpb247CisgICAgdHlwZWRlZiBlcnJvcl9pbmZvPHN0cnVjdCB0aHJvd19maWxlXyxjaGFyIGNvbnN0ICo+IHRocm93X2ZpbGU7CisgICAgdHlwZWRlZiBlcnJvcl9pbmZvPHN0cnVjdCB0aHJvd19saW5lXyxpbnQ+IHRocm93X2xpbmU7CisKKyAgICB0ZW1wbGF0ZSA8PgorICAgIGNsYXNzCisgICAgZXJyb3JfaW5mbzx0aHJvd19mdW5jdGlvbl8sY2hhciBjb25zdCAqPgorICAgICAgICB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiBjaGFyIGNvbnN0ICogdmFsdWVfdHlwZTsKKyAgICAgICAgdmFsdWVfdHlwZSB2XzsKKyAgICAgICAgZXhwbGljaXQKKyAgICAgICAgZXJyb3JfaW5mbyggdmFsdWVfdHlwZSB2ICk6CisgICAgICAgICAgICB2Xyh2KQorICAgICAgICAgICAgeworICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgdGVtcGxhdGUgPD4KKyAgICBjbGFzcworICAgIGVycm9yX2luZm88dGhyb3dfZmlsZV8sY2hhciBjb25zdCAqPgorICAgICAgICB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiBjaGFyIGNvbnN0ICogdmFsdWVfdHlwZTsKKyAgICAgICAgdmFsdWVfdHlwZSB2XzsKKyAgICAgICAgZXhwbGljaXQKKyAgICAgICAgZXJyb3JfaW5mbyggdmFsdWVfdHlwZSB2ICk6CisgICAgICAgICAgICB2Xyh2KQorICAgICAgICAgICAgeworICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgdGVtcGxhdGUgPD4KKyAgICBjbGFzcworICAgIGVycm9yX2luZm88dGhyb3dfbGluZV8saW50PgorICAgICAgICB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiBpbnQgdmFsdWVfdHlwZTsKKyAgICAgICAgdmFsdWVfdHlwZSB2XzsKKyAgICAgICAgZXhwbGljaXQKKyAgICAgICAgZXJyb3JfaW5mbyggdmFsdWVfdHlwZSB2ICk6CisgICAgICAgICAgICB2Xyh2KQorICAgICAgICAgICAgeworICAgICAgICAgICAgfQorICAgICAgICB9OworCisjaWYgZGVmaW5lZChfX0dOVUNfXykKKyMgaWYgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPj0gMSkgfHwgKF9fR05VQ19fID4gNCkKKyMgIHByYWdtYSBHQ0MgdmlzaWJpbGl0eSBwdXNoIChkZWZhdWx0KQorIyBlbmRpZgorI2VuZGlmCisgICAgY2xhc3MgZXhjZXB0aW9uOworI2lmIGRlZmluZWQoX19HTlVDX18pCisjIGlmIChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDEpIHx8IChfX0dOVUNfXyA+IDQpCisjICBwcmFnbWEgR0NDIHZpc2liaWxpdHkgcG9wCisjIGVuZGlmCisjZW5kaWYKKworICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgIGNsYXNzIHNoYXJlZF9wdHI7CisKKyAgICBuYW1lc3BhY2UKKyAgICBleGNlcHRpb25fZGV0YWlsCisgICAgICAgIHsKKyAgICAgICAgY2xhc3MgZXJyb3JfaW5mb19iYXNlOworICAgICAgICBzdHJ1Y3QgdHlwZV9pbmZvXzsKKworICAgICAgICBzdHJ1Y3QKKyAgICAgICAgZXJyb3JfaW5mb19jb250YWluZXIKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHZpcnR1YWwgY2hhciBjb25zdCAqIGRpYWdub3N0aWNfaW5mb3JtYXRpb24oIGNoYXIgY29uc3QgKiApIGNvbnN0ID0gMDsKKyAgICAgICAgICAgIHZpcnR1YWwgc2hhcmVkX3B0cjxlcnJvcl9pbmZvX2Jhc2U+IGdldCggdHlwZV9pbmZvXyBjb25zdCAmICkgY29uc3QgPSAwOworICAgICAgICAgICAgdmlydHVhbCB2b2lkIHNldCggc2hhcmVkX3B0cjxlcnJvcl9pbmZvX2Jhc2U+IGNvbnN0ICYsIHR5cGVfaW5mb18gY29uc3QgJiApID0gMDsKKyAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRfcmVmKCkgY29uc3QgPSAwOworICAgICAgICAgICAgdmlydHVhbCBib29sIHJlbGVhc2UoKSBjb25zdCA9IDA7CisgICAgICAgICAgICB2aXJ0dWFsIHJlZmNvdW50X3B0cjxleGNlcHRpb25fZGV0YWlsOjplcnJvcl9pbmZvX2NvbnRhaW5lcj4gY2xvbmUoKSBjb25zdCA9IDA7CisKKyAgICAgICAgICAgIHByb3RlY3RlZDoKKworICAgICAgICAgICAgfmVycm9yX2luZm9fY29udGFpbmVyKCkgdGhyb3coKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcz4KKyAgICAgICAgc3RydWN0IGdldF9pbmZvOworCisgICAgICAgIHRlbXBsYXRlIDw+CisgICAgICAgIHN0cnVjdCBnZXRfaW5mbzx0aHJvd19mdW5jdGlvbj47CisKKyAgICAgICAgdGVtcGxhdGUgPD4KKyAgICAgICAgc3RydWN0IGdldF9pbmZvPHRocm93X2ZpbGU+OworCisgICAgICAgIHRlbXBsYXRlIDw+CisgICAgICAgIHN0cnVjdCBnZXRfaW5mbzx0aHJvd19saW5lPjsKKworICAgICAgICBjaGFyIGNvbnN0ICogZ2V0X2RpYWdub3N0aWNfaW5mb3JtYXRpb24oIGV4Y2VwdGlvbiBjb25zdCAmLCBjaGFyIGNvbnN0ICogKTsKKworICAgICAgICB2b2lkIGNvcHlfYm9vc3RfZXhjZXB0aW9uKCBleGNlcHRpb24gKiwgZXhjZXB0aW9uIGNvbnN0ICogKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRSxjbGFzcyBUYWcsY2xhc3MgVD4KKyAgICAgICAgRSBjb25zdCAmIHNldF9pbmZvKCBFIGNvbnN0ICYsIGVycm9yX2luZm88VGFnLFQ+IGNvbnN0ICYgKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRT4KKyAgICAgICAgRSBjb25zdCAmIHNldF9pbmZvKCBFIGNvbnN0ICYsIHRocm93X2Z1bmN0aW9uIGNvbnN0ICYgKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRT4KKyAgICAgICAgRSBjb25zdCAmIHNldF9pbmZvKCBFIGNvbnN0ICYsIHRocm93X2ZpbGUgY29uc3QgJiApOworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBFPgorICAgICAgICBFIGNvbnN0ICYgc2V0X2luZm8oIEUgY29uc3QgJiwgdGhyb3dfbGluZSBjb25zdCAmICk7CisgICAgICAgIH0KKworI2lmIGRlZmluZWQoX19HTlVDX18pCisjIGlmIChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDEpIHx8IChfX0dOVUNfXyA+IDQpCisjICBwcmFnbWEgR0NDIHZpc2liaWxpdHkgcHVzaCAoZGVmYXVsdCkKKyMgZW5kaWYKKyNlbmRpZgorICAgIGNsYXNzCisgICAgZXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgcHJvdGVjdGVkOgorCisgICAgICAgIGV4Y2VwdGlvbigpOgorICAgICAgICAgICAgdGhyb3dfZnVuY3Rpb25fKDApLAorICAgICAgICAgICAgdGhyb3dfZmlsZV8oMCksCisgICAgICAgICAgICB0aHJvd19saW5lXygtMSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KKworI2lmZGVmIF9fSFBfYUNDCisgICAgICAgIC8vT24gSFAgYUNDLCB0aGlzIHByb3RlY3RlZCBjb3B5IGNvbnN0cnVjdG9yIHByZXZlbnRzIHRocm93aW5nIG5kbmJvb3N0OjpleGNlcHRpb24uCisgICAgICAgIC8vT24gYWxsIG90aGVyIHBsYXRmb3JtcywgdGhlIHNhbWUgZWZmZWN0IGlzIGFjaGlldmVkIGJ5IHRoZSBwdXJlIHZpcnR1YWwgZGVzdHJ1Y3Rvci4KKyAgICAgICAgZXhjZXB0aW9uKCBleGNlcHRpb24gY29uc3QgJiB4ICkgdGhyb3coKToKKyAgICAgICAgICAgIGRhdGFfKHguZGF0YV8pLAorICAgICAgICAgICAgdGhyb3dfZnVuY3Rpb25fKHgudGhyb3dfZnVuY3Rpb25fKSwKKyAgICAgICAgICAgIHRocm93X2ZpbGVfKHgudGhyb3dfZmlsZV8pLAorICAgICAgICAgICAgdGhyb3dfbGluZV8oeC50aHJvd19saW5lXykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KKyNlbmRpZgorCisgICAgICAgIHZpcnR1YWwgfmV4Y2VwdGlvbigpIHRocm93KCkKKyNpZm5kZWYgX19IUF9hQ0MKKyAgICAgICAgICAgID0gMCAvL1dvcmthcm91bmQgZm9yIEhQIGFDQywgPTAgaW5jb3JyZWN0bHkgbGVhZHMgdG8gbGluayBlcnJvcnMuCisjZW5kaWYKKyAgICAgICAgICAgIDsKKworI2lmIChkZWZpbmVkKF9fTVdFUktTX18pICYmIF9fTVdFUktTX188PTB4MzIwNykgfHwgKGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSPD0xMzEwKQorICAgICAgICBwdWJsaWM6CisjZWxzZQorICAgICAgICBwcml2YXRlOgorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBFPgorICAgICAgICBmcmllbmQgRSBjb25zdCAmIGV4Y2VwdGlvbl9kZXRhaWw6OnNldF9pbmZvKCBFIGNvbnN0ICYsIHRocm93X2Z1bmN0aW9uIGNvbnN0ICYgKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRT4KKyAgICAgICAgZnJpZW5kIEUgY29uc3QgJiBleGNlcHRpb25fZGV0YWlsOjpzZXRfaW5mbyggRSBjb25zdCAmLCB0aHJvd19maWxlIGNvbnN0ICYgKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRT4KKyAgICAgICAgZnJpZW5kIEUgY29uc3QgJiBleGNlcHRpb25fZGV0YWlsOjpzZXRfaW5mbyggRSBjb25zdCAmLCB0aHJvd19saW5lIGNvbnN0ICYgKTsKKworICAgICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRSxjbGFzcyBUYWcsY2xhc3MgVD4KKyAgICAgICAgZnJpZW5kIEUgY29uc3QgJiBleGNlcHRpb25fZGV0YWlsOjpzZXRfaW5mbyggRSBjb25zdCAmLCBlcnJvcl9pbmZvPFRhZyxUPiBjb25zdCAmICk7CisKKyAgICAgICAgZnJpZW5kIGNoYXIgY29uc3QgKiBleGNlcHRpb25fZGV0YWlsOjpnZXRfZGlhZ25vc3RpY19pbmZvcm1hdGlvbiggZXhjZXB0aW9uIGNvbnN0ICYsIGNoYXIgY29uc3QgKiApOworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcz4KKyAgICAgICAgZnJpZW5kIHN0cnVjdCBleGNlcHRpb25fZGV0YWlsOjpnZXRfaW5mbzsKKyAgICAgICAgZnJpZW5kIHN0cnVjdCBleGNlcHRpb25fZGV0YWlsOjpnZXRfaW5mbzx0aHJvd19mdW5jdGlvbj47CisgICAgICAgIGZyaWVuZCBzdHJ1Y3QgZXhjZXB0aW9uX2RldGFpbDo6Z2V0X2luZm88dGhyb3dfZmlsZT47CisgICAgICAgIGZyaWVuZCBzdHJ1Y3QgZXhjZXB0aW9uX2RldGFpbDo6Z2V0X2luZm88dGhyb3dfbGluZT47CisgICAgICAgIGZyaWVuZCB2b2lkIGV4Y2VwdGlvbl9kZXRhaWw6OmNvcHlfYm9vc3RfZXhjZXB0aW9uKCBleGNlcHRpb24gKiwgZXhjZXB0aW9uIGNvbnN0ICogKTsKKyNlbmRpZgorICAgICAgICBtdXRhYmxlIGV4Y2VwdGlvbl9kZXRhaWw6OnJlZmNvdW50X3B0cjxleGNlcHRpb25fZGV0YWlsOjplcnJvcl9pbmZvX2NvbnRhaW5lcj4gZGF0YV87CisgICAgICAgIG11dGFibGUgY2hhciBjb25zdCAqIHRocm93X2Z1bmN0aW9uXzsKKyAgICAgICAgbXV0YWJsZSBjaGFyIGNvbnN0ICogdGhyb3dfZmlsZV87CisgICAgICAgIG11dGFibGUgaW50IHRocm93X2xpbmVfOworICAgICAgICB9OworI2lmIGRlZmluZWQoX19HTlVDX18pCisjIGlmIChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDEpIHx8IChfX0dOVUNfXyA+IDQpCisjICBwcmFnbWEgR0NDIHZpc2liaWxpdHkgcG9wCisjIGVuZGlmCisjZW5kaWYKKworICAgIGlubGluZQorICAgIGV4Y2VwdGlvbjo6CisgICAgfmV4Y2VwdGlvbigpIHRocm93KCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICBuYW1lc3BhY2UKKyAgICBleGNlcHRpb25fZGV0YWlsCisgICAgICAgIHsKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIEU+CisgICAgICAgIEUgY29uc3QgJgorICAgICAgICBzZXRfaW5mbyggRSBjb25zdCAmIHgsIHRocm93X2Z1bmN0aW9uIGNvbnN0ICYgeSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICB4LnRocm93X2Z1bmN0aW9uXz15LnZfOworICAgICAgICAgICAgcmV0dXJuIHg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIEU+CisgICAgICAgIEUgY29uc3QgJgorICAgICAgICBzZXRfaW5mbyggRSBjb25zdCAmIHgsIHRocm93X2ZpbGUgY29uc3QgJiB5ICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIHgudGhyb3dfZmlsZV89eS52XzsKKyAgICAgICAgICAgIHJldHVybiB4OworICAgICAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBFPgorICAgICAgICBFIGNvbnN0ICYKKyAgICAgICAgc2V0X2luZm8oIEUgY29uc3QgJiB4LCB0aHJvd19saW5lIGNvbnN0ICYgeSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICB4LnRocm93X2xpbmVfPXkudl87CisgICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICBuYW1lc3BhY2UKKyAgICBleGNlcHRpb25fZGV0YWlsCisgICAgICAgIHsKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorIyBpZiAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA+PSAxKSB8fCAoX19HTlVDX18gPiA0KQorIyAgcHJhZ21hIEdDQyB2aXNpYmlsaXR5IHB1c2ggKGRlZmF1bHQpCisjIGVuZGlmCisjZW5kaWYKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIHN0cnVjdAorICAgICAgICBlcnJvcl9pbmZvX2luamVjdG9yOgorICAgICAgICAgICAgcHVibGljIFQsCisgICAgICAgICAgICBwdWJsaWMgZXhjZXB0aW9uCisgICAgICAgICAgICB7CisgICAgICAgICAgICBleHBsaWNpdAorICAgICAgICAgICAgZXJyb3JfaW5mb19pbmplY3RvciggVCBjb25zdCAmIHggKToKKyAgICAgICAgICAgICAgICBUKHgpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfmVycm9yX2luZm9faW5qZWN0b3IoKSB0aHJvdygpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisjaWYgZGVmaW5lZChfX0dOVUNfXykKKyMgaWYgKF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPj0gMSkgfHwgKF9fR05VQ19fID4gNCkKKyMgIHByYWdtYSBHQ0MgdmlzaWJpbGl0eSBwb3AKKyMgZW5kaWYKKyNlbmRpZgorCisgICAgICAgIHN0cnVjdCBsYXJnZV9zaXplIHsgY2hhciBjWzI1Nl07IH07CisgICAgICAgIGxhcmdlX3NpemUgZGlzcGF0Y2hfYm9vc3RfZXhjZXB0aW9uKCBleGNlcHRpb24gY29uc3QgKiApOworCisgICAgICAgIHN0cnVjdCBzbWFsbF9zaXplIHsgfTsKKyAgICAgICAgc21hbGxfc2l6ZSBkaXNwYXRjaF9ib29zdF9leGNlcHRpb24oIHZvaWQgY29uc3QgKiApOworCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyxpbnQ+CisgICAgICAgIHN0cnVjdCBlbmFibGVfZXJyb3JfaW5mb19oZWxwZXI7CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIHN0cnVjdAorICAgICAgICBlbmFibGVfZXJyb3JfaW5mb19oZWxwZXI8VCxzaXplb2YobGFyZ2Vfc2l6ZSk+CisgICAgICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIHN0cnVjdAorICAgICAgICBlbmFibGVfZXJyb3JfaW5mb19oZWxwZXI8VCxzaXplb2Yoc21hbGxfc2l6ZSk+CisgICAgICAgICAgICB7CisgICAgICAgICAgICB0eXBlZGVmIGVycm9yX2luZm9faW5qZWN0b3I8VD4gdHlwZTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgICAgIHN0cnVjdAorICAgICAgICBlbmFibGVfZXJyb3JfaW5mb19yZXR1cm5fdHlwZQorICAgICAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBlbmFibGVfZXJyb3JfaW5mb19oZWxwZXI8VCxzaXplb2YoZXhjZXB0aW9uX2RldGFpbDo6ZGlzcGF0Y2hfYm9vc3RfZXhjZXB0aW9uKHN0YXRpY19jYXN0PFQgKj4oMCkpKT46OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgIGlubGluZQorICAgIHR5cGVuYW1lCisgICAgZXhjZXB0aW9uX2RldGFpbDo6ZW5hYmxlX2Vycm9yX2luZm9fcmV0dXJuX3R5cGU8VD46OnR5cGUKKyAgICBlbmFibGVfZXJyb3JfaW5mbyggVCBjb25zdCAmIHggKQorICAgICAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgZXhjZXB0aW9uX2RldGFpbDo6ZW5hYmxlX2Vycm9yX2luZm9fcmV0dXJuX3R5cGU8VD46OnR5cGUgcnQ7CisgICAgICAgIHJldHVybiBydCh4KTsKKyAgICAgICAgfQorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICBuYW1lc3BhY2UKKyAgICBleGNlcHRpb25fZGV0YWlsCisgICAgICAgIHsKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorIyBpZiAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA+PSAxKSB8fCAoX19HTlVDX18gPiA0KQorIyAgcHJhZ21hIEdDQyB2aXNpYmlsaXR5IHB1c2ggKGRlZmF1bHQpCisjIGVuZGlmCisjZW5kaWYKKyAgICAgICAgY2xhc3MKKyAgICAgICAgY2xvbmVfYmFzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgcHVibGljOgorCisgICAgICAgICAgICB2aXJ0dWFsIGNsb25lX2Jhc2UgY29uc3QgKiBjbG9uZSgpIGNvbnN0ID0gMDsKKyAgICAgICAgICAgIHZpcnR1YWwgdm9pZCByZXRocm93KCkgY29uc3QgPSAwOworCisgICAgICAgICAgICB2aXJ0dWFsCisgICAgICAgICAgICB+Y2xvbmVfYmFzZSgpIHRocm93KCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorIyBpZiAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA+PSAxKSB8fCAoX19HTlVDX18gPiA0KQorIyAgcHJhZ21hIEdDQyB2aXNpYmlsaXR5IHBvcAorIyBlbmRpZgorI2VuZGlmCisKKyAgICAgICAgaW5saW5lCisgICAgICAgIHZvaWQKKyAgICAgICAgY29weV9ib29zdF9leGNlcHRpb24oIGV4Y2VwdGlvbiAqIGEsIGV4Y2VwdGlvbiBjb25zdCAqIGIgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgcmVmY291bnRfcHRyPGVycm9yX2luZm9fY29udGFpbmVyPiBkYXRhOworICAgICAgICAgICAgaWYoIGVycm9yX2luZm9fY29udGFpbmVyICogZD1iLT5kYXRhXy5nZXQoKSApCisgICAgICAgICAgICAgICAgZGF0YSA9IGQtPmNsb25lKCk7CisgICAgICAgICAgICBhLT50aHJvd19maWxlXyA9IGItPnRocm93X2ZpbGVfOworICAgICAgICAgICAgYS0+dGhyb3dfbGluZV8gPSBiLT50aHJvd19saW5lXzsKKyAgICAgICAgICAgIGEtPnRocm93X2Z1bmN0aW9uXyA9IGItPnRocm93X2Z1bmN0aW9uXzsKKyAgICAgICAgICAgIGEtPmRhdGFfID0gZGF0YTsKKyAgICAgICAgICAgIH0KKworICAgICAgICBpbmxpbmUKKyAgICAgICAgdm9pZAorICAgICAgICBjb3B5X2Jvb3N0X2V4Y2VwdGlvbiggdm9pZCAqLCB2b2lkIGNvbnN0ICogKQorICAgICAgICAgICAgeworICAgICAgICAgICAgfQorCisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgICAgICBjbGFzcworICAgICAgICBjbG9uZV9pbXBsOgorICAgICAgICAgICAgcHVibGljIFQsCisgICAgICAgICAgICBwdWJsaWMgdmlydHVhbCBjbG9uZV9iYXNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICBzdHJ1Y3QgY2xvbmVfdGFnIHsgfTsKKyAgICAgICAgICAgIGNsb25lX2ltcGwoIGNsb25lX2ltcGwgY29uc3QgJiB4LCBjbG9uZV90YWcgKToKKyAgICAgICAgICAgICAgICBUKHgpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvcHlfYm9vc3RfZXhjZXB0aW9uKHRoaXMsJngpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljOgorCisgICAgICAgICAgICBleHBsaWNpdAorICAgICAgICAgICAgY2xvbmVfaW1wbCggVCBjb25zdCAmIHggKToKKyAgICAgICAgICAgICAgICBUKHgpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvcHlfYm9vc3RfZXhjZXB0aW9uKHRoaXMsJngpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfmNsb25lX2ltcGwoKSB0aHJvdygpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHJpdmF0ZToKKworICAgICAgICAgICAgY2xvbmVfYmFzZSBjb25zdCAqCisgICAgICAgICAgICBjbG9uZSgpIGNvbnN0CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgY2xvbmVfaW1wbCgqdGhpcyxjbG9uZV90YWcoKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkCisgICAgICAgICAgICByZXRocm93KCkgY29uc3QKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhyb3cqdGhpczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICBpbmxpbmUKKyAgICBleGNlcHRpb25fZGV0YWlsOjpjbG9uZV9pbXBsPFQ+CisgICAgZW5hYmxlX2N1cnJlbnRfZXhjZXB0aW9uKCBUIGNvbnN0ICYgeCApCisgICAgICAgIHsKKyAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbl9kZXRhaWw6OmNsb25lX2ltcGw8VD4oeCk7CisgICAgICAgIH0KKyAgICB9CisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAhZGVmaW5lZChCT09TVF9FWENFUFRJT05fRU5BQkxFX1dBUk5JTkdTKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorI2VuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9tYWtlX3NoYXJlZC5ocHAgYi9ib29zdC9tYWtlX3NoYXJlZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzA0OTM4ZgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21ha2Vfc2hhcmVkLmhwcApAQCAtMCwwICsxLDE3IEBACisjaWZuZGVmIEJPT1NUX01BS0VfU0hBUkVEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NQUtFX1NIQVJFRF9IUFBfSU5DTFVERUQKKworLy8gIG1ha2Vfc2hhcmVkLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMDggUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9zbWFydF9wdHIvbWFrZV9zaGFyZWQuaHRtbAorLy8gIGZvciBkb2N1bWVudGF0aW9uLgorCisjaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL21ha2Vfc2hhcmVkLmhwcD4KKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfTUFLRV9TSEFSRURfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tZW1vcnlfb3JkZXIuaHBwIGIvYm9vc3QvbWVtb3J5X29yZGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTQyOTBjCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbWVtb3J5X29yZGVyLmhwcApAQCAtMCwwICsxLDUzIEBACisjaWZuZGVmIEJPT1NUX01FTU9SWV9PUkRFUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTUVNT1JZX09SREVSX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8gIGJvb3N0L21lbW9yeV9vcmRlci5ocHAKKy8vCisvLyAgRGVmaW5lcyBlbnVtIG5kbmJvb3N0OjptZW1vcnlfb3JkZXIgcGVyIHRoZSBDKysweCB3b3JraW5nIGRyYWZ0CisvLworLy8gIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCisvLworLy8gRW51bSB2YWx1ZXMgYXJlIGNob3NlbiBzbyB0aGF0IGNvZGUgdGhhdCBuZWVkcyB0byBpbnNlcnQKKy8vIGEgdHJhaWxpbmcgZmVuY2UgZm9yIGFjcXVpcmUgc2VtYW50aWNzIGNhbiB1c2UgYSBzaW5nbGUKKy8vIHRlc3Qgc3VjaCBhczoKKy8vCisvLyBpZiggbW8gJiBtZW1vcnlfb3JkZXJfYWNxdWlyZSApIHsgLi4uZmVuY2UuLi4gfQorLy8KKy8vIEZvciBsZWFkaW5nIGZlbmNlcyBvbmUgY2FuIHVzZToKKy8vCisvLyBpZiggbW8gJiBtZW1vcnlfb3JkZXJfcmVsZWFzZSApIHsgLi4uZmVuY2UuLi4gfQorLy8KKy8vIEFyY2hpdGVjdHVyZXMgc3VjaCBhcyBBbHBoYSB0aGF0IG5lZWQgYSBmZW5jZSBvbiBjb25zdW1lCisvLyBjYW4gdXNlOgorLy8KKy8vIGlmKCBtbyAmICggbWVtb3J5X29yZGVyX2FjcXVpcmUgfCBtZW1vcnlfb3JkZXJfY29uc3VtZSApICkgeyAuLi5mZW5jZS4uLiB9CisvLworCitlbnVtIG1lbW9yeV9vcmRlcgoreworICAgIG1lbW9yeV9vcmRlcl9yZWxheGVkID0gMCwKKyAgICBtZW1vcnlfb3JkZXJfYWNxdWlyZSA9IDEsCisgICAgbWVtb3J5X29yZGVyX3JlbGVhc2UgPSAyLAorICAgIG1lbW9yeV9vcmRlcl9hY3FfcmVsID0gMywgLy8gYWNxdWlyZSB8IHJlbGVhc2UKKyAgICBtZW1vcnlfb3JkZXJfc2VxX2NzdCA9IDcsIC8vIGFjcV9yZWwgfCA0CisgICAgbWVtb3J5X29yZGVyX2NvbnN1bWUgPSA4Cit9OworCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9NRU1PUllfT1JERVJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9hZGxfYmFycmllci5ocHAgYi9ib29zdC9tcGwvYXV4Xy9hZGxfYmFycmllci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNkMjA5MgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9hdXhfL2FkbF9iYXJyaWVyLmhwcApAQCAtMCwwICsxLDQ4IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGFkbF9iYXJyaWVyLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL2FkbC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL2djYy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19BRExfQkFSUklFUl9OQU1FU1BBQ0UpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0UgbXBsXworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOIG5hbWVzcGFjZSBtcGxfIHsKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UgfQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX0RFQ0wodHlwZSkgXAorICAgIG5hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBcCisgICAgdXNpbmcgOjpCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRTo6dHlwZTsgXAorICAgIH0gfSBcCisvKiovCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKQorbmFtZXNwYWNlIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFIHsgbmFtZXNwYWNlIGF1eCB7fSB9CituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgdXNpbmcgbmFtZXNwYWNlIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOyAKK25hbWVzcGFjZSBhdXggeyB1c2luZyBuYW1lc3BhY2UgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6OmF1eDsgfQorfX0KKyNlbmRpZgorCisjZWxzZSAvLyBCT09TVF9NUExfQ0ZHX05PX0FETF9CQVJSSUVSX05BTUVTUEFDRQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFIG5kbmJvb3N0OjptcGwKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTiBuYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UgfX0KKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9ERUNMKHR5cGUpIC8qKi8KKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2F1eF8vYXJpdHkuaHBwIGIvYm9vc3QvbXBsL2F1eF8vYXJpdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyMTA0ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvYXV4Xy9hcml0eS5ocHAKQEAgLTAsMCArMSwzOSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfQVJJVFlfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQVJJVFlfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBhcml0eS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2NvbmZpZy9kdHAuaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX0JST0tFTl9ERUZBVUxUX1BBUkFNRVRFUlNfSU5fTkVTVEVEX1RFTVBMQVRFUykKKworIyAgIGluY2x1ZGUgPGJvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL3N0YXRpY19jb25zdGFudC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKworLy8gYWd1cnQsIDE1L21hci8wMjogaXQncyBwb3NzaWJsZSB0byBpbXBsZW1lbnQgdGhlIHRlbXBsYXRlIHNvIHRoYXQgaXQgd2lsbCAKKy8vICJqdXN0IHdvcmsiIGFuZCBkbyBub3QgcmVxdWlyZSBhbnkgc3BlY2lhbGl6YXRpb24sIGJ1dCBub3Qgb24gdGhlIGNvbXBpbGVycworLy8gdGhhdCByZXF1aXJlIHRoZSBhcml0eSB3b3JrYXJvdW5kIGluIHRoZSBmaXJzdCBwbGFjZQordGVtcGxhdGU8IHR5cGVuYW1lIEYsIEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgTikgPgorc3RydWN0IGFyaXR5Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgdmFsdWUgPSBOKTsKK307CisKK319fQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19CUk9LRU5fREVGQVVMVF9QQVJBTUVURVJTX0lOX05FU1RFRF9URU1QTEFURVMKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQVJJVFlfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9jb25maWcvYWRsLmhwcCBiL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy9hZGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2ZWFkNzEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvYXV4Xy9jb25maWcvYWRsLmhwcApAQCAtMCwwICsxLDQwIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfQURMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19BRExfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBhZGwuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL2ludGVsLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvZ2NjLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKy8vIGFndXJ0LCAyNS9hcHIvMDQ6IHRlY2huaWNhbGx5LCB0aGUgQURMIHdvcmthcm91bmQgaXMgb25seSBuZWVkZWQgZm9yIEdDQywKKy8vIGJ1dCBwdXR0aW5nIGV2ZXJ5dGhpbmcgZXhwZWN0IHB1YmxpYywgdXNlci1zcGVjaWFsaXphYmxlIG1ldGFmdW5jdGlvbnMgaW50bworLy8gYSBzZXBhcmF0ZSBnbG9iYWwgbmFtZXNwYWNlIGhhcyBhIG5pY2Ugc2lkZSBlZmZlY3Qgb2YgcmVkdWNpbmcgdGhlIGxlbmd0aCAKKy8vIG9mIHRlbXBsYXRlIGluc3RhbnRpYXRpb24gc3ltYm9scywgc28gd2UgYXBwbHkgdGhlIHdvcmthcm91bmQgb24gYWxsIAorLy8gcGxhdGZvcm1zIHRoYXQgY2FuIGhhbmRsZSBpdAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19BRExfQkFSUklFUl9OQU1FU1BBQ0UpIFwKKyAgICAmJiAoICAgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCBCT09TVF9URVNURURfQVQoMTQwMCkpIFwKKyAgICAgICAgfHwgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDYxMCkpIFwKKyAgICAgICAgfHwgQk9PU1RfV09SS0FST1VORChfX0RNQ19fLCBCT09TVF9URVNURURfQVQoMHg4NDApKSBcCisgICAgICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19NV0VSS1NfXywgQk9PU1RfVEVTVEVEX0FUKDB4MzIwMikpIFwKKyAgICAgICAgfHwgQk9PU1RfV09SS0FST1VORChCT09TVF9JTlRFTF9DWFhfVkVSU0lPTiwgQk9PU1RfVEVTVEVEX0FUKDgxMCkpIFwKKyAgICAgICAgKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfTk9fQURMX0JBUlJJRVJfTkFNRVNQQUNFCisKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9DT05GSUdfQURMX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2F1eF8vY29uZmlnL2FycmF5cy5ocHAgYi9ib29zdC9tcGwvYXV4Xy9jb25maWcvYXJyYXlzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODAxY2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2F1eF8vY29uZmlnL2FycmF5cy5ocHAKQEAgLTAsMCArMSwzMCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfQ09ORklHX0FSUkFZU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfQVJSQVlTX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAzLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogYXJyYXlzLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworI2lmICAgICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fREVQRU5ERU5UX0FSUkFZX1RZUEVTKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkgXAorICAgICYmICggQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDYxMCkpIFwKKyAgICAgICAgfHwgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8PSAxMzAwKSBcCisgICAgICAgICkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX05PX0RFUEVOREVOVF9BUlJBWV9UWVBFUworCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX0FSUkFZU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcCBiL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy9jdHBzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTRhYWY3Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwCkBAIC0wLDAgKzEsMzAgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19DVFBTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19DVFBTX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogY3Rwcy5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCisjaWYgICAgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19OT05UWVBFX1RFTVBMQVRFX1BBUlRJQUxfU1BFQykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpIFwKKyAgICAmJiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPCAweDU4MikKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX05PX05PTlRZUEVfVEVNUExBVEVfUEFSVElBTF9TUEVDCisKKyNlbmRpZgorCisvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OIGlzIGRlZmluZWQgaW4gPGJvb3N0L2NvbmZpZy5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19DVFBTX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2F1eF8vY29uZmlnL2R0cC5ocHAgYi9ib29zdC9tcGwvYXV4Xy9jb25maWcvZHRwLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTM5MjliCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2F1eF8vY29uZmlnL2R0cC5ocHAKQEAgLTAsMCArMSw0NiBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfQ09ORklHX0RUUF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfRFRQX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogZHRwLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisvLyBNV0NXIDcueC04LjAgImxvc3RzIiBkZWZhdWx0IHRlbXBsYXRlIHBhcmFtZXRlcnMgb2YgbmVzdGVkIGNsYXNzIAorLy8gdGVtcGxhdGVzIHdoZW4gdGhlaXIgb3duZXIgY2xhc3NlcyBhcmUgcGFzc2VkIGFzIGFyZ3VtZW50cyB0byBvdGhlciAKKy8vIHRlbXBsYXRlczsgQm9ybGFuZCA1LjUuMSAiZm9yZ2V0cyIgdGhlbSBmcm9tIHRoZSB2ZXJ5IGJlZ2lubmluZyAoaWYgCisvLyB0aGUgb3duZXIgY2xhc3MgaXMgYSBjbGFzcyB0ZW1wbGF0ZSksIGFuZCBCb3JsYW5kIDUuNiBpc24ndCBldmVuCisvLyBhYmxlIHRvIGNvbXBpbGUgYSBkZWZpbml0aW9uIG9mIG5lc3RlZCBjbGFzcyB0ZW1wbGF0ZSB3aXRoIERUUAorCisjaWYgICAgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19ERUZBVUxUX1BBUkFNRVRFUlNfSU5fTkVTVEVEX1RFTVBMQVRFUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpIFwKKyAgICAmJiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPj0gMHg1NjApIFwKKyAgICAmJiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NjEwKSkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX05PX0RFRkFVTFRfUEFSQU1FVEVSU19JTl9ORVNURURfVEVNUExBVEVTCisKKyNlbmRpZgorCisKKyNpZiAgICAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX0JST0tFTl9ERUZBVUxUX1BBUkFNRVRFUlNfSU5fTkVTVEVEX1RFTVBMQVRFUykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpIFwKKyAgICAmJiAoICAgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8PSAweDMwMDEpIFwKKyAgICAgICAgfHwgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDYxMCkpIFwKKyAgICAgICAgfHwgZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX0RFRkFVTFRfUEFSQU1FVEVSU19JTl9ORVNURURfVEVNUExBVEVTKSBcCisgICAgICAgICkKKyAgICAgICAgCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfQlJPS0VOX0RFRkFVTFRfUEFSQU1FVEVSU19JTl9ORVNURURfVEVNUExBVEVTCisKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9DT05GSUdfRFRQX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHAgYi9ib29zdC9tcGwvYXV4Xy9jb25maWcvZXRpLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2ZkMWM2Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHAKQEAgLTAsMCArMSw0NyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfQ09ORklHX0VUSV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfRVRJX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogZXRpLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworLy8gZmxhZ3MgZm9yIE1TVkMgNi41J3Mgc28tY2FsbGVkICJlYXJseSB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uIGJ1ZyIKKyNpZiAgICAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX01TVkNfNjBfRVRJX0JVRykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpIFwKKyAgICAmJiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX01TVkNfNjBfRVRJX0JVRworCisjZW5kaWYKKworI2lmICAgICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTVNWQ183MF9FVElfQlVHKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkgXAorICAgICYmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPT0gMTMwMCkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX01TVkNfNzBfRVRJX0JVRworCisjZW5kaWYKKworI2lmICAgICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTVNWQ19FVElfQlVHKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkgXAorICAgICYmICggZGVmaW5lZChCT09TVF9NUExfQ0ZHX01TVkNfNjBfRVRJX0JVRykgXAorICAgICAgICB8fCBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTVNWQ183MF9FVElfQlVHKSBcCisgICAgICAgICkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX01TVkNfRVRJX0JVRworCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX0VUSV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy9nY2MuaHBwIGIvYm9vc3QvbXBsL2F1eF8vY29uZmlnL2djYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjlkOGY3ZAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy9nY2MuaHBwCkBAIC0wLDAgKzEsMjMgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19HQ0NfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQ09ORklHX0dDQ19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBnY2MuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChfX0VER19WRVJTSU9OX18pCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfR0NDICgoX19HTlVDX18gPDwgOCkgfCBfX0dOVUNfTUlOT1JfXykKKyNlbHNlCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfR0NDIDAKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9DT05GSUdfR0NDX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2F1eF8vY29uZmlnL2ludGVncmFsLmhwcCBiL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy9pbnRlZ3JhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmE4OTE2MAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy9pbnRlZ3JhbC5ocHAKQEAgLTAsMCArMSwzOCBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfQ09ORklHX0lOVEVHUkFMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19JTlRFR1JBTF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBpbnRlZ3JhbC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2NvbmZpZy9tc3ZjLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiAgICAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX0JDQ19JTlRFR1JBTF9DT05TVEFOVFMpIFwKKyAgICAmJiAhZGVmaW5lZChCT09TVF9NUExfUFJFUFJPQ0VTU0lOR19NT0RFKSBcCisgICAgJiYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDYxMCkpCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19CQ0NfSU5URUdSQUxfQ09OU1RBTlRTCisKKyNlbmRpZgorCisjaWYgICAgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19ORVNURURfVkFMVUVfQVJJVEhNRVRJQykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpIFwKKyAgICAmJiAoIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPD0gMTMwMCkgXAorICAgICAgICB8fCBCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjM4KSBcCisgICAgICAgICkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX05PX05FU1RFRF9WQUxVRV9BUklUSE1FVElDCisKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9DT05GSUdfSU5URUdSQUxfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9jb25maWcvaW50ZWwuaHBwIGIvYm9vc3QvbXBsL2F1eF8vY29uZmlnL2ludGVsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDFhOTUyCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2F1eF8vY29uZmlnL2ludGVsLmhwcApAQCAtMCwwICsxLDIxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfSU5URUxfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQ09ORklHX0lOVEVMX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGludGVsLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisKKy8vIEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OIGlzIGRlZmluZWQgaGVyZToKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0FVWF9DT05GSUdfSU5URUxfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9jb25maWcvbGFtYmRhLmhwcCBiL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy9sYW1iZGEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiZTE2YmYKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvYXV4Xy9jb25maWcvbGFtYmRhLmhwcApAQCAtMCwwICsxLDMyIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfTEFNQkRBX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19MQU1CREFfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBsYW1iZGEuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvdHRwLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisKKy8vIGFndXJ0LCAxNS9qYW4vMDI6IGZ1bGwtZmxlZGdlZCBpbXBsZW1lbnRhdGlvbiByZXF1aXJlcyBib3RoIAorLy8gdGVtcGxhdGUgdGVtcGxhdGUgcGFyYW1ldGVycyBfYW5kXyBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uCisKKyNpZiAgICAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX0ZVTExfTEFNQkRBX1NVUFBPUlQpIFwKKyAgICAmJiAoICAgZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX1RFTVBMQVRFX1RFTVBMQVRFX1BBUkFNRVRFUlMpIFwKKyAgICAgICAgfHwgZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSBcCisgICAgICAgICkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX05PX0ZVTExfTEFNQkRBX1NVUFBPUlQKKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19MQU1CREFfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHAgYi9ib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU4OWNkYQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy9tc3ZjLmhwcApAQCAtMCwwICsxLDIxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfTVNWQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfTVNWQ19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IG1zdmMuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKworLy8gQk9PU1RfTVNWQyBpcyBkZWZpbmVkIGhlcmU6CisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX01TVkNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9jb25maWcvbnR0cC5ocHAgYi9ib29zdC9tcGwvYXV4Xy9jb25maWcvbnR0cC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JlOGYxMwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy9udHRwLmhwcApAQCAtMCwwICsxLDQxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfTlRUUF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9DT05GSUdfTlRUUF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IG50dHAuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisvLyBNU1ZDIDYuNSBJQ0UtcyBvbiB0aGUgY29kZSBhcyBzaW1wbGUgYXMgdGhpcyAoc2VlICJhdXhfL250dHBfZGVjbC5ocHAiCisvLyBmb3IgYSB3b3JrYXJvdW5kKToKKy8vCisvLyAgICBuYW1lc3BhY2Ugc3RkIHsKKy8vICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBDaGFyID4gc3RydWN0IHN0cmluZzsKKy8vICAgIH0KKy8vCisvLyAgICB2b2lkIGZvbyhzdGQ6OnN0cmluZzxjaGFyPik7CisvLworLy8gICAgbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisvLyAgICB0ZW1wbGF0ZTwgaW50ID4gc3RydWN0IGFyZzsKKy8vICAgIH19CisKKyNpZiAgICAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05UVFBfQlVHKSBcCisgICAgJiYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkgXAorICAgICYmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfTlRUUF9CVUcKKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0NPTkZJR19OVFRQX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2F1eF8vY29uZmlnL292ZXJsb2FkX3Jlc29sdXRpb24uaHBwIGIvYm9vc3QvbXBsL2F1eF8vY29uZmlnL292ZXJsb2FkX3Jlc29sdXRpb24uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZTU3OWYKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvYXV4Xy9jb25maWcvb3ZlcmxvYWRfcmVzb2x1dGlvbi5ocHAKQEAgLTAsMCArMSwyOSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfQ09ORklHX09WRVJMT0FEX1JFU09MVVRJT05fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQ09ORklHX09WRVJMT0FEX1JFU09MVVRJT05fSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBvdmVybG9hZF9yZXNvbHV0aW9uLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaWYgICAgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19CUk9LRU5fT1ZFUkxPQURfUkVTT0xVVElPTikgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpIFwKKyAgICAmJiAoICAgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHg1OTApIFwKKyAgICAgICAgfHwgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8IDB4MzAwMSkgXAorICAgICAgICApCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19CUk9LRU5fT1ZFUkxPQURfUkVTT0xVVElPTgorCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX09WRVJMT0FEX1JFU09MVVRJT05fSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9jb25maWcvcHJlcHJvY2Vzc29yLmhwcCBiL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy9wcmVwcm9jZXNzb3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5MTkwYzQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvYXV4Xy9jb25maWcvcHJlcHJvY2Vzc29yLmhwcApAQCAtMCwwICsxLDM5IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9DT05GSUdfUFJFUFJPQ0VTU09SX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19QUkVQUk9DRVNTT1JfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBwcmVwcm9jZXNzb3IuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX0JST0tFTl9QUF9NQUNST19FWFBBTlNJT04pIFwKKyAgICAmJiAoICAgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8PSAweDMwMDMpIFwKKyAgICAgICAgfHwgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHg1ODIpIFwKKyAgICAgICAgfHwgQk9PU1RfV09SS0FST1VORChfX0lCTUNQUF9fLCBCT09TVF9URVNURURfQVQoNTAyKSkgXAorICAgICAgICApCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19CUk9LRU5fUFBfTUFDUk9fRVhQQU5TSU9OCisKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19PV05fUFBfUFJJTUlUSVZFUykKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0NGR19OT19PV05fUFBfUFJJTUlUSVZFUworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9ORUVEU19UT0tFTl9QQVNUSU5HX09QX0ZPUl9UT0tFTlNfSlVYVEFQT1NJTkcpIFwKKyAgICAmJiBCT09TVF9XT1JLQVJPVU5EKF9fRE1DX18sIEJPT1NUX1RFU1RFRF9BVCgweDg0MCkpCisjICAgZGVmaW5lIEJPT1NUX05FRURTX1RPS0VOX1BBU1RJTkdfT1BfRk9SX1RPS0VOU19KVVhUQVBPU0lORworI2VuZGlmCisKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX1BSRVBST0NFU1NPUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwIGIvYm9vc3QvbXBsL2F1eF8vY29uZmlnL3N0YXRpY19jb25zdGFudC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDJjZjljNAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwCkBAIC0wLDAgKzEsMjUgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19TVEFUSUNfQ09OU1RBTlRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQ09ORklHX1NUQVRJQ19DT05TVEFOVF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHN0YXRpY19jb25zdGFudC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpCisvLyBCT09TVF9TVEFUSUNfQ09OU1RBTlQgaXMgZGVmaW5lZCBoZXJlOgorIyAgIGluY2x1ZGUgPGJvb3N0L2NvbmZpZy5ocHA+CisjZWxzZQorLy8gdW5kZWYgdGhlIG1hY3JvIGZvciB0aGUgcHJlcHJvY2Vzc2luZyBtb2RlCisjICAgdW5kZWYgQk9PU1RfU1RBVElDX0NPTlNUQU5UCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX1NUQVRJQ19DT05TVEFOVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy90dHAuaHBwIGIvYm9vc3QvbXBsL2F1eF8vY29uZmlnL3R0cC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc5ZWMxZAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy90dHAuaHBwCkBAIC0wLDAgKzEsNDEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19UVFBfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfQ09ORklHX1RUUF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHR0cC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2NvbmZpZy9tc3ZjLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvZ2NjLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX1RFTVBMQVRFX1RFTVBMQVRFX1BBUkFNRVRFUlMpIFwKKyAgICAmJiAoIGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfVEVNUExBVEVTKSBcCisgICAgICB8fCBCT09TVF9XT1JLQVJPVU5EKCBfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCggMHg1OTApICkgXAorICAgICAgICkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQ0ZHX05PX1RFTVBMQVRFX1RFTVBMQVRFX1BBUkFNRVRFUlMKKworI2VuZGlmCisKKworI2lmICAgICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfRVhURU5ERURfVEVNUExBVEVfUEFSQU1FVEVSU19NQVRDSElORykgXAorICAgICYmICFkZWZpbmVkKEJPT1NUX01QTF9QUkVQUk9DRVNTSU5HX01PREUpIFwKKyAgICAmJiAoICAgQk9PU1RfV09SS0FST1VORChCT09TVF9NUExfQ0ZHX0dDQywgQk9PU1RfVEVTVEVEX0FUKDB4MDMwMikpIFwKKyAgICAgICAgfHwgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCgweDYxMCkpIFwKKyAgICAgICAgKQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9DRkdfRVhURU5ERURfVEVNUExBVEVfUEFSQU1FVEVSU19NQVRDSElORworCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX1RUUF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcCBiL2Jvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWMxNzJmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwCkBAIC0wLDAgKzEsMTkgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0NPTkZJR19XT1JLQVJPVU5EX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0NPTkZJR19XT1JLQVJPVU5EX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogd29ya2Fyb3VuZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPGJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfQ09ORklHX1dPUktBUk9VTkRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9pbnRlZ3JhbF93cmFwcGVyLmhwcCBiL2Jvb3N0L21wbC9hdXhfL2ludGVncmFsX3dyYXBwZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzNmU3Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvYXV4Xy9pbnRlZ3JhbF93cmFwcGVyLmhwcApAQCAtMCwwICsxLDkzIEBACisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBpbnRlZ3JhbF93cmFwcGVyLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisvLyBOTyBJTkNMVURFIEdVQVJEUywgVEhFIEhFQURFUiBJUyBJTlRFTkRFRCBGT1IgTVVMVElQTEUgSU5DTFVTSU9OIQorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2ludGVncmFsX2NfdGFnLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9zdGF0aWNfY2FzdC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvc3RhdGljX2NvbnN0YW50LmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworI2lmICFkZWZpbmVkKEFVWF9XUkFQUEVSX05BTUUpCisjICAgZGVmaW5lIEFVWF9XUkFQUEVSX05BTUUgQk9PU1RfUFBfQ0FUKEFVWF9XUkFQUEVSX1ZBTFVFX1RZUEUsXykKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQVVYX1dSQVBQRVJfUEFSQU1TKQorIyAgIGRlZmluZSBBVVhfV1JBUFBFUl9QQVJBTVMoTikgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woQVVYX1dSQVBQRVJfVkFMVUVfVFlQRSwgTikKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoQVVYX1dSQVBQRVJfSU5TVCkKKyMgICBpZiBCT09TVF9XT1JLQVJPVU5EKF9fTVdFUktTX18sIDw9IDB4MjQwNykKKyMgICAgICAgZGVmaW5lIEFVWF9XUkFQUEVSX0lOU1QodmFsdWUpIEFVWF9XUkFQUEVSX05BTUU8IHZhbHVlID4KKyMgICBlbHNlIAorIyAgICAgICBkZWZpbmUgQVVYX1dSQVBQRVJfSU5TVCh2YWx1ZSkgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6OkFVWF9XUkFQUEVSX05BTUU8IHZhbHVlID4KKyMgICBlbmRpZgorI2VuZGlmCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KKwordGVtcGxhdGU8IEFVWF9XUkFQUEVSX1BBUkFNUyhOKSA+CitzdHJ1Y3QgQVVYX1dSQVBQRVJfTkFNRQoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChBVVhfV1JBUFBFUl9WQUxVRV9UWVBFLCB2YWx1ZSA9IE4pOworLy8gYWd1cnQsIDA4L21hci8wMzogU0dJIE1JUFNwcm8gQysrIHdvcmthcm91bmQsIGhhdmUgdG8gI2lmZGVmIGJlY2F1c2Ugc29tZSAKKy8vIG90aGVyIGNvbXBpbGVycyAoZS5nLiBNU1ZDKSBhcmUgbm90IHBhcnRpY3VsYXJ5IGhhcHB5IGFib3V0IGl0CisjaWYgQk9PU1RfV09SS0FST1VORChfX0VER19WRVJTSU9OX18sIDw9IDIzOCkKKyAgICB0eXBlZGVmIHN0cnVjdCBBVVhfV1JBUFBFUl9OQU1FIHR5cGU7CisjZWxzZQorICAgIHR5cGVkZWYgQVVYX1dSQVBQRVJfTkFNRSB0eXBlOworI2VuZGlmCisgICAgdHlwZWRlZiBBVVhfV1JBUFBFUl9WQUxVRV9UWVBFIHZhbHVlX3R5cGU7CisgICAgdHlwZWRlZiBpbnRlZ3JhbF9jX3RhZyB0YWc7CisKKy8vIGhhdmUgdG8gI2lmZGVmIGhlcmU6IHNvbWUgY29tcGlsZXJzIGRvbid0IGxpa2UgdGhlICdOICsgMScgZm9ybSAoTVNWQyksCisvLyB3aGlsZSBzb21lIG90aGVyIGRvbid0IGxpa2UgJ3ZhbHVlICsgMScgKEJvcmxhbmQpLCBhbmQgc29tZSBkb24ndCBsaWtlCisvLyBlaXRoZXIKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjQzKQorIHByaXZhdGU6CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKEFVWF9XUkFQUEVSX1ZBTFVFX1RZUEUsIG5leHRfdmFsdWUgPSBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUKEFVWF9XUkFQUEVSX1ZBTFVFX1RZUEUsIChOICsgMSkpKTsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoQVVYX1dSQVBQRVJfVkFMVUVfVFlQRSwgcHJpb3JfdmFsdWUgPSBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUKEFVWF9XUkFQUEVSX1ZBTFVFX1RZUEUsIChOIC0gMSkpKTsKKyBwdWJsaWM6CisgICAgdHlwZWRlZiBBVVhfV1JBUFBFUl9JTlNUKG5leHRfdmFsdWUpIG5leHQ7CisgICAgdHlwZWRlZiBBVVhfV1JBUFBFUl9JTlNUKHByaW9yX3ZhbHVlKSBwcmlvcjsKKyNlbGlmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1NjEpKSBcCisgICAgfHwgQk9PU1RfV09SS0FST1VORChfX0lCTUNQUF9fLCBCT09TVF9URVNURURfQVQoNTAyKSkgXAorICAgIHx8IChCT09TVF9XT1JLQVJPVU5EKF9fSFBfYUNDLCA8PSA1MzgwMCkgJiYgKEJPT1NUX1dPUktBUk9VTkQoX19ocHhzdGQ5OCwgIT0gMSkpKQorICAgIHR5cGVkZWYgQVVYX1dSQVBQRVJfSU5TVCggQk9PU1RfTVBMX0FVWF9TVEFUSUNfQ0FTVChBVVhfV1JBUFBFUl9WQUxVRV9UWVBFLCAoTiArIDEpKSApIG5leHQ7CisgICAgdHlwZWRlZiBBVVhfV1JBUFBFUl9JTlNUKCBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUKEFVWF9XUkFQUEVSX1ZBTFVFX1RZUEUsIChOIC0gMSkpICkgcHJpb3I7CisjZWxzZQorICAgIHR5cGVkZWYgQVVYX1dSQVBQRVJfSU5TVCggQk9PU1RfTVBMX0FVWF9TVEFUSUNfQ0FTVChBVVhfV1JBUFBFUl9WQUxVRV9UWVBFLCAodmFsdWUgKyAxKSkgKSBuZXh0OworICAgIHR5cGVkZWYgQVVYX1dSQVBQRVJfSU5TVCggQk9PU1RfTVBMX0FVWF9TVEFUSUNfQ0FTVChBVVhfV1JBUFBFUl9WQUxVRV9UWVBFLCAodmFsdWUgLSAxKSkgKSBwcmlvcjsKKyNlbmRpZgorCisgICAgLy8gZW5hYmxlcyB1bmlmb3JtIGZ1bmN0aW9uIGNhbGwgc3ludGF4IGZvciBmYW1pbGllcyBvZiBvdmVybG9hZGVkIAorICAgIC8vIGZ1bmN0aW9ucyB0aGF0IHJldHVybiBvYmplY3RzIG9mIGJvdGggYXJpdGhtZXRpYyAoJ2ludCcsICdsb25nJywKKyAgICAvLyAnZG91YmxlJywgZXRjLikgYW5kIHdyYXBwZWQgaW50ZWdyYWwgdHlwZXMgKGZvciBhbiBleGFtcGxlLCBzZWUgCisgICAgLy8gIm1wbC9leGFtcGxlL3Bvd2VyLmNwcCIpCisgICAgb3BlcmF0b3IgQVVYX1dSQVBQRVJfVkFMVUVfVFlQRSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFVWF9XUkFQUEVSX1ZBTFVFX1RZUEU+KHRoaXMtPnZhbHVlKTsgfSAKK307CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19JTkNMQVNTX01FTUJFUl9JTklUSUFMSVpBVElPTikKK3RlbXBsYXRlPCBBVVhfV1JBUFBFUl9QQVJBTVMoTikgPgorQVVYX1dSQVBQRVJfVkFMVUVfVFlQRSBjb25zdCBBVVhfV1JBUFBFUl9JTlNUKE4pOjp2YWx1ZTsKKyNlbmRpZgorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorCisjdW5kZWYgQVVYX1dSQVBQRVJfTkFNRQorI3VuZGVmIEFVWF9XUkFQUEVSX1BBUkFNUworI3VuZGVmIEFVWF9XUkFQUEVSX0lOU1QKKyN1bmRlZiBBVVhfV1JBUFBFUl9WQUxVRV9UWVBFCmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9sYW1iZGFfYXJpdHlfcGFyYW0uaHBwIGIvYm9vc3QvbXBsL2F1eF8vbGFtYmRhX2FyaXR5X3BhcmFtLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDE4ZjJjCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2F1eF8vbGFtYmRhX2FyaXR5X3BhcmFtLmhwcApAQCAtMCwwICsxLDI1IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9MQU1CREFfQVJJVFlfUEFSQU1fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX0FSSVRZX1BBUkFNX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbGFtYmRhX2FyaXR5X3BhcmFtLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL3R0cC5ocHA+CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX0VYVEVOREVEX1RFTVBMQVRFX1BBUkFNRVRFUlNfTUFUQ0hJTkcpCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX0FSSVRZX1BBUkFNKHBhcmFtKSAgICAKKyNlbHNlCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX0FSSVRZX1BBUkFNKHBhcmFtKSAsIHBhcmFtCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfTEFNQkRBX0FSSVRZX1BBUkFNX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwIGIvYm9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3MzI4NzMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHAKQEAgLTAsMCArMSwxNjkgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbGFtYmRhX3N1cHBvcnQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvbGFtYmRhLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fRlVMTF9MQU1CREFfU1VQUE9SVCkKKworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoaSwgbmFtZSwgcGFyYW1zKSAvKiovCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoaSxuYW1lLHBhcmFtcykgLyoqLworCisjZWxzZQorCisjICAgaW5jbHVkZSA8Ym9vc3QvbXBsL2ludF9md2QuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L21wbC9hdXhfL3llc19uby5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vbmFfZndkLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcGFyYW1zLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZW51bS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL21zdmMuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworIyAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS90b19saXN0LmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb3JfZWFjaF9pLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaW5jLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0FSR19UWVBFREVGX0ZVTkMoUix0eXBlZGVmXyxpLHBhcmFtKSBcCisgICAgdHlwZWRlZl8gcGFyYW0gQk9PU1RfUFBfQ0FUKGFyZyxCT09TVF9QUF9JTkMoaSkpOyBcCisgICAgLyoqLworCisvLyBhZ3VydCwgMDcvbWFyLzAzOiByZXN0b3JlIGFuIG9sZCByZXZpc2lvbiBmb3IgdGhlIHNha2Ugb2YgU0dJIE1JUFNwcm8gQysrCisjaWYgQk9PU1RfV09SS0FST1VORChfX0VER19WRVJTSU9OX18sIDw9IDIzOCkgCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVChpLCBuYW1lLCBwYXJhbXMpIFwKKyAgICB0eXBlZGVmIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjppbnRfPGk+IGFyaXR5OyBcCisgICAgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX1IoIFwKKyAgICAgICAgICAxIFwKKyAgICAgICAgLCBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0FSR19UWVBFREVGX0ZVTkMgXAorICAgICAgICAsIHR5cGVkZWYgXAorICAgICAgICAsIEJPT1NUX1BQX1RVUExFX1RPX0xJU1QoaSxwYXJhbXMpIFwKKyAgICAgICAgKSBcCisgICAgc3RydWN0IHJlYmluZCBcCisgICAgeyBcCisgICAgICAgIHRlbXBsYXRlPCBCT09TVF9NUExfUFBfUEFSQU1TKGksdHlwZW5hbWUgVSkgPiBzdHJ1Y3QgYXBwbHkgXAorICAgICAgICAgICAgOiBuYW1lPCBCT09TVF9NUExfUFBfUEFSQU1TKGksVSkgPiBcCisgICAgICAgIHsgXAorICAgICAgICB9OyBcCisgICAgfTsgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoaSwgbmFtZSwgcGFyYW1zKSBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVChpLCBuYW1lLCBwYXJhbXMpIFwKKyAgICAvKiovCisKKyNlbGlmIEJPT1NUX1dPUktBUk9VTkQoX19FREdfVkVSU0lPTl9fLCA8PSAyNDQpICYmICFkZWZpbmVkKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OKQorLy8gYWd1cnQsIDE4L2phbi8wMzogb2xkIEVERy1iYXNlZCBjb21waWxlcnMgYWN0dWFsbHkgZW5mb3JjZSAxMS40IHBhcmEgOQorLy8gKGluIHN0cmljdCBtb2RlKSwgc28gd2UgaGF2ZSB0byBwcm92aWRlIGFuIGFsdGVybmF0aXZlIHRvIHRoZSAKKy8vIE1TVkMtb3B0aW1pemVkIGltcGxlbWVudGF0aW9uCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKGksIG5hbWUsIHBhcmFtcykgXAorICAgIHR5cGVkZWYgQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6OmludF88aT4gYXJpdHk7IFwKKyAgICBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfUiggXAorICAgICAgICAgIDEgXAorICAgICAgICAsIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfQVJHX1RZUEVERUZfRlVOQyBcCisgICAgICAgICwgdHlwZWRlZiBcCisgICAgICAgICwgQk9PU1RfUFBfVFVQTEVfVE9fTElTVChpLHBhcmFtcykgXAorICAgICAgICApIFwKKyAgICBzdHJ1Y3QgcmViaW5kOyBcCisvKiovCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVChpLCBuYW1lLCBwYXJhbXMpIFwKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoaSwgbmFtZSwgcGFyYW1zKSBcCit9OyBcCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLHR5cGVuYW1lIFQpID4gXAorc3RydWN0IG5hbWU8Qk9PU1RfTVBMX1BQX1BBUkFNUyhpLFQpPjo6cmViaW5kIFwKK3sgXAorICAgIHRlbXBsYXRlPCBCT09TVF9NUExfUFBfUEFSQU1TKGksdHlwZW5hbWUgVSkgPiBzdHJ1Y3QgYXBwbHkgXAorICAgICAgICA6IG5hbWU8IEJPT1NUX01QTF9QUF9QQVJBTVMoaSxVKSA+IFwKKyAgICB7IFwKKyAgICB9OyBcCisvKiovCisKKyNlbHNlIC8vIF9fRURHX1ZFUlNJT05fXworCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBoYXNfcmViaW5kX3RhZzsKK319fQorCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQyhpLCBuYW1lLCBwYXJhbXMpIFwKKyAgICB0eXBlZGVmIEJPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFOjppbnRfPGk+IGFyaXR5OyBcCisgICAgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX1IoIFwKKyAgICAgICAgICAxIFwKKyAgICAgICAgLCBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0FSR19UWVBFREVGX0ZVTkMgXAorICAgICAgICAsIHR5cGVkZWYgXAorICAgICAgICAsIEJPT1NUX1BQX1RVUExFX1RPX0xJU1QoaSxwYXJhbXMpIFwKKyAgICAgICAgKSBcCisgICAgZnJpZW5kIGNsYXNzIEJPT1NUX1BQX0NBVChuYW1lLF9yZWJpbmQpOyBcCisgICAgdHlwZWRlZiBCT09TVF9QUF9DQVQobmFtZSxfcmViaW5kKSByZWJpbmQ7IFwKKy8qKi8KKworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg2MTApKQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0hBU19SRUJJTkQoaSwgbmFtZSwgcGFyYW1zKSBcCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLHR5cGVuYW1lIFQpID4gXAorOjpuZG5ib29zdDo6bXBsOjphdXg6Onllc190YWcgb3BlcmF0b3J8KCBcCisgICAgICA6Om5kbmJvb3N0OjptcGw6OmF1eDo6aGFzX3JlYmluZF90YWc8aW50PiBcCisgICAgLCBuYW1lPEJPT1NUX01QTF9QUF9QQVJBTVMoaSxUKT4qIFwKKyAgICApOyBcCis6Om5kbmJvb3N0OjptcGw6OmF1eDo6bm9fdGFnIG9wZXJhdG9yfCggXAorICAgICAgOjpuZG5ib29zdDo6bXBsOjphdXg6Omhhc19yZWJpbmRfdGFnPGludD4gXAorICAgICwgbmFtZTwgQk9PU1RfTVBMX1BQX0VOVU0oaSw6Om5kbmJvb3N0OjptcGw6Om5hKSA+KiBcCisgICAgKTsgXAorLyoqLworI2VsaWYgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0hBU19SRUJJTkQoaSwgbmFtZSwgcGFyYW1zKSBcCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLHR5cGVuYW1lIFQpID4gXAorOjpuZG5ib29zdDo6bXBsOjphdXg6Onllc190YWcgb3BlcmF0b3J8KCBcCisgICAgICA6Om5kbmJvb3N0OjptcGw6OmF1eDo6aGFzX3JlYmluZF90YWc8aW50PiBcCisgICAgLCA6Om5kbmJvb3N0OjptcGw6OmF1eDo6aGFzX3JlYmluZF90YWc8IG5hbWU8Qk9PU1RfTVBMX1BQX1BBUkFNUyhpLFQpPiA+KiBcCisgICAgKTsgXAorLyoqLworI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9IQVNfUkVCSU5EKGksIG5hbWUsIHBhcmFtcykgLyoqLworI2VuZGlmCisKKyMgICBpZiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoaSwgbmFtZSwgcGFyYW1zKSBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKGksIG5hbWUsIHBhcmFtcykgXAorfTsgXAorQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9IQVNfUkVCSU5EKGksIG5hbWUsIHBhcmFtcykgXAorY2xhc3MgQk9PU1RfUFBfQ0FUKG5hbWUsX3JlYmluZCkgXAoreyBcCisgcHVibGljOiBcCisgICAgdGVtcGxhdGU8IEJPT1NUX01QTF9QUF9QQVJBTVMoaSx0eXBlbmFtZSBVKSA+IHN0cnVjdCBhcHBseSBcCisgICAgICAgIDogbmFtZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLFUpID4gXAorICAgIHsgXAorICAgIH07IFwKKy8qKi8KKyMgICBlbHNlCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoaSwgbmFtZSwgcGFyYW1zKSBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKGksIG5hbWUsIHBhcmFtcykgXAorfTsgXAorQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9IQVNfUkVCSU5EKGksIG5hbWUsIHBhcmFtcykgXAorY2xhc3MgQk9PU1RfUFBfQ0FUKG5hbWUsX3JlYmluZCkgXAoreyBcCisgcHVibGljOiBcCisgICAgdGVtcGxhdGU8IEJPT1NUX01QTF9QUF9QQVJBTVMoaSx0eXBlbmFtZSBVKSA+IHN0cnVjdCBhcHBseSBcCisgICAgeyBcCisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmFtZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLFUpID46OnR5cGUgdHlwZTsgXAorICAgIH07IFwKKy8qKi8KKyMgICBlbmRpZiAvLyBfX0JPUkxBTkRDX18KKworI2VuZGlmIC8vIF9fRURHX1ZFUlNJT05fXworCisjZW5kaWYgLy8gQk9PU1RfTVBMX0NGR19OT19GVUxMX0xBTUJEQV9TVVBQT1JUCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2F1eF8vbmEuaHBwIGIvYm9vc3QvbXBsL2F1eF8vbmEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1MTlhNDkKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvYXV4Xy9uYS5ocHAKQEAgLTAsMCArMSw5NSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfTkFfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfTkFfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBuYS5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPGJvb3N0L21wbC9ib29sLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9uYV9md2QuaHBwPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2NvbmZpZy9tc3ZjLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgaXNfbmEKKyAgICA6IGZhbHNlXworeworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorICAgIHVzaW5nIGZhbHNlXzo6dmFsdWU7CisjZW5kaWYKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpc19uYTxuYT4KKyAgICA6IHRydWVfCit7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisgICAgdXNpbmcgdHJ1ZV86OnZhbHVlOworI2VuZGlmCit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgaXNfbm90X25hCisgICAgOiB0cnVlXworeworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorICAgIHVzaW5nIHRydWVfOjp2YWx1ZTsKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8Pgorc3RydWN0IGlzX25vdF9uYTxuYT4KKyAgICA6IGZhbHNlXworeworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorICAgIHVzaW5nIGZhbHNlXzo6dmFsdWU7CisjZW5kaWYKK307CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQordGVtcGxhdGU8IHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUgPiBzdHJ1Y3QgaWZfbmEKK3sKKyAgICB0eXBlZGVmIFQgdHlwZTsKK307CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBVID4gc3RydWN0IGlmX25hPG5hLFU+Cit7CisgICAgdHlwZWRlZiBVIHR5cGU7Cit9OworI2Vsc2UKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IGlmX25hX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVSA+IHN0cnVjdCBhcHBseQorICAgIHsKKyAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IGlmX25hX2ltcGw8bmE+Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFUgPiBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgVSB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgVSA+IHN0cnVjdCBpZl9uYQorICAgIDogaWZfbmFfaW1wbDxUPjo6dGVtcGxhdGUgYXBwbHk8VT4KK3sKK307CisjZW5kaWYKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfTkFfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9uYV9md2QuaHBwIGIvYm9vc3QvbXBsL2F1eF8vbmFfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDA5ZmM4Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2F1eF8vbmFfZndkLmhwcApAQCAtMCwwICsxLDMxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9OQV9GV0RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfTkFfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogbmFfZndkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vYWRsX2JhcnJpZXIuaHBwPgorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCisKKy8vIG4uYS4gPT0gbm90IGF2YWlsYWJsZQorc3RydWN0IG5hCit7CisgICAgdHlwZWRlZiBuYSB0eXBlOworICAgIGVudW0geyB2YWx1ZSA9IDAgfTsKK307CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX0RFQ0wobmEpCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX05BX0ZXRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwIGIvYm9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNkNzcyMQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9hdXhfL25hX3NwZWMuaHBwCkBAIC0wLDAgKzEsMTc1IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBuYV9zcGVjLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxib29zdC9tcGwvbGFtYmRhX2Z3ZC5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvbXBsL2ludC5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvbXBsL2Jvb2wuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L21wbC9hdXhfL25hLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9hcml0eS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHlfZndkLmhwcD4KKyNlbmRpZgorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcmFtcy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2VudW0uaHBwPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZfcGFyYW1zX3RhaWwuaHBwPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2xhbWJkYV9hcml0eV9wYXJhbS5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL2R0cC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL2V0aS5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvdHRwLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvbGFtYmRhLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvb3ZlcmxvYWRfcmVzb2x1dGlvbi5ocHA+CisKKworI2RlZmluZSBCT09TVF9NUExfQVVYX05BX1BBUkFNUyhpKSBcCisgICAgQk9PU1RfTVBMX1BQX0VOVU0oaSwgbmEpIFwKKy8qKi8KKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19CUk9LRU5fREVGQVVMVF9QQVJBTUVURVJTX0lOX05FU1RFRF9URU1QTEFURVMpCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTkFfU1BFQ19BUklUWShpLCBuYW1lKSBcCituYW1lc3BhY2UgYXV4IHsgXAordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGludCwgTikgPiBcCitzdHJ1Y3QgYXJpdHk8IFwKKyAgICAgICAgICBuYW1lPCBCT09TVF9NUExfQVVYX05BX1BBUkFNUyhpKSA+IFwKKyAgICAgICAgLCBOIFwKKyAgICAgICAgPiBcCisgICAgOiBpbnRfPCBCT09TVF9NUExfTElNSVRfTUVUQUZVTkNUSU9OX0FSSVRZID4gXAoreyBcCit9OyBcCit9IFwKKy8qKi8KKyNlbHNlCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTkFfU1BFQ19BUklUWShpLCBuYW1lKSAvKiovCisjZW5kaWYKKworI2RlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfTUFJTihpLCBuYW1lKSBcCit0ZW1wbGF0ZTw+IFwKK3N0cnVjdCBuYW1lPCBCT09TVF9NUExfQVVYX05BX1BBUkFNUyhpKSA+IFwKK3sgXAorICAgIHRlbXBsYXRlPCBcCisgICAgICAgICAgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLCB0eXBlbmFtZSBUKSBcCisgICAgICAgIEJPT1NUX01QTF9QUF9ORVNURURfREVGX1BBUkFNU19UQUlMKGksIHR5cGVuYW1lIFQsIG5hKSBcCisgICAgICAgID4gXAorICAgIHN0cnVjdCBhcHBseSBcCisgICAgICAgIDogbmFtZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLCBUKSA+IFwKKyAgICB7IFwKKyAgICB9OyBcCit9OyBcCisvKiovCisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fRlVMTF9MQU1CREFfU1VQUE9SVCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0xBTUJEQShpLCBuYW1lKSBcCit0ZW1wbGF0ZTw+IFwKK3N0cnVjdCBsYW1iZGE8IFwKKyAgICAgIG5hbWU8IEJPT1NUX01QTF9BVVhfTkFfUEFSQU1TKGkpID4gXAorICAgICwgdm9pZF8gXAorICAgICwgdHJ1ZV8gXAorICAgID4gXAoreyBcCisgICAgdHlwZWRlZiBmYWxzZV8gaXNfbGU7IFwKKyAgICB0eXBlZGVmIG5hbWU8IEJPT1NUX01QTF9BVVhfTkFfUEFSQU1TKGkpID4gdHlwZTsgXAorfTsgXAordGVtcGxhdGU8PiBcCitzdHJ1Y3QgbGFtYmRhPCBcCisgICAgICBuYW1lPCBCT09TVF9NUExfQVVYX05BX1BBUkFNUyhpKSA+IFwKKyAgICAsIHZvaWRfIFwKKyAgICAsIGZhbHNlXyBcCisgICAgPiBcCit7IFwKKyAgICB0eXBlZGVmIGZhbHNlXyBpc19sZTsgXAorICAgIHR5cGVkZWYgbmFtZTwgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTVMoaSkgPiB0eXBlOyBcCit9OyBcCisvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfTEFNQkRBKGksIG5hbWUpIFwKK3RlbXBsYXRlPCB0eXBlbmFtZSBUYWcgPiBcCitzdHJ1Y3QgbGFtYmRhPCBcCisgICAgICBuYW1lPCBCT09TVF9NUExfQVVYX05BX1BBUkFNUyhpKSA+IFwKKyAgICAsIFRhZyBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfQVJJVFlfUEFSQU0oaW50XzwtMT4pIFwKKyAgICA+IFwKK3sgXAorICAgIHR5cGVkZWYgZmFsc2VfIGlzX2xlOyBcCisgICAgdHlwZWRlZiBuYW1lPCBCT09TVF9NUExfQVVYX05BX1BBUkFNUyhpKSA+IHJlc3VsdF87IFwKKyAgICB0eXBlZGVmIG5hbWU8IEJPT1NUX01QTF9BVVhfTkFfUEFSQU1TKGkpID4gdHlwZTsgXAorfTsgXAorLyoqLworI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfRVhURU5ERURfVEVNUExBVEVfUEFSQU1FVEVSU19NQVRDSElORykgXAorICAgIHx8IGRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19GVUxMX0xBTUJEQV9TVVBQT1JUKSBcCisgICAgICAgICYmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19CUk9LRU5fT1ZFUkxPQURfUkVTT0xVVElPTikKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9OQV9TUEVDX1RFTVBMQVRFX0FSSVRZKGksIGosIG5hbWUpIFwKK25hbWVzcGFjZSBhdXggeyBcCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhqLCB0eXBlbmFtZSBUKSA+IFwKK3N0cnVjdCB0ZW1wbGF0ZV9hcml0eTwgXAorICAgICAgICAgIG5hbWU8IEJPT1NUX01QTF9QUF9QQVJBTVMoaiwgVCkgPiBcCisgICAgICAgID4gXAorICAgIDogaW50XzxqPiBcCit7IFwKK307IFwKK1wKK3RlbXBsYXRlPD4gXAorc3RydWN0IHRlbXBsYXRlX2FyaXR5PCBcCisgICAgICAgICAgbmFtZTwgQk9PU1RfTVBMX1BQX0VOVU0oaSwgbmEpID4gXAorICAgICAgICA+IFwKKyAgICA6IGludF88LTE+IFwKK3sgXAorfTsgXAorfSBcCisvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfVEVNUExBVEVfQVJJVFkoaSwgaiwgbmFtZSkgLyoqLworI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTVNWQ19FVElfQlVHKQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfRVRJKGksIG5hbWUpIFwKK3RlbXBsYXRlPD4gXAorc3RydWN0IG5hbWU8IEJPT1NUX01QTF9QUF9FTlVNKGksIGludCkgPiBcCit7IFwKKyAgICB0eXBlZGVmIGludCB0eXBlOyBcCisgICAgZW51bSB7IHZhbHVlID0gMCB9OyBcCit9OyBcCisvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfRVRJKGksIG5hbWUpIC8qKi8KKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0ocGFyYW0pIHBhcmFtID0gbmEKKworI2RlZmluZSBCT09TVF9NUExfQVVYX05BX1NQRUNfTk9fRVRJKGksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19NQUlOKGksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19MQU1CREEoaSwgbmFtZSkgXAorQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0FSSVRZKGksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19URU1QTEFURV9BUklUWShpLCBpLCBuYW1lKSBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9OQV9TUEVDKGksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19OT19FVEkoaSwgbmFtZSkgXAorQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0VUSShpLCBuYW1lKSBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9OQV9TUEVDMihpLCBqLCBuYW1lKSBcCitCT09TVF9NUExfQVVYX05BX1NQRUNfTUFJTihpLCBuYW1lKSBcCitCT09TVF9NUExfQVVYX05BX1NQRUNfRVRJKGksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19MQU1CREEoaSwgbmFtZSkgXAorQk9PU1RfTVBMX0FVWF9OQV9TUEVDX0FSSVRZKGksIG5hbWUpIFwKK0JPT1NUX01QTF9BVVhfTkFfU1BFQ19URU1QTEFURV9BUklUWShpLCBqLCBuYW1lKSBcCisvKiovCisKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfTkFfU1BFQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC9hdXhfL250dHBfZGVjbC5ocHAgYi9ib29zdC9tcGwvYXV4Xy9udHRwX2RlY2wuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1ZTI5MjkKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvYXV4Xy9udHRwX2RlY2wuaHBwCkBAIC0wLDAgKzEsMzUgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX05UVFBfREVDTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0xfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDEtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBudHRwX2RlY2wuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvbnR0cC5ocHA+CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfTlRUUF9CVUcpCisKK3R5cGVkZWYgYm9vbCAgICAgICAgX21wbF9udHRwX2Jvb2w7Cit0eXBlZGVmIGludCAgICAgICAgIF9tcGxfbnR0cF9pbnQ7Cit0eXBlZGVmIHVuc2lnbmVkICAgIF9tcGxfbnR0cF91bnNpZ25lZDsKK3R5cGVkZWYgbG9uZyAgICAgICAgX21wbF9udHRwX2xvbmc7CisKKyMgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woVCwgeCkgQk9PU1RfUFBfQ0FUKF9tcGxfbnR0cF8sVCkgeCAvKiovCisKKyNlbHNlCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woVCwgeCkgVCB4IC8qKi8KKworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX05UVFBfREVDTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZfcGFyYW1zX3RhaWwuaHBwIGIvYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL2RlZl9wYXJhbXNfdGFpbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzUxNjM2ZQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9kZWZfcGFyYW1zX3RhaWwuaHBwCkBAIC0wLDAgKzEsMTA1IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfREVGX1BBUkFNU19UQUlMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9ERUZfUEFSQU1TX1RBSUxfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBkZWZfcGFyYW1zX3RhaWwuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvbGltaXRzL2FyaXR5LmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvZHRwLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvcHJlcHJvY2Vzc29yLmhwcD4KKworI2luY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYW5kLmhwcD4KKyNpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaWRlbnRpdHkuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9lbXB0eS5ocHA+CisKKy8vIEJPT1NUX01QTF9QUF9ERUZfUEFSQU1TX1RBSUwoMSxULHZhbHVlKTogLCBUMSA9IHZhbHVlLCAuLiwgVG4gPSB2YWx1ZQorLy8gQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTCgyLFQsdmFsdWUpOiAsIFQyID0gdmFsdWUsIC4uLCBUbiA9IHZhbHVlCisvLyBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMKG4sVCx2YWx1ZSk6IDxub3RoaW5nPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19PV05fUFBfUFJJTUlUSVZFUykKKworIyAgIGluY2x1ZGUgPGJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9maWx0ZXJfcGFyYW1zLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3Ivc3ViLmhwcD4KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMX0lNUEwoaSwgcGFyYW0sIHZhbHVlX2Z1bmMpIFwKKyAgICBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMX0RFTEFZXzEoIFwKKyAgICAgICAgICBpIFwKKyAgICAgICAgLCBCT09TVF9NUExfUFBfU1VCKEJPT1NUX01QTF9MSU1JVF9NRVRBRlVOQ1RJT05fQVJJVFksaSkgXAorICAgICAgICAsIHBhcmFtIFwKKyAgICAgICAgLCB2YWx1ZV9mdW5jIFwKKyAgICAgICAgKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9ERUZfUEFSQU1TX1RBSUxfREVMQVlfMShpLCBuLCBwYXJhbSwgdmFsdWVfZnVuYykgXAorICAgIEJPT1NUX01QTF9QUF9ERUZfUEFSQU1TX1RBSUxfREVMQVlfMihpLG4scGFyYW0sdmFsdWVfZnVuYykgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMX0RFTEFZXzIoaSwgbiwgcGFyYW0sIHZhbHVlX2Z1bmMpIFwKKyAgICBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9BTkQoaSxuKSkgXAorICAgIEJPT1NUX01QTF9QUF9ERUZfUEFSQU1TX1RBSUxfIyNpKG4scGFyYW0sdmFsdWVfZnVuYykgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMXzAoaSxwLHYpIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXyMjaShwIyMxIHYoKSxwIyMyIHYoKSxwIyMzIHYoKSxwIyM0IHYoKSxwIyM1IHYoKSxwIyM2IHYoKSxwIyM3IHYoKSxwIyM4IHYoKSxwIyM5IHYoKSkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF8xKGkscCx2KSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU18jI2kocCMjMiB2KCkscCMjMyB2KCkscCMjNCB2KCkscCMjNSB2KCkscCMjNiB2KCkscCMjNyB2KCkscCMjOCB2KCkscCMjOSB2KCkscDEpCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9ERUZfUEFSQU1TX1RBSUxfMihpLHAsdikgQk9PU1RfTVBMX1BQX0ZJTFRFUl9QQVJBTVNfIyNpKHAjIzMgdigpLHAjIzQgdigpLHAjIzUgdigpLHAjIzYgdigpLHAjIzcgdigpLHAjIzggdigpLHAjIzkgdigpLHAxLHAyKQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMXzMoaSxwLHYpIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXyMjaShwIyM0IHYoKSxwIyM1IHYoKSxwIyM2IHYoKSxwIyM3IHYoKSxwIyM4IHYoKSxwIyM5IHYoKSxwMSxwMixwMykKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF80KGkscCx2KSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU18jI2kocCMjNSB2KCkscCMjNiB2KCkscCMjNyB2KCkscCMjOCB2KCkscCMjOSB2KCkscDEscDIscDMscDQpCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9ERUZfUEFSQU1TX1RBSUxfNShpLHAsdikgQk9PU1RfTVBMX1BQX0ZJTFRFUl9QQVJBTVNfIyNpKHAjIzYgdigpLHAjIzcgdigpLHAjIzggdigpLHAjIzkgdigpLHAxLHAyLHAzLHA0LHA1KQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMXzYoaSxwLHYpIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXyMjaShwIyM3IHYoKSxwIyM4IHYoKSxwIyM5IHYoKSxwMSxwMixwMyxwNCxwNSxwNikKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF83KGkscCx2KSBCT09TVF9NUExfUFBfRklMVEVSX1BBUkFNU18jI2kocCMjOCB2KCkscCMjOSB2KCkscDEscDIscDMscDQscDUscDYscDcpCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9ERUZfUEFSQU1TX1RBSUxfOChpLHAsdikgQk9PU1RfTVBMX1BQX0ZJTFRFUl9QQVJBTVNfIyNpKHAjIzkgdigpLHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4KQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMXzkoaSxwLHYpIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXyMjaShwMSxwMixwMyxwNCxwNSxwNixwNyxwOCxwOSkKKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2FkZC5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvc3ViLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaW5jLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0FVWF9UQUlMX1BBUkFNX0ZVTkModW51c2VkLCBpLCBvcCkgXAorICAgICwgQk9PU1RfUFBfQ0FUKCBcCisgICAgICAgICAgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAxLCBvcCkgXAorICAgICAgICAsIEJPT1NUX1BQX0FERF9EKDEsIGksIEJPT1NUX1BQX0lOQyhCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDAsIG9wKSkpIFwKKyAgICAgICAgKSBCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDIsIG9wKSgpIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTF9JTVBMKGksIHBhcmFtLCB2YWx1ZV9mdW5jKSBcCisgICAgQk9PU1RfUFBfUkVQRUFUKCBcCisgICAgICAgICAgQk9PU1RfUFBfU1VCX0QoMSwgQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSwgaSkgXAorICAgICAgICAsIEJPT1NUX01QTF9QUF9BVVhfVEFJTF9QQVJBTV9GVU5DIFwKKyAgICAgICAgLCAoaSwgcGFyYW0sIHZhbHVlX2Z1bmMpIFwKKyAgICAgICAgKSBcCisgICAgLyoqLworCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQ0ZHX05PX09XTl9QUF9QUklNSVRJVkVTCisKKyNkZWZpbmUgQk9PU1RfTVBMX1BQX0RFRl9QQVJBTVNfVEFJTChpLCBwYXJhbSwgdmFsdWUpIFwKKyAgICBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMX0lNUEwoaSwgcGFyYW0sIEJPT1NUX1BQX0lERU5USVRZKD12YWx1ZSkpIFwKKyAgICAvKiovCisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX0RFRkFVTFRfUEFSQU1FVEVSU19JTl9ORVNURURfVEVNUExBVEVTKQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfTkVTVEVEX0RFRl9QQVJBTVNfVEFJTChpLCBwYXJhbSwgdmFsdWUpIFwKKyAgICBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMX0lNUEwoaSwgcGFyYW0sIEJPT1NUX1BQX0lERU5USVRZKD12YWx1ZSkpIFwKKyAgICAvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfTkVTVEVEX0RFRl9QQVJBTVNfVEFJTChpLCBwYXJhbSwgdmFsdWUpIFwKKyAgICBCT09TVF9NUExfUFBfREVGX1BBUkFNU19UQUlMX0lNUEwoaSwgcGFyYW0sIEJPT1NUX1BQX0VNUFRZKSBcCisgICAgLyoqLworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9ERUZfUEFSQU1TX1RBSUxfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZW51bS5ocHAgYi9ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZW51bS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE1NDFhMAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9lbnVtLmhwcApAQCAtMCwwICsxLDYyIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfRU5VTV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfRU5VTV9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGVudW0uaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvcHJlcHJvY2Vzc29yLmhwcD4KKworLy8gQk9PU1RfTVBMX1BQX0VOVU0oMCxpbnQpOiA8bm90aGluZz4KKy8vIEJPT1NUX01QTF9QUF9FTlVNKDEsaW50KTogaW50CisvLyBCT09TVF9NUExfUFBfRU5VTSgyLGludCk6IGludCwgaW50CisvLyBCT09TVF9NUExfUFBfRU5VTShuLGludCk6IGludCwgaW50LCAuLiwgaW50CisKKyNpZiAhZGVmaW5lZChCT09TVF9NUExfQ0ZHX05PX09XTl9QUF9QUklNSVRJVkVTKQorCisjICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX0VOVU0obiwgcGFyYW0pIFwKKyAgICBCT09TVF9QUF9DQVQoQk9PU1RfTVBMX1BQX0VOVU1fLG4pKHBhcmFtKSBcCisgICAgLyoqLworICAgIAorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRU5VTV8wKHApCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9FTlVNXzEocCkgcAorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRU5VTV8yKHApIHAscAorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRU5VTV8zKHApIHAscCxwCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9FTlVNXzQocCkgcCxwLHAscAorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRU5VTV81KHApIHAscCxwLHAscAorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRU5VTV82KHApIHAscCxwLHAscCxwCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9FTlVNXzcocCkgcCxwLHAscCxwLHAscAorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRU5VTV84KHApIHAscCxwLHAscCxwLHAscAorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfRU5VTV85KHApIHAscCxwLHAscCxwLHAscCxwCisKKyNlbHNlCisKKyMgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXQuaHBwPgorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9BVVhfRU5VTV9GVU5DKHVudXNlZCwgaSwgcGFyYW0pIFwKKyAgICBCT09TVF9QUF9DT01NQV9JRihpKSBwYXJhbSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9FTlVNKG4sIHBhcmFtKSBcCisgICAgQk9PU1RfUFBfUkVQRUFUKCBcCisgICAgICAgICAgbiBcCisgICAgICAgICwgQk9PU1RfTVBMX1BQX0FVWF9FTlVNX0ZVTkMgXAorICAgICAgICAsIHBhcmFtIFwKKyAgICAgICAgKSBcCisgICAgLyoqLworCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX0VOVU1fSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZmlsdGVyX3BhcmFtcy5ocHAgYi9ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvZmlsdGVyX3BhcmFtcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmVmZDk4NAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9maWx0ZXJfcGFyYW1zLmhwcApAQCAtMCwwICsxLDI4IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfRklMVEVSX1BBUkFNU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfRklMVEVSX1BBUkFNU19IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGZpbHRlcl9wYXJhbXMuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNkZWZpbmUgQk9PU1RfTVBMX1BQX0ZJTFRFUl9QQVJBTVNfMChwMSxwMixwMyxwNCxwNSxwNixwNyxwOCxwOSkgCisjZGVmaW5lIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXzEocDEscDIscDMscDQscDUscDYscDcscDgscDkpIHAxCisjZGVmaW5lIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXzIocDEscDIscDMscDQscDUscDYscDcscDgscDkpIHAxLHAyCisjZGVmaW5lIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXzMocDEscDIscDMscDQscDUscDYscDcscDgscDkpIHAxLHAyLHAzCisjZGVmaW5lIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXzQocDEscDIscDMscDQscDUscDYscDcscDgscDkpIHAxLHAyLHAzLHA0CisjZGVmaW5lIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXzUocDEscDIscDMscDQscDUscDYscDcscDgscDkpIHAxLHAyLHAzLHA0LHA1CisjZGVmaW5lIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXzYocDEscDIscDMscDQscDUscDYscDcscDgscDkpIHAxLHAyLHAzLHA0LHA1LHA2CisjZGVmaW5lIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXzcocDEscDIscDMscDQscDUscDYscDcscDgscDkpIHAxLHAyLHAzLHA0LHA1LHA2LHA3CisjZGVmaW5lIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXzgocDEscDIscDMscDQscDUscDYscDcscDgscDkpIHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4CisjZGVmaW5lIEJPT1NUX01QTF9QUF9GSUxURVJfUEFSQU1TXzkocDEscDIscDMscDQscDUscDYscDcscDgscDkpIHAxLHAyLHAzLHA0LHA1LHA2LHA3LHA4LHA5CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9GSUxURVJfUEFSQU1TX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcmFtcy5ocHAgYi9ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvcGFyYW1zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzg2MWVjCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3BhcmFtcy5ocHAKQEAgLTAsMCArMSw2NSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX1BBUkFNU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfUEFSQU1TX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogcGFyYW1zLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL3ByZXByb2Nlc3Nvci5ocHA+CisKKy8vIEJPT1NUX01QTF9QUF9QQVJBTVMoMCxUKTogPG5vdGhpbmc+CisvLyBCT09TVF9NUExfUFBfUEFSQU1TKDEsVCk6IFQxCisvLyBCT09TVF9NUExfUFBfUEFSQU1TKDIsVCk6IFQxLCBUMgorLy8gQk9PU1RfTVBMX1BQX1BBUkFNUyhuLFQpOiBUMSwgVDIsIC4uLCBUbgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19PV05fUFBfUFJJTUlUSVZFUykKKworIyAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9QQVJBTVMobixwKSBcCisgICAgQk9PU1RfUFBfQ0FUKEJPT1NUX01QTF9QUF9QQVJBTVNfLG4pKHApIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1BBUkFNU18wKHApCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9QQVJBTVNfMShwKSBwIyMxCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9QQVJBTVNfMihwKSBwIyMxLHAjIzIKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1BBUkFNU18zKHApIHAjIzEscCMjMixwIyMzCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9QQVJBTVNfNChwKSBwIyMxLHAjIzIscCMjMyxwIyM0CisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9QQVJBTVNfNShwKSBwIyMxLHAjIzIscCMjMyxwIyM0LHAjIzUKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1BBUkFNU182KHApIHAjIzEscCMjMixwIyMzLHAjIzQscCMjNSxwIyM2CisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9QQVJBTVNfNyhwKSBwIyMxLHAjIzIscCMjMyxwIyM0LHAjIzUscCMjNixwIyM3CisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9QQVJBTVNfOChwKSBwIyMxLHAjIzIscCMjMyxwIyM0LHAjIzUscCMjNixwIyM3LHAjIzgKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1BBUkFNU185KHApIHAjIzEscCMjMixwIyMzLHAjIzQscCMjNSxwIyM2LHAjIzcscCMjOCxwIyM5CisKKyNlbHNlCisKKyMgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXQuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9BVVhfUEFSQU1fRlVOQyh1bnVzZWQsIGksIHBhcmFtKSBcCisgICAgQk9PU1RfUFBfQ09NTUFfSUYoaSkgXAorICAgIEJPT1NUX1BQX0NBVChwYXJhbSwgQk9PU1RfUFBfSU5DKGkpKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9QQVJBTVMobiwgcGFyYW0pIFwKKyAgICBCT09TVF9QUF9SRVBFQVQoIFwKKyAgICAgICAgICBuIFwKKyAgICAgICAgLCBCT09TVF9NUExfUFBfQVVYX1BBUkFNX0ZVTkMgXAorICAgICAgICAsIHBhcmFtIFwKKyAgICAgICAgKSBcCisgICAgLyoqLworCisjZW5kaWYgCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9QQVJBTVNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3Ivc3ViLmhwcCBiL2Jvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9zdWIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmNWUyOTEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3Ivc3ViLmhwcApAQCAtMCwwICsxLDY1IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfU1VCX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9TVUJfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBzdWIuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvcHJlcHJvY2Vzc29yLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fT1dOX1BQX1BSSU1JVElWRVMpCisKKyMgICBpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvdHVwbGUuaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX0JST0tFTl9QUF9NQUNST19FWFBBTlNJT04pCisjICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1NVQihpLGopIFwKKyAgICBCT09TVF9NUExfUFBfU1VCX0RFTEFZKGksaikgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfU1VCX0RFTEFZKGksaikgXAorICAgIEJPT1NUX1BQX0NBVChCT09TVF9NUExfUFBfVFVQTEVfMTFfRUxFTV8jI2ksQk9PU1RfTVBMX1BQX1NVQl8jI2opIFwKKyAgICAvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfU1VCKGksaikgXAorICAgIEJPT1NUX01QTF9QUF9TVUJfREVMQVkoaSxqKSBcCisgICAgLyoqLworCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9TVUJfREVMQVkoaSxqKSBcCisgICAgQk9PU1RfTVBMX1BQX1RVUExFXzExX0VMRU1fIyNpIEJPT1NUX01QTF9QUF9TVUJfIyNqIFwKKyAgICAvKiovCisjZW5kaWYKKworIyAgIGRlZmluZSBCT09TVF9NUExfUFBfU1VCXzAgKDAsMSwyLDMsNCw1LDYsNyw4LDksMTApCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9TVUJfMSAoMCwwLDEsMiwzLDQsNSw2LDcsOCw5KQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfU1VCXzIgKDAsMCwwLDEsMiwzLDQsNSw2LDcsOCkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1NVQl8zICgwLDAsMCwwLDEsMiwzLDQsNSw2LDcpCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9TVUJfNCAoMCwwLDAsMCwwLDEsMiwzLDQsNSw2KQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfU1VCXzUgKDAsMCwwLDAsMCwwLDEsMiwzLDQsNSkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1NVQl82ICgwLDAsMCwwLDAsMCwwLDEsMiwzLDQpCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9TVUJfNyAoMCwwLDAsMCwwLDAsMCwwLDEsMiwzKQorIyAgIGRlZmluZSBCT09TVF9NUExfUFBfU1VCXzggKDAsMCwwLDAsMCwwLDAsMCwwLDEsMikKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1NVQl85ICgwLDAsMCwwLDAsMCwwLDAsMCwwLDEpCisjICAgZGVmaW5lIEJPT1NUX01QTF9QUF9TVUJfMTAgKDAsMCwwLDAsMCwwLDAsMCwwLDAsMCkKKworI2Vsc2UKKworIyAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL3N1Yi5ocHA+CisKKyMgICBkZWZpbmUgQk9PU1RfTVBMX1BQX1NVQihpLGopIFwKKyAgICBCT09TVF9QUF9TVUIoaSxqKSBcCisgICAgLyoqLworICAgIAorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9TVUJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy9wcmVwcm9jZXNzb3IvdHVwbGUuaHBwIGIvYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3R1cGxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDU5NDA3Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2F1eF8vcHJlcHJvY2Vzc29yL3R1cGxlLmhwcApAQCAtMCwwICsxLDI5IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9QUkVQUk9DRVNTT1JfVFVQTEVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfUFJFUFJPQ0VTU09SX1RVUExFX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogdHVwbGUuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNkZWZpbmUgQk9PU1RfTVBMX1BQX1RVUExFXzExX0VMRU1fMChlMCxlMSxlMixlMyxlNCxlNSxlNixlNyxlOCxlOSxlMTApIGUwCisjZGVmaW5lIEJPT1NUX01QTF9QUF9UVVBMRV8xMV9FTEVNXzEoZTAsZTEsZTIsZTMsZTQsZTUsZTYsZTcsZTgsZTksZTEwKSBlMQorI2RlZmluZSBCT09TVF9NUExfUFBfVFVQTEVfMTFfRUxFTV8yKGUwLGUxLGUyLGUzLGU0LGU1LGU2LGU3LGU4LGU5LGUxMCkgZTIKKyNkZWZpbmUgQk9PU1RfTVBMX1BQX1RVUExFXzExX0VMRU1fMyhlMCxlMSxlMixlMyxlNCxlNSxlNixlNyxlOCxlOSxlMTApIGUzCisjZGVmaW5lIEJPT1NUX01QTF9QUF9UVVBMRV8xMV9FTEVNXzQoZTAsZTEsZTIsZTMsZTQsZTUsZTYsZTcsZTgsZTksZTEwKSBlNAorI2RlZmluZSBCT09TVF9NUExfUFBfVFVQTEVfMTFfRUxFTV81KGUwLGUxLGUyLGUzLGU0LGU1LGU2LGU3LGU4LGU5LGUxMCkgZTUKKyNkZWZpbmUgQk9PU1RfTVBMX1BQX1RVUExFXzExX0VMRU1fNihlMCxlMSxlMixlMyxlNCxlNSxlNixlNyxlOCxlOSxlMTApIGU2CisjZGVmaW5lIEJPT1NUX01QTF9QUF9UVVBMRV8xMV9FTEVNXzcoZTAsZTEsZTIsZTMsZTQsZTUsZTYsZTcsZTgsZTksZTEwKSBlNworI2RlZmluZSBCT09TVF9NUExfUFBfVFVQTEVfMTFfRUxFTV84KGUwLGUxLGUyLGUzLGU0LGU1LGU2LGU3LGU4LGU5LGUxMCkgZTgKKyNkZWZpbmUgQk9PU1RfTVBMX1BQX1RVUExFXzExX0VMRU1fOShlMCxlMSxlMixlMyxlNCxlNSxlNixlNyxlOCxlOSxlMTApIGU5CisjZGVmaW5lIEJPT1NUX01QTF9QUF9UVVBMRV8xMV9FTEVNXzEwKGUwLGUxLGUyLGUzLGU0LGU1LGU2LGU3LGU4LGU5LGUxMCkgZTEwCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1BSRVBST0NFU1NPUl9UVVBMRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC9hdXhfL3N0YXRpY19jYXN0LmhwcCBiL2Jvb3N0L21wbC9hdXhfL3N0YXRpY19jYXN0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzEyMTI4Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2F1eF8vc3RhdGljX2Nhc3QuaHBwCkBAIC0wLDAgKzEsMjcgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAxLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogc3RhdGljX2Nhc3QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTYxKSkgXAorIHx8IEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sIDwgMykgXAorIHx8IEJPT1NUX1dPUktBUk9VTkQoX19NV0VSS1NfXywgPD0gMHgzMDAxKQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUKFQsIGV4cHIpIChUKShleHByKQorI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9TVEFUSUNfQ0FTVChULCBleHByKSBzdGF0aWNfY2FzdDxUPihleHByKQorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHlfZndkLmhwcCBiL2Jvb3N0L21wbC9hdXhfL3RlbXBsYXRlX2FyaXR5X2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVkMmYxNgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9hdXhfL3RlbXBsYXRlX2FyaXR5X2Z3ZC5ocHAKQEAgLTAsMCArMSwyMyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9BVVhfVEVNUExBVEVfQVJJVFlfRldEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX0ZXRF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHRlbXBsYXRlX2FyaXR5X2Z3ZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRiA+IHN0cnVjdCB0ZW1wbGF0ZV9hcml0eTsKKworfX19CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1RFTVBMQVRFX0FSSVRZX0ZXRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC9hdXhfL3ZhbHVlX3drbmQuaHBwIGIvYm9vc3QvbXBsL2F1eF8vdmFsdWVfd2tuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE3MjdiZQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9hdXhfL3ZhbHVlX3drbmQuaHBwCkBAIC0wLDAgKzEsODkgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHZhbHVlX3drbmQuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9zdGF0aWNfY2FzdC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL2ludGVncmFsLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvZXRpLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfQkNDX0lOVEVHUkFMX0NPTlNUQU5UUykgXAorICAgIHx8IGRlZmluZWQoQk9PU1RfTVBMX0NGR19NU1ZDXzYwX0VUSV9CVUcpCisKKyMgICBpbmNsdWRlIDxib29zdC9tcGwvaW50LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7IG5hbWVzcGFjZSBhdXggewordGVtcGxhdGU8IHR5cGVuYW1lIENfID4gc3RydWN0IHZhbHVlX3drbmQKKyAgICA6IENfCit7Cit9OworCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX01TVkNfNjBfRVRJX0JVRykKK3RlbXBsYXRlPD4gc3RydWN0IHZhbHVlX3drbmQ8aW50PgorICAgIDogaW50XzwxPgoreworICAgIHVzaW5nIGludF88MT46OnZhbHVlOworfTsKKyNlbmRpZgorfX19CisKKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTVNWQ182MF9FVElfQlVHKQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoQykgXAorICAgIDo6Qk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0U6OmF1eDo6dmFsdWVfd2tuZDwgQyA+IFwKKy8qKi8KKyMgICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKEMpIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChDKQorI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9WQUxVRV9XS05EKEMpIEMKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0FVWF9NU1ZDX1ZBTFVFX1dLTkQoQykgXAorICAgIDo6bmRuYm9vc3Q6Om1wbDo6YXV4Ojp2YWx1ZV93a25kPCBDID4gXAorLyoqLworI2VuZGlmCisKKyNlbHNlIC8vIEJPT1NUX01QTF9DRkdfQkNDX0lOVEVHUkFMX0NPTlNUQU5UUworCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChDKSBDCisjICAgZGVmaW5lIEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKEMpIEMKKworI2VuZGlmCisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fRURHX1ZFUlNJT05fXywgPD0gMjM4KQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKFQsIEMpIFwKKyAgICBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUKFQsIEM6OnZhbHVlKSBcCisvKiovCisjZWxzZQorIyAgIGRlZmluZSBCT09TVF9NUExfQVVYX05FU1RFRF9WQUxVRV9XS05EKFQsIEMpIFwKKyAgICBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoQyk6OnZhbHVlIFwKKy8qKi8KKyNlbmRpZgorCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgdmFsdWVfdHlwZV93a25kCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUOjp2YWx1ZV90eXBlIHR5cGU7Cit9OworCisjaWYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX01TVkNfRVRJX0JVRykKK3RlbXBsYXRlPD4gc3RydWN0IHZhbHVlX3R5cGVfd2tuZDxpbnQ+Cit7CisgICAgdHlwZWRlZiBpbnQgdHlwZTsKK307CisjZW5kaWYKKworfX19CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkRfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYXV4Xy95ZXNfbm8uaHBwIGIvYm9vc3QvbXBsL2F1eF8veWVzX25vLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGQ0MzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2F1eF8veWVzX25vLmhwcApAQCAtMCwwICsxLDU4IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0FVWF9ZRVNfTk9fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9BVVhfWUVTX05PX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogeWVzX25vLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvYXJyYXlzLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvbXN2Yy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisKK25hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBtcGwgeyBuYW1lc3BhY2UgYXV4IHsKKwordHlwZWRlZiBjaGFyICgmbm9fdGFnKVsxXTsKK3R5cGVkZWYgY2hhciAoJnllc190YWcpWzJdOworCit0ZW1wbGF0ZTwgYm9vbCBDXyA+IHN0cnVjdCB5ZXNfbm9fdGFnCit7CisgICAgdHlwZWRlZiBub190YWcgdHlwZTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHllc19ub190YWc8dHJ1ZT4KK3sKKyAgICB0eXBlZGVmIHllc190YWcgdHlwZTsKK307CisKKwordGVtcGxhdGU8IEJPT1NUX01QTF9BVVhfTlRUUF9ERUNMKGxvbmcsIG4pID4gc3RydWN0IHdlaWdodGVkX3RhZworeworI2lmICFCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCkKKyAgICB0eXBlZGVmIGNoYXIgKCZ0eXBlKVtuXTsKKyNlbHNlCisgICAgY2hhciBidWZbbl07CisgICAgdHlwZWRlZiB3ZWlnaHRlZF90YWcgdHlwZTsKKyNlbmRpZgorfTsKKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19ERVBFTkRFTlRfQVJSQVlfVFlQRVMpCit0ZW1wbGF0ZTw+IHN0cnVjdCB3ZWlnaHRlZF90YWc8MD4KK3sKKyAgICB0eXBlZGVmIGNoYXIgKCZ0eXBlKVsxXTsKK307CisjZW5kaWYKKworfX19CisKKyNlbmRpZiAvLyBCT09TVF9NUExfQVVYX1lFU19OT19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC9ib29sLmhwcCBiL2Jvb3N0L21wbC9ib29sLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWJmMjJmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2Jvb2wuaHBwCkBAIC0wLDAgKzEsMzkgQEAKKworI2lmbmRlZiBCT09TVF9NUExfQk9PTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0JPT0xfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBib29sLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2Jvb2xfZndkLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvaW50ZWdyYWxfY190YWcuaHBwPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2NvbmZpZy9zdGF0aWNfY29uc3RhbnQuaHBwPgorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCisKK3RlbXBsYXRlPCBib29sIENfID4gc3RydWN0IGJvb2xfCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gQ18pOworICAgIHR5cGVkZWYgaW50ZWdyYWxfY190YWcgdGFnOworICAgIHR5cGVkZWYgYm9vbF8gdHlwZTsKKyAgICB0eXBlZGVmIGJvb2wgdmFsdWVfdHlwZTsKKyAgICBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gdGhpcy0+dmFsdWU7IH0KK307CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19JTkNMQVNTX01FTUJFUl9JTklUSUFMSVpBVElPTikKK3RlbXBsYXRlPCBib29sIENfID4KK2Jvb2wgY29uc3QgYm9vbF88Q18+Ojp2YWx1ZTsKKyNlbmRpZgorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0JPT0xfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvYm9vbF9md2QuaHBwIGIvYm9vc3QvbXBsL2Jvb2xfZndkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzFhYjljCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2Jvb2xfZndkLmhwcApAQCAtMCwwICsxLDMzIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0JPT0xfRldEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfQk9PTF9GV0RfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBib29sX2Z3ZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2FkbF9iYXJyaWVyLmhwcD4KKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgorCit0ZW1wbGF0ZTwgYm9vbCBDXyA+IHN0cnVjdCBib29sXzsKKworLy8gc2hvcmN1dHMKK3R5cGVkZWYgYm9vbF88dHJ1ZT4gdHJ1ZV87Cit0eXBlZGVmIGJvb2xfPGZhbHNlPiBmYWxzZV87CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfREVDTChib29sXykKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfREVDTCh0cnVlXykKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfREVDTChmYWxzZV8pCisKKyNlbmRpZiAvLyBCT09TVF9NUExfQk9PTF9GV0RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvaWYuaHBwIGIvYm9vc3QvbXBsL2lmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTMzZTk2Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2lmLmhwcApAQCAtMCwwICsxLDEzNSBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9JRl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0lGX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaWYuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy92YWx1ZV93a25kLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9zdGF0aWNfY2FzdC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vbmFfc3BlYy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2NvbmZpZy9pbnRlZ3JhbC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL2N0cHMuaHBwPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2NvbmZpZy93b3JrYXJvdW5kLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorCit0ZW1wbGF0ZTwKKyAgICAgIGJvb2wgQworICAgICwgdHlwZW5hbWUgVDEKKyAgICAsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGlmX2MKK3sKKyAgICB0eXBlZGVmIFQxIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIFQxCisgICAgLCB0eXBlbmFtZSBUMgorICAgID4KK3N0cnVjdCBpZl9jPGZhbHNlLFQxLFQyPgoreworICAgIHR5cGVkZWYgVDIgdHlwZTsKK307CisKKy8vIGFndXJ0LCAwNS9zZXAvMDQ6IG5vbmRlc2NyaXB0aXZlIHBhcmFtZXRlciBuYW1lcyBmb3IgdGhlIHNha2Ugb2YgRGlnaXRhbE1hcnMKKy8vIChhbmQgcG9zc2libHkgTVdDVyA8IDguMCk7IHNlZSBodHRwOi8vYXJ0aWNsZS5nbWFuZS5vcmcvZ21hbmUuY29tcC5saWIuYm9vc3QuZGV2ZWwvMTA4OTU5Cit0ZW1wbGF0ZTwKKyAgICAgIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgICwgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShUMykKKyAgICA+CitzdHJ1Y3QgaWZfCit7CisgcHJpdmF0ZToKKyAgICAvLyBhZ3VydCwgMDIvamFuLzAzOiB0d28tc3RlcCAndHlwZScgZGVmaW5pdGlvbiBmb3IgdGhlIHNha2Ugb2YgYUNDIAorICAgIHR5cGVkZWYgaWZfYzwKKyNpZiBkZWZpbmVkKEJPT1NUX01QTF9DRkdfQkNDX0lOVEVHUkFMX0NPTlNUQU5UUykKKyAgICAgICAgICBCT09TVF9NUExfQVVYX1ZBTFVFX1dLTkQoVDEpOjp2YWx1ZQorI2Vsc2UKKyAgICAgICAgICBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUKGJvb2wsIEJPT1NUX01QTF9BVVhfVkFMVUVfV0tORChUMSk6OnZhbHVlKQorI2VuZGlmCisgICAgICAgICwgVDIKKyAgICAgICAgLCBUMworICAgICAgICA+IGFsbW9zdF90eXBlXzsKKyAKKyBwdWJsaWM6CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhbG1vc3RfdHlwZV86OnR5cGUgdHlwZTsKKyAgICAKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDMsaWZfLChUMSxUMixUMykpCit9OworCisjZWxzZQorCisvLyBubyBwYXJ0aWFsIGNsYXNzIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uCisKK25hbWVzcGFjZSBhdXggeworCit0ZW1wbGF0ZTwgYm9vbCBDID4KK3N0cnVjdCBpZl9pbXBsCit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiA+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICB0eXBlZGVmIFQxIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBpZl9pbXBsPGZhbHNlPgoreworICAgIHRlbXBsYXRlPCB0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIgPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsgCisgICAgICAgIHR5cGVkZWYgVDIgdHlwZTsKKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgYXV4CisKK3RlbXBsYXRlPAorICAgICAgYm9vbCBDXworICAgICwgdHlwZW5hbWUgVDEKKyAgICAsIHR5cGVuYW1lIFQyCisgICAgPgorc3RydWN0IGlmX2MKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGF1eDo6aWZfaW1wbDwgQ18gPgorICAgICAgICA6OnRlbXBsYXRlIHJlc3VsdF88VDEsVDI+Ojp0eXBlIHR5cGU7Cit9OworCisvLyAoYWxtb3N0KSBjb3B5ICYgcGFzdGUgaW4gb3JkZXIgdG8gc2F2ZSBvbmUgbW9yZSAKKy8vIHJlY3Vyc2l2ZWx5IG5lc3RlZCB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uIHRvIHVzZXIKK3RlbXBsYXRlPAorICAgICAgdHlwZW5hbWUgQk9PU1RfTVBMX0FVWF9OQV9QQVJBTShDXykKKyAgICAsIHR5cGVuYW1lIEJPT1NUX01QTF9BVVhfTkFfUEFSQU0oVDEpCisgICAgLCB0eXBlbmFtZSBCT09TVF9NUExfQVVYX05BX1BBUkFNKFQyKQorICAgID4KK3N0cnVjdCBpZl8KK3sKKyAgICBlbnVtIHsgbXN2Y193a25kXyA9IEJPT1NUX01QTF9BVVhfTVNWQ19WQUxVRV9XS05EKENfKTo6dmFsdWUgfTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgYXV4OjppZl9pbXBsPCBCT09TVF9NUExfQVVYX1NUQVRJQ19DQVNUKGJvb2wsIG1zdmNfd2tuZF8pID4KKyAgICAgICAgOjp0ZW1wbGF0ZSByZXN1bHRfPFQxLFQyPjo6dHlwZSB0eXBlOworCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgzLGlmXywoQ18sVDEsVDIpKQorfTsKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworQk9PU1RfTVBMX0FVWF9OQV9TUEVDKDMsIGlmXykKKworfX0KKworI2VuZGlmIC8vIEJPT1NUX01QTF9JRl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC9pbnQuaHBwIGIvYm9vc3QvbXBsL2ludC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTRkYjU0OAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9pbnQuaHBwCkBAIC0wLDAgKzEsMjIgQEAKKworI2lmbmRlZiBCT09TVF9NUExfSU5UX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfSU5UX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaW50LmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2ludF9md2QuaHBwPgorCisjZGVmaW5lIEFVWF9XUkFQUEVSX1ZBTFVFX1RZUEUgaW50CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vaW50ZWdyYWxfd3JhcHBlci5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9NUExfSU5UX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2ludF9md2QuaHBwIGIvYm9vc3QvbXBsL2ludF9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3YjA0M2MKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvaW50X2Z3ZC5ocHAKQEAgLTAsMCArMSwyNyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9JTlRfRldEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfSU5UX0ZXRF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGludF9md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9hZGxfYmFycmllci5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vbnR0cF9kZWNsLmhwcD4KKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfT1BFTgorCit0ZW1wbGF0ZTwgQk9PU1RfTVBMX0FVWF9OVFRQX0RFQ0woaW50LCBOKSA+IHN0cnVjdCBpbnRfOworCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9ERUNMKGludF8pCisKKyNlbmRpZiAvLyBCT09TVF9NUExfSU5UX0ZXRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC9pbnRlZ3JhbF9jLmhwcCBiL2Jvb3N0L21wbC9pbnRlZ3JhbF9jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjcwZGM1Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvbXBsL2ludGVncmFsX2MuaHBwCkBAIC0wLDAgKzEsNTEgQEAKKworI2lmbmRlZiBCT09TVF9NUExfSU5URUdSQUxfQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0lOVEVHUkFMX0NfSFBQX0lOQ0xVREVECisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDAtMjAwNgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL21wbCBmb3IgZG9jdW1lbnRhdGlvbi4KKworLy8gJElkOiBpbnRlZ3JhbF9jLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2ludGVncmFsX2NfZndkLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvY3Rwcy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL3N0YXRpY19jb25zdGFudC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL3dvcmthcm91bmQuaHBwPgorCisjaWYgQk9PU1RfV09SS0FST1VORChfX0hQX2FDQywgPD0gNTM4MDApCisvLyB0aGUgdHlwZSBvZiBub24tdHlwZSB0ZW1wbGF0ZSBhcmd1bWVudHMgbWF5IG5vdCBkZXBlbmQgb24gdGVtcGxhdGUgYXJndW1lbnRzCisjICAgZGVmaW5lIEFVWF9XUkFQUEVSX1BBUkFNUyhOKSB0eXBlbmFtZSBULCBsb25nIE4KKyNlbHNlCisjICAgZGVmaW5lIEFVWF9XUkFQUEVSX1BBUkFNUyhOKSB0eXBlbmFtZSBULCBUIE4KKyNlbmRpZgorCisjZGVmaW5lIEFVWF9XUkFQUEVSX05BTUUgaW50ZWdyYWxfYworI2RlZmluZSBBVVhfV1JBUFBFUl9WQUxVRV9UWVBFIFQKKyNkZWZpbmUgQVVYX1dSQVBQRVJfSU5TVCh2YWx1ZSkgQVVYX1dSQVBQRVJfTkFNRTwgVCwgdmFsdWUgPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2ludGVncmFsX3dyYXBwZXIuaHBwPgorCisKKyNpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKSBcCisgJiYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA8PSAweDU1MSkKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KKy8vICdib29sJyBjb25zdGFudCBkb2Vzbid0IGhhdmUgJ25leHQnLydwcmlvcicgbWVtYmVycwordGVtcGxhdGU8IGJvb2wgQyA+CitzdHJ1Y3QgaW50ZWdyYWxfYzxib29sLCBDPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IEMpOworICAgIHR5cGVkZWYgaW50ZWdyYWxfY190YWcgdGFnOworICAgIHR5cGVkZWYgaW50ZWdyYWxfYyB0eXBlOworICAgIHR5cGVkZWYgYm9vbCB2YWx1ZV90eXBlOworICAgIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiB0aGlzLT52YWx1ZTsgfQorfTsKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX0NMT1NFCisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9JTlRFR1JBTF9DX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2ludGVncmFsX2NfZndkLmhwcCBiL2Jvb3N0L21wbC9pbnRlZ3JhbF9jX2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZjYmZkNQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9pbnRlZ3JhbF9jX2Z3ZC5ocHAKQEAgLTAsMCArMSwzMiBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9JTlRFR1JBTF9DX0ZXRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0lOVEVHUkFMX0NfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDYKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogaW50ZWdyYWxfY19md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvd29ya2Fyb3VuZC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vYWRsX2JhcnJpZXIuaHBwPgorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fSFBfYUNDLCA8PSA1MzgwMCkKKy8vIHRoZSB0eXBlIG9mIG5vbi10eXBlIHRlbXBsYXRlIGFyZ3VtZW50cyBtYXkgbm90IGRlcGVuZCBvbiB0ZW1wbGF0ZSBhcmd1bWVudHMKK3RlbXBsYXRlPCB0eXBlbmFtZSBULCBsb25nIE4gPiBzdHJ1Y3QgaW50ZWdyYWxfYzsKKyNlbHNlCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCwgVCBOID4gc3RydWN0IGludGVncmFsX2M7CisjZW5kaWYKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfREVDTChpbnRlZ3JhbF9jKQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0lOVEVHUkFMX0NfRldEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2ludGVncmFsX2NfdGFnLmhwcCBiL2Jvb3N0L21wbC9pbnRlZ3JhbF9jX3RhZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdkYTU2MwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9pbnRlZ3JhbF9jX3RhZy5ocHAKQEAgLTAsMCArMSwyNiBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9JTlRFR1JBTF9DX1RBR19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0lOVEVHUkFMX0NfVEFHX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGludGVncmFsX2NfdGFnLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9hZGxfYmFycmllci5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vY29uZmlnL3N0YXRpY19jb25zdGFudC5ocHA+CisKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfTkFNRVNQQUNFX09QRU4KK3N0cnVjdCBpbnRlZ3JhbF9jX3RhZyB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChpbnQsIHZhbHVlID0gMCk7IH07CitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9DTE9TRQorQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9ERUNMKGludGVncmFsX2NfdGFnKQorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0lOVEVHUkFMX0NfVEFHX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvbXBsL2xhbWJkYV9md2QuaHBwIGIvYm9vc3QvbXBsL2xhbWJkYV9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0ODE3YzIKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvbGFtYmRhX2Z3ZC5ocHAKQEAgLTAsMCArMSw1NyBAQAorCisjaWZuZGVmIEJPT1NUX01QTF9MQU1CREFfRldEX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9NUExfTEFNQkRBX0ZXRF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGxhbWJkYV9md2QuaHBwIDQ5MjY3IDIwMDgtMTAtMTEgMDY6MTk6MDJaIGFndXJ0b3ZveSAkCisvLyAkRGF0ZTogMjAwOC0xMC0xMCAyMzoxOTowMiAtMDcwMCAoRnJpLCAxMCBPY3QgMjAwOCkgJAorLy8gJFJldmlzaW9uOiA0OTI2NyAkCisKKyNpbmNsdWRlIDxib29zdC9tcGwvdm9pZF9md2QuaHBwPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL25hLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9jb25maWcvbGFtYmRhLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX01QTF9DRkdfTk9fRlVMTF9MQU1CREFfU1VQUE9SVCkKKworIyAgIGluY2x1ZGUgPGJvb3N0L21wbC9pbnQuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2xhbWJkYV9hcml0eV9wYXJhbS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vdGVtcGxhdGVfYXJpdHlfZndkLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIG1wbCB7CisKK3RlbXBsYXRlPCAKKyAgICAgIHR5cGVuYW1lIFQgPSBuYQorICAgICwgdHlwZW5hbWUgVGFnID0gdm9pZF8KKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9BUklUWV9QQVJBTSgKKyAgICAgICAgICB0eXBlbmFtZSBBcml0eSA9IGludF88IGF1eDo6dGVtcGxhdGVfYXJpdHk8VD46OnZhbHVlID4KKyAgICAgICAgKQorICAgID4KK3N0cnVjdCBsYW1iZGE7CisKK319CisKKyNlbHNlIC8vIEJPT1NUX01QTF9DRkdfTk9fRlVMTF9MQU1CREFfU1VQUE9SVAorCisjICAgaW5jbHVkZSA8Ym9vc3QvbXBsL2Jvb2wuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeyBuYW1lc3BhY2UgbXBsIHsKKwordGVtcGxhdGU8IAorICAgICAgdHlwZW5hbWUgVCA9IG5hCisgICAgLCB0eXBlbmFtZSBUYWcgPSB2b2lkXworICAgICwgdHlwZW5hbWUgUHJvdGVjdCA9IHRydWVfCisgICAgPiAKK3N0cnVjdCBsYW1iZGE7CisKK319CisKKyNlbmRpZgorCisjZW5kaWYgLy8gQk9PU1RfTVBMX0xBTUJEQV9GV0RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvbGltaXRzL2FyaXR5LmhwcCBiL2Jvb3N0L21wbC9saW1pdHMvYXJpdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkYTcwYWIKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvbGltaXRzL2FyaXR5LmhwcApAQCAtMCwwICsxLDIxIEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX0xJTUlUU19BUklUWV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX0xJTUlUU19BUklUWV9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IGFyaXR5LmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaWYgIWRlZmluZWQoQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSkKKyMgICBkZWZpbmUgQk9PU1RfTVBMX0xJTUlUX01FVEFGVU5DVElPTl9BUklUWSA1CisjZW5kaWYKKworI2VuZGlmIC8vIEJPT1NUX01QTF9MSU1JVFNfQVJJVFlfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvc2l6ZV90LmhwcCBiL2Jvb3N0L21wbC9zaXplX3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0YTA1YzYKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvc2l6ZV90LmhwcApAQCAtMCwwICsxLDI1IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1NJWkVfVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfTVBMX1NJWkVfVF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMC0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHNpemVfdC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPGJvb3N0L21wbC9zaXplX3RfZndkLmhwcD4KKworI2RlZmluZSBBVVhfV1JBUFBFUl9WQUxVRV9UWVBFIHN0ZDo6c2l6ZV90CisjZGVmaW5lIEFVWF9XUkFQUEVSX05BTUUgc2l6ZV90CisjZGVmaW5lIEFVWF9XUkFQUEVSX1BBUkFNUyhOKSBzdGQ6OnNpemVfdCBOCisKKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9pbnRlZ3JhbF93cmFwcGVyLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX01QTF9TSVpFX1RfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9tcGwvc2l6ZV90X2Z3ZC5ocHAgYi9ib29zdC9tcGwvc2l6ZV90X2Z3ZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk2YTUyMQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L21wbC9zaXplX3RfZndkLmhwcApAQCAtMCwwICsxLDI4IEBACisKKyNpZm5kZWYgQk9PU1RfTVBMX1NJWkVfVF9GV0RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9TSVpFX1RfRldEX0hQUF9JTkNMVURFRAorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAwLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9tcGwgZm9yIGRvY3VtZW50YXRpb24uCisKKy8vICRJZDogc2l6ZV90X2Z3ZC5ocHAgNDkyNjcgMjAwOC0xMC0xMSAwNjoxOTowMlogYWd1cnRvdm95ICQKKy8vICREYXRlOiAyMDA4LTEwLTEwIDIzOjE5OjAyIC0wNzAwIChGcmksIDEwIE9jdCAyMDA4KSAkCisvLyAkUmV2aXNpb246IDQ5MjY3ICQKKworI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2FkbF9iYXJyaWVyLmhwcD4KKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPiAvLyBtYWtlIHN1cmUgJ3NpemVfdCcgaXMgcGxhY2VkIGludG8gJ3N0ZCcKKyNpbmNsdWRlIDxjc3RkZGVmPgorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCisKK3RlbXBsYXRlPCBzdGQ6OnNpemVfdCBOID4gc3RydWN0IHNpemVfdDsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfREVDTChzaXplX3QpCisKKyNlbmRpZiAvLyBCT09TVF9NUExfU0laRV9UX0ZXRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L21wbC92b2lkX2Z3ZC5ocHAgYi9ib29zdC9tcGwvdm9pZF9md2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2NDNkZWMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9tcGwvdm9pZF9md2QuaHBwCkBAIC0wLDAgKzEsMjYgQEAKKworI2lmbmRlZiBCT09TVF9NUExfVk9JRF9GV0RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX01QTF9WT0lEX0ZXRF9IUFBfSU5DTFVERUQKKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMS0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8gU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvbXBsIGZvciBkb2N1bWVudGF0aW9uLgorCisvLyAkSWQ6IHZvaWRfZndkLmhwcCA0OTI2NyAyMDA4LTEwLTExIDA2OjE5OjAyWiBhZ3VydG92b3kgJAorLy8gJERhdGU6IDIwMDgtMTAtMTAgMjM6MTk6MDIgLTA3MDAgKEZyaSwgMTAgT2N0IDIwMDgpICQKKy8vICRSZXZpc2lvbjogNDkyNjcgJAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vYWRsX2JhcnJpZXIuaHBwPgorCitCT09TVF9NUExfQVVYX0FETF9CQVJSSUVSX05BTUVTUEFDRV9PUEVOCisKK3N0cnVjdCB2b2lkXzsKKworQk9PU1RfTVBMX0FVWF9BRExfQkFSUklFUl9OQU1FU1BBQ0VfQ0xPU0UKK0JPT1NUX01QTF9BVVhfQURMX0JBUlJJRVJfREVDTCh2b2lkXykKKworI2VuZGlmIC8vIEJPT1NUX01QTF9WT0lEX0ZXRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L25vbl90eXBlLmhwcCBiL2Jvb3N0L25vbl90eXBlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjBkNmYxCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvbm9uX3R5cGUuaHBwCkBAIC0wLDAgKzEsMjcgQEAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgICAgICAgICAgKEMpIENvcHlyaWdodCBHZW5uYXJvIFByb3RhIDIwMDMuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gICAgKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gICAgICAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaWZuZGVmIEJPT1NUX05PTl9UWVBFX0hQUF9HUF8yMDAzMDQxNworI2RlZmluZSBCT09TVF9OT05fVFlQRV9IUFBfR1BfMjAwMzA0MTcKKworCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisgIC8vIEp1c3QgYSBzaW1wbGUgImVudmVsb3BlIiBmb3Igbm9uLXR5cGUgdGVtcGxhdGUgcGFyYW1ldGVycy4gVXNlZnVsCisgIC8vIHRvIHdvcmsgYXJvdW5kIHNvbWUgTVNWQyBkZWZpY2llbmNpZXMuCisKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgVCBuPgorIHN0cnVjdCBub25fdHlwZSB7IH07CisKKworfQorCisKKyNlbmRpZiAvLyBpbmNsdWRlIGd1YXJkCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9hZGQuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvYWRkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTI5ZjU1Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvYWRkLmhwcApAQCAtMCwwICsxLDUxIEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9BUklUSE1FVElDX0FERF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9BUklUSE1FVElDX0FERF9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGVjLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvaW5jLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC93aGlsZS5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lbGVtLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfQUREICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQUREKHgsIHkpIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfV0hJTEUoQk9PU1RfUFBfQUREX1AsIEJPT1NUX1BQX0FERF9PLCAoeCwgeSkpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9BREQoeCwgeSkgQk9PU1RfUFBfQUREX0koeCwgeSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FERF9JKHgsIHkpIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfV0hJTEUoQk9PU1RfUFBfQUREX1AsIEJPT1NUX1BQX0FERF9PLCAoeCwgeSkpKQorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfQUREX1AoZCwgeHkpIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMSwgeHkpCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NV0NDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FERF9PKGQsIHh5KSBCT09TVF9QUF9BRERfT19JIHh5CisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FERF9PKGQsIHh5KSBCT09TVF9QUF9BRERfT19JKEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgeHkpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIHh5KSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0FERF9PX0koeCwgeSkgKEJPT1NUX1BQX0lOQyh4KSwgQk9PU1RfUFBfREVDKHkpKQorIworIyAvKiBCT09TVF9QUF9BRERfRCAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FERF9EKGQsIHgsIHkpIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfV0hJTEVfICMjIGQoQk9PU1RfUFBfQUREX1AsIEJPT1NUX1BQX0FERF9PLCAoeCwgeSkpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9BRERfRChkLCB4LCB5KSBCT09TVF9QUF9BRERfRF9JKGQsIHgsIHkpCisjICAgIGRlZmluZSBCT09TVF9QUF9BRERfRF9JKGQsIHgsIHkpIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfV0hJTEVfICMjIGQoQk9PU1RfUFBfQUREX1AsIEJPT1NUX1BQX0FERF9PLCAoeCwgeSkpKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGVjLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2RlYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDUwMzM1OQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9hcml0aG1ldGljL2RlYy5ocHAKQEAgLTAsMCArMSwyODggQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0FSSVRITUVUSUNfREVDX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0FSSVRITUVUSUNfREVDX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0RFQyAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9ERUMoeCkgQk9PU1RfUFBfREVDX0koeCkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfREVDKHgpIEJPT1NUX1BQX0RFQ19PTygoeCkpCisjICAgIGRlZmluZSBCT09TVF9QUF9ERUNfT08ocGFyKSBCT09TVF9QUF9ERUNfSSAjIyBwYXIKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ19JKHgpIEJPT1NUX1BQX0RFQ18gIyMgeAorIworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzAgMAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEgMAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIgMQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzMgMgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzQgMworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzUgNAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzYgNQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzcgNgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzggNworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzkgOAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEwIDkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMSAxMAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEyIDExCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTMgMTIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNCAxMworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE1IDE0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTYgMTUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNyAxNgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE4IDE3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTkgMTgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMCAxOQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIxIDIwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjIgMjEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMyAyMgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI0IDIzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjUgMjQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNiAyNQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI3IDI2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjggMjcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yOSAyOAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzMwIDI5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMzEgMzAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18zMiAzMQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzMzIDMyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMzQgMzMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18zNSAzNAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzM2IDM1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMzcgMzYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18zOCAzNworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzM5IDM4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNDAgMzkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ180MSA0MAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzQyIDQxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfNDMgNDIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ180NCA0MworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzQ1IDQ0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNDYgNDUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ180NyA0NgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzQ4IDQ3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNDkgNDgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ181MCA0OQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzUxIDUwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfNTIgNTEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ181MyA1MgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzU0IDUzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfNTUgNTQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ181NiA1NQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzU3IDU2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNTggNTcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ181OSA1OAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzYwIDU5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNjEgNjAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ182MiA2MQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzYzIDYyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfNjQgNjMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ182NSA2NAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzY2IDY1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNjcgNjYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ182OCA2NworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzY5IDY4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNzAgNjkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ183MSA3MAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzcyIDcxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfNzMgNzIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ183NCA3MworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzc1IDc0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNzYgNzUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ183NyA3NgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzc4IDc3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfNzkgNzgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ184MCA3OQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzgxIDgwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfODIgODEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ184MyA4MgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzg0IDgzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfODUgODQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ184NiA4NQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzg3IDg2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfODggODcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ184OSA4OAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzkwIDg5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfOTEgOTAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ185MiA5MQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzkzIDkyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfOTQgOTMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ185NSA5NAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzk2IDk1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfOTcgOTYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ185OCA5NworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzk5IDk4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTAwIDk5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTAxIDEwMAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEwMiAxMDEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMDMgMTAyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTA0IDEwMworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEwNSAxMDQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMDYgMTA1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTA3IDEwNgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEwOCAxMDcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMDkgMTA4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTEwIDEwOQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzExMSAxMTAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMTIgMTExCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTEzIDExMgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzExNCAxMTMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMTUgMTE0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTE2IDExNQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzExNyAxMTYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMTggMTE3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTE5IDExOAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEyMCAxMTkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMjEgMTIwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTIyIDEyMQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEyMyAxMjIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMjQgMTIzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTI1IDEyNAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEyNiAxMjUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMjcgMTI2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTI4IDEyNworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEyOSAxMjgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMzAgMTI5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTMxIDEzMAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEzMiAxMzEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMzMgMTMyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTM0IDEzMworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEzNSAxMzQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMzYgMTM1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTM3IDEzNgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzEzOCAxMzcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xMzkgMTM4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTQwIDEzOQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE0MSAxNDAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNDIgMTQxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTQzIDE0MgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE0NCAxNDMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNDUgMTQ0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTQ2IDE0NQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE0NyAxNDYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNDggMTQ3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTQ5IDE0OAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE1MCAxNDkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNTEgMTUwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTUyIDE1MQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE1MyAxNTIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNTQgMTUzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTU1IDE1NAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE1NiAxNTUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNTcgMTU2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTU4IDE1NworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE1OSAxNTgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNjAgMTU5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTYxIDE2MAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE2MiAxNjEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNjMgMTYyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTY0IDE2MworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE2NSAxNjQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNjYgMTY1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTY3IDE2NgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE2OCAxNjcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNjkgMTY4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTcwIDE2OQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE3MSAxNzAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNzIgMTcxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTczIDE3MgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE3NCAxNzMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNzUgMTc0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTc2IDE3NQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE3NyAxNzYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xNzggMTc3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTc5IDE3OAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE4MCAxNzkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xODEgMTgwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTgyIDE4MQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE4MyAxODIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xODQgMTgzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTg1IDE4NAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE4NiAxODUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xODcgMTg2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTg4IDE4NworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE4OSAxODgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xOTAgMTg5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTkxIDE5MAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE5MiAxOTEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xOTMgMTkyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTk0IDE5MworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE5NSAxOTQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xOTYgMTk1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMTk3IDE5NgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzE5OCAxOTcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18xOTkgMTk4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjAwIDE5OQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIwMSAyMDAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMDIgMjAxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjAzIDIwMgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIwNCAyMDMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMDUgMjA0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjA2IDIwNQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIwNyAyMDYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMDggMjA3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjA5IDIwOAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIxMCAyMDkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMTEgMjEwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjEyIDIxMQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIxMyAyMTIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMTQgMjEzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjE1IDIxNAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIxNiAyMTUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMTcgMjE2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjE4IDIxNworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIxOSAyMTgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMjAgMjE5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjIxIDIyMAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIyMiAyMjEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMjMgMjIyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjI0IDIyMworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIyNSAyMjQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMjYgMjI1CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjI3IDIyNgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIyOCAyMjcKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMjkgMjI4CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjMwIDIyOQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIzMSAyMzAKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMzIgMjMxCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjMzIDIzMgorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIzNCAyMzMKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMzUgMjM0CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjM2IDIzNQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzIzNyAyMzYKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yMzggMjM3CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjM5IDIzOAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI0MCAyMzkKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNDEgMjQwCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjQyIDI0MQorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI0MyAyNDIKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNDQgMjQzCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjQ1IDI0NAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI0NiAyNDUKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNDcgMjQ2CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjQ4IDI0NworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI0OSAyNDgKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNTAgMjQ5CisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjUxIDI1MAorIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI1MiAyNTEKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNTMgMjUyCisjIGRlZmluZSBCT09TVF9QUF9ERUNfMjU0IDI1MworIyBkZWZpbmUgQk9PU1RfUFBfREVDXzI1NSAyNTQKKyMgZGVmaW5lIEJPT1NUX1BQX0RFQ18yNTYgMjU1CisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9pbmMuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvaW5jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTk3YWI4Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvaW5jLmhwcApAQCAtMCwwICsxLDI4OCBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQVJJVEhNRVRJQ19JTkNfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQVJJVEhNRVRJQ19JTkNfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfSU5DICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NV0NDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lOQyh4KSBCT09TVF9QUF9JTkNfSSh4KQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JTkMoeCkgQk9PU1RfUFBfSU5DX09PKCh4KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lOQ19PTyhwYXIpIEJPT1NUX1BQX0lOQ19JICMjIHBhcgorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfSU5DX0koeCkgQk9PU1RfUFBfSU5DXyAjIyB4CisjCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMCAxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMSAyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMiAzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMyA0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNCA1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNSA2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNiA3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNyA4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfOCA5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfOSAxMAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEwIDExCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTEgMTIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMiAxMworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEzIDE0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTQgMTUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNSAxNgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE2IDE3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTcgMTgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xOCAxOQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE5IDIwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjAgMjEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMSAyMgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIyIDIzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjMgMjQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNCAyNQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI1IDI2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjYgMjcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNyAyOAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI4IDI5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjkgMzAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18zMCAzMQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzMxIDMyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMzIgMzMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18zMyAzNAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzM0IDM1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMzUgMzYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18zNiAzNworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzM3IDM4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMzggMzkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18zOSA0MAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzQwIDQxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfNDEgNDIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ180MiA0MworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzQzIDQ0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNDQgNDUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ180NSA0NgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzQ2IDQ3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNDcgNDgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ180OCA0OQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzQ5IDUwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfNTAgNTEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ181MSA1MgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzUyIDUzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfNTMgNTQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ181NCA1NQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzU1IDU2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNTYgNTcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ181NyA1OAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzU4IDU5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNTkgNjAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ182MCA2MQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzYxIDYyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfNjIgNjMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ182MyA2NAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzY0IDY1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNjUgNjYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ182NiA2NworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzY3IDY4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNjggNjkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ182OSA3MAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzcwIDcxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfNzEgNzIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ183MiA3MworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzczIDc0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNzQgNzUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ183NSA3NgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzc2IDc3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfNzcgNzgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ183OCA3OQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzc5IDgwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfODAgODEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ184MSA4MgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzgyIDgzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfODMgODQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ184NCA4NQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzg1IDg2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfODYgODcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ184NyA4OAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzg4IDg5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfODkgOTAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ185MCA5MQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzkxIDkyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfOTIgOTMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ185MyA5NAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzk0IDk1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfOTUgOTYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ185NiA5NworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzk3IDk4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfOTggOTkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ185OSAxMDAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMDAgMTAxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTAxIDEwMgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEwMiAxMDMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMDMgMTA0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTA0IDEwNQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEwNSAxMDYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMDYgMTA3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTA3IDEwOAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEwOCAxMDkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMDkgMTEwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTEwIDExMQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzExMSAxMTIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMTIgMTEzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTEzIDExNAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzExNCAxMTUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMTUgMTE2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTE2IDExNworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzExNyAxMTgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMTggMTE5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTE5IDEyMAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEyMCAxMjEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMjEgMTIyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTIyIDEyMworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEyMyAxMjQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMjQgMTI1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTI1IDEyNgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEyNiAxMjcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMjcgMTI4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTI4IDEyOQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEyOSAxMzAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMzAgMTMxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTMxIDEzMgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEzMiAxMzMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMzMgMTM0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTM0IDEzNQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEzNSAxMzYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMzYgMTM3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTM3IDEzOAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzEzOCAxMzkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xMzkgMTQwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTQwIDE0MQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE0MSAxNDIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNDIgMTQzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTQzIDE0NAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE0NCAxNDUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNDUgMTQ2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTQ2IDE0NworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE0NyAxNDgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNDggMTQ5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTQ5IDE1MAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE1MCAxNTEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNTEgMTUyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTUyIDE1MworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE1MyAxNTQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNTQgMTU1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTU1IDE1NgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE1NiAxNTcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNTcgMTU4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTU4IDE1OQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE1OSAxNjAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNjAgMTYxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTYxIDE2MgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE2MiAxNjMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNjMgMTY0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTY0IDE2NQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE2NSAxNjYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNjYgMTY3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTY3IDE2OAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE2OCAxNjkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNjkgMTcwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTcwIDE3MQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE3MSAxNzIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNzIgMTczCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTczIDE3NAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE3NCAxNzUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNzUgMTc2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTc2IDE3NworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE3NyAxNzgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xNzggMTc5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTc5IDE4MAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE4MCAxODEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xODEgMTgyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTgyIDE4MworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE4MyAxODQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xODQgMTg1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTg1IDE4NgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE4NiAxODcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xODcgMTg4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTg4IDE4OQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE4OSAxOTAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xOTAgMTkxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTkxIDE5MgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE5MiAxOTMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xOTMgMTk0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTk0IDE5NQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE5NSAxOTYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xOTYgMTk3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMTk3IDE5OAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzE5OCAxOTkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18xOTkgMjAwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjAwIDIwMQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIwMSAyMDIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMDIgMjAzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjAzIDIwNAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIwNCAyMDUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMDUgMjA2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjA2IDIwNworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIwNyAyMDgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMDggMjA5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjA5IDIxMAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIxMCAyMTEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMTEgMjEyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjEyIDIxMworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIxMyAyMTQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMTQgMjE1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjE1IDIxNgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIxNiAyMTcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMTcgMjE4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjE4IDIxOQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIxOSAyMjAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMjAgMjIxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjIxIDIyMgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIyMiAyMjMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMjMgMjI0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjI0IDIyNQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIyNSAyMjYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMjYgMjI3CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjI3IDIyOAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIyOCAyMjkKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMjkgMjMwCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjMwIDIzMQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIzMSAyMzIKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMzIgMjMzCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjMzIDIzNAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIzNCAyMzUKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMzUgMjM2CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjM2IDIzNworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzIzNyAyMzgKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yMzggMjM5CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjM5IDI0MAorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI0MCAyNDEKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNDEgMjQyCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjQyIDI0MworIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI0MyAyNDQKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNDQgMjQ1CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjQ1IDI0NgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI0NiAyNDcKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNDcgMjQ4CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjQ4IDI0OQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI0OSAyNTAKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNTAgMjUxCisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjUxIDI1MgorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI1MiAyNTMKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNTMgMjU0CisjIGRlZmluZSBCT09TVF9QUF9JTkNfMjU0IDI1NQorIyBkZWZpbmUgQk9PU1RfUFBfSU5DXzI1NSAyNTYKKyMgZGVmaW5lIEJPT1NUX1BQX0lOQ18yNTYgMjU2CisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9zdWIuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvc3ViLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjYyY2RhCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvc3ViLmhwcApAQCAtMCwwICsxLDUwIEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9BUklUSE1FVElDX1NVQl9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9BUklUSE1FVElDX1NVQl9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvZGVjLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC93aGlsZS5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lbGVtLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfU1VCICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU1VCKHgsIHkpIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfV0hJTEUoQk9PU1RfUFBfU1VCX1AsIEJPT1NUX1BQX1NVQl9PLCAoeCwgeSkpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9TVUIoeCwgeSkgQk9PU1RfUFBfU1VCX0koeCwgeSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NVQl9JKHgsIHkpIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfV0hJTEUoQk9PU1RfUFBfU1VCX1AsIEJPT1NUX1BQX1NVQl9PLCAoeCwgeSkpKQorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfU1VCX1AoZCwgeHkpIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMSwgeHkpCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NV0NDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NVQl9PKGQsIHh5KSBCT09TVF9QUF9TVUJfT19JIHh5CisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NVQl9PKGQsIHh5KSBCT09TVF9QUF9TVUJfT19JKEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgeHkpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIHh5KSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1NVQl9PX0koeCwgeSkgKEJPT1NUX1BQX0RFQyh4KSwgQk9PU1RfUFBfREVDKHkpKQorIworIyAvKiBCT09TVF9QUF9TVUJfRCAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NVQl9EKGQsIHgsIHkpIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfV0hJTEVfICMjIGQoQk9PU1RfUFBfU1VCX1AsIEJPT1NUX1BQX1NVQl9PLCAoeCwgeSkpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9TVUJfRChkLCB4LCB5KSBCT09TVF9QUF9TVUJfRF9JKGQsIHgsIHkpCisjICAgIGRlZmluZSBCT09TVF9QUF9TVUJfRF9JKGQsIHgsIHkpIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfV0hJTEVfICMjIGQoQk9PU1RfUFBfU1VCX1AsIEJPT1NUX1BQX1NVQl9PLCAoeCwgeSkpKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2FycmF5L2RhdGEuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2FycmF5L2RhdGEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwYzkyNmEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvYXJyYXkvZGF0YS5ocHAKQEAgLTAsMCArMSwyOCBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9BUlJBWV9EQVRBX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0FSUkFZX0RBVEFfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwPgorIworIyAvKiBCT09TVF9QUF9BUlJBWV9EQVRBICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQVJSQVlfREFUQShhcnJheSkgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAxLCBhcnJheSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQVJSQVlfREFUQShhcnJheSkgQk9PU1RfUFBfQVJSQVlfREFUQV9JKGFycmF5KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQVJSQVlfREFUQV9JKGFycmF5KSBCT09TVF9QUF9BUlJBWV9EQVRBX0lJIGFycmF5CisjICAgIGRlZmluZSBCT09TVF9QUF9BUlJBWV9EQVRBX0lJKHNpemUsIGRhdGEpIGRhdGEKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9hcnJheS9lbGVtLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9hcnJheS9lbGVtLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDViYTI0Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2FycmF5L2VsZW0uaHBwCkBAIC0wLDAgKzEsMjkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQVJSQVlfRUxFTV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9BUlJBWV9FTEVNX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvYXJyYXkvZGF0YS5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9hcnJheS9zaXplLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0FSUkFZX0VMRU0gKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9BUlJBWV9FTEVNKGksIGFycmF5KSBCT09TVF9QUF9UVVBMRV9FTEVNKEJPT1NUX1BQX0FSUkFZX1NJWkUoYXJyYXkpLCBpLCBCT09TVF9QUF9BUlJBWV9EQVRBKGFycmF5KSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQVJSQVlfRUxFTShpLCBhcnJheSkgQk9PU1RfUFBfQVJSQVlfRUxFTV9JKGksIGFycmF5KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQVJSQVlfRUxFTV9JKGksIGFycmF5KSBCT09TVF9QUF9UVVBMRV9FTEVNKEJPT1NUX1BQX0FSUkFZX1NJWkUoYXJyYXkpLCBpLCBCT09TVF9QUF9BUlJBWV9EQVRBKGFycmF5KSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9hcnJheS9zaXplLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9hcnJheS9zaXplLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjM3MGVlCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2FycmF5L3NpemUuaHBwCkBAIC0wLDAgKzEsMjggQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQVJSQVlfU0laRV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9BUlJBWV9TSVpFX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lbGVtLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfQVJSQVlfU0laRSAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FSUkFZX1NJWkUoYXJyYXkpIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgYXJyYXkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FSUkFZX1NJWkUoYXJyYXkpIEJPT1NUX1BQX0FSUkFZX1NJWkVfSShhcnJheSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FSUkFZX1NJWkVfSShhcnJheSkgQk9PU1RfUFBfQVJSQVlfU0laRV9JSSBhcnJheQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQVJSQVlfU0laRV9JSShzaXplLCBkYXRhKSBzaXplCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlNTI4NTAKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcApAQCAtMCwwICsxLDM1IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9DQVRfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQ0FUX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0NBVCAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9DQVQoYSwgYikgQk9PU1RfUFBfQ0FUX0koYSwgYikKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0FUKGEsIGIpIEJPT1NUX1BQX0NBVF9PTygoYSwgYikpCisjICAgIGRlZmluZSBCT09TVF9QUF9DQVRfT08ocGFyKSBCT09TVF9QUF9DQVRfSSAjIyBwYXIKKyMgZW5kaWYKKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01TVkMoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0FUX0koYSwgYikgYSAjIyBiCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NBVF9JKGEsIGIpIEJPT1NUX1BQX0NBVF9JSSh+LCBhICMjIGIpCisjICAgIGRlZmluZSBCT09TVF9QUF9DQVRfSUkocCwgcmVzKSByZXMKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljZWIwNzkKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQ09NTUFfSUZfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQ09NTUFfSUZfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9wdW5jdHVhdGlvbi9jb21tYV9pZi5ocHA+CisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAyZWI1OAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcApAQCAtMCwwICsxLDEwNSBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi0yMDExLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBFZHdhcmQgRGllbmVyIDIwMTEuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlICAgICAgKgorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTkZJR19DT05GSUdfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQ09ORklHX0NPTkZJR19IUFAKKyMKKyMgLyogQk9PU1RfUFBfQ09ORklHX0ZMQUdTICovCisjCisjIGRlZmluZSBCT09TVF9QUF9DT05GSUdfU1RSSUNUKCkgMHgwMDAxCisjIGRlZmluZSBCT09TVF9QUF9DT05GSUdfSURFQUwoKSAweDAwMDIKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkgMHgwMDA0CisjIGRlZmluZSBCT09TVF9QUF9DT05GSUdfTVdDQygpIDB4MDAwOAorIyBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0JDQygpIDB4MDAxMAorIyBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0VERygpIDB4MDAyMAorIyBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0RNQygpIDB4MDA0MAorIworIyBpZm5kZWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTCisjICAgIGlmIGRlZmluZWQoX19HQ0NYTUxfXykKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAoQk9PU1RfUFBfQ09ORklHX1NUUklDVCgpKQorIyAgICBlbGlmIGRlZmluZWQoX19XQVZFX18pCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgKEJPT1NUX1BQX0NPTkZJR19TVFJJQ1QoKSkKKyMgICAgZWxpZiBkZWZpbmVkKF9fTVdFUktTX18pICYmIF9fTVdFUktTX18gPj0gMHgzMjAwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgKEJPT1NUX1BQX0NPTkZJR19TVFJJQ1QoKSkKKyMgICAgZWxpZiBkZWZpbmVkKF9fRURHX18pIHx8IGRlZmluZWQoX19FREdfVkVSU0lPTl9fKQorIyAgICAgICAgaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX19FREdfVkVSU0lPTl9fID49IDMwOAorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAoQk9PU1RfUFBfQ09ORklHX01TVkMoKSkKKyMgICAgICAgIGVsc2UKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgKEJPT1NUX1BQX0NPTkZJR19FREcoKSB8IEJPT1NUX1BQX0NPTkZJR19TVFJJQ1QoKSkKKyMgICAgICAgIGVuZGlmCisjICAgIGVsaWYgZGVmaW5lZChfX01XRVJLU19fKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpIChCT09TVF9QUF9DT05GSUdfTVdDQygpKQorIyAgICBlbGlmIGRlZmluZWQoX19ETUNfXykKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAoQk9PU1RfUFBfQ09ORklHX0RNQygpKQorIyAgICBlbGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiBfX0JPUkxBTkRDX18gPj0gMHg1ODEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAoQk9PU1RfUFBfQ09ORklHX1NUUklDVCgpKQorIyAgICBlbGlmIGRlZmluZWQoX19CT1JMQU5EQ19fKSB8fCBkZWZpbmVkKF9fSUJNQ19fKSB8fCBkZWZpbmVkKF9fSUJNQ1BQX18pIHx8IGRlZmluZWQoX19TVU5QUk9fQ0MpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgKEJPT1NUX1BQX0NPTkZJR19CQ0MoKSkKKyMgICAgZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpIChCT09TVF9QUF9DT05GSUdfTVNWQygpKQorIyAgICBlbHNlCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgKEJPT1NUX1BQX0NPTkZJR19TVFJJQ1QoKSkKKyMgICAgZW5kaWYKKyMgZW5kaWYKKyMKKyMgLyogQk9PU1RfUFBfQ09ORklHX0VYVEVOREVEX0xJTkVfSU5GTyAqLworIworIyBpZm5kZWYgQk9PU1RfUFBfQ09ORklHX0VYVEVOREVEX0xJTkVfSU5GTworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0VYVEVOREVEX0xJTkVfSU5GTyAwCisjIGVuZGlmCisjCisjIC8qIEJPT1NUX1BQX0NPTkZJR19FUlJPUlMgKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BQX0NPTkZJR19FUlJPUlMKKyMgICAgaWZkZWYgTkRFQlVHCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfQ09ORklHX0VSUk9SUyAwCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9DT05GSUdfRVJST1JTIDEKKyMgICAgZW5kaWYKKyMgZW5kaWYKKyMKKyMgLyogQk9PU1RfUFBfVkFSSUFESUNTICovCisjCisjIGlmICFkZWZpbmVkIEJPT1NUX1BQX1ZBUklBRElDUworIyAgICAvKiB2YXJpYWRpYyBzdXBwb3J0IGV4cGxpY2l0bHkgZGlzYWJsZWQgZm9yIGFsbCB1bnRlc3RlZCBjb21waWxlcnMgKi8KKyMgICAgaWYgZGVmaW5lZCBfX0dDQ1hNTF9fIHx8IGRlZmluZWQgX19DVURBQ0NfXyB8fCBkZWZpbmVkIF9fUEFUSFNDQUxFX18gfHwgZGVmaW5lZCBfX2NsYW5nX18gfHwgZGVmaW5lZCBfX0RNQ19fIHx8IGRlZmluZWQgX19DT0RFR0VBUkNfXyB8fCBkZWZpbmVkIF9fQk9STEFORENfXyB8fCBkZWZpbmVkIF9fTVdFUktTX18gfHwgZGVmaW5lZCBfX1NVTlBST19DQyB8fCBkZWZpbmVkIF9fSFBfYUNDICYmICFkZWZpbmVkIF9fRURHX18gfHwgZGVmaW5lZCBfX01SQ19fIHx8IGRlZmluZWQgX19TQ19fIHx8IGRlZmluZWQgX19JQk1DUFBfXyB8fCBkZWZpbmVkIF9fUEdJCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNTIDAKKyMgICAgLyogVkMrKyAoQy9DKyspICovCisjICAgIGVsaWYgZGVmaW5lZCBfTVNDX1ZFUiAmJiBfTVNDX1ZFUiA+PSAxNDAwICYmICFkZWZpbmVkIF9fRURHX18KKyMgICAgICAgIGlmIF9NU0NfVkVSID49IDE0MDAKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNTIDEKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNTX01TVkMgMQorIyAgICAgICAgZWxzZQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ1MgMAorIyAgICAgICAgZW5kaWYKKyMgICAgLyogV2F2ZSAoQy9DKyspLCBHQ0MgKEMrKykgKi8KKyMgICAgZWxpZiBkZWZpbmVkIF9fV0FWRV9fICYmIF9fV0FWRV9IQVNfVkFSSUFESUNTX18gfHwgZGVmaW5lZCBfX0dOVUNfXyAmJiBfX0dYWF9FWFBFUklNRU5UQUxfQ1hYMFhfXworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDUyAxCisjICAgIC8qIEVERy1iYXNlZCAoQy9DKyspLCBHQ0MgKEMpLCBhbmQgdW5rbm93biAoQy9DKyspICovCisjICAgIGVsaWYgIWRlZmluZWQgX19jcGx1c3BsdXMgJiYgX19TVERDX1ZFUlNJT05fXyA+PSAxOTk5MDFMIHx8IF9fY3BsdXNwbHVzID49IDIwMTEwM0wKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ1MgMQorIyAgICBlbHNlCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNTIDAKKyMgICAgZW5kaWYKKyMgZWxpZiAhQk9PU1RfUFBfVkFSSUFESUNTICsgMSA8IDIKKyMgICAgdW5kZWYgQk9PU1RfUFBfVkFSSUFESUNTCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ1MgMQorIyAgICBpZiBkZWZpbmVkIF9NU0NfVkVSICYmIF9NU0NfVkVSID49IDE0MDAgJiYgIShkZWZpbmVkIF9fRURHX18gfHwgZGVmaW5lZCBfX0dDQ1hNTF9fIHx8IGRlZmluZWQgX19DVURBQ0NfXyB8fCBkZWZpbmVkIF9fUEFUSFNDQUxFX18gfHwgZGVmaW5lZCBfX2NsYW5nX18gfHwgZGVmaW5lZCBfX0RNQ19fIHx8IGRlZmluZWQgX19DT0RFR0VBUkNfXyB8fCBkZWZpbmVkIF9fQk9STEFORENfXyB8fCBkZWZpbmVkIF9fTVdFUktTX18gfHwgZGVmaW5lZCBfX1NVTlBST19DQyB8fCBkZWZpbmVkIF9fSFBfYUNDIHx8IGRlZmluZWQgX19NUkNfXyB8fCBkZWZpbmVkIF9fU0NfXyB8fCBkZWZpbmVkIF9fSUJNQ1BQX18gfHwgZGVmaW5lZCBfX1BHSSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ1NfTVNWQyAxCisjICAgIGVuZGlmCisjIGVsc2UKKyMgICAgdW5kZWYgQk9PU1RfUFBfVkFSSUFESUNTCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ1MgMAorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL2RtYy93aGlsZS5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvZG1jL3doaWxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWMzMTM1Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL2RtYy93aGlsZS5ocHAKQEAgLTAsMCArMSw1MzYgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTlRST0xfREVUQUlMX1dISUxFX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTlRST0xfREVUQUlMX1dISUxFX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9ib29sLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VhdC5ocHA+CisjCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzFfQyhCT09TVF9QUF9CT09MKHAjIygyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzJfQyhCT09TVF9QUF9CT09MKHAjIygzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzNfQyhCT09TVF9QUF9CT09MKHAjIyg0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzRfQyhCT09TVF9QUF9CT09MKHAjIyg1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzVfQyhCT09TVF9QUF9CT09MKHAjIyg2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzZfQyhCT09TVF9QUF9CT09MKHAjIyg3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzdfQyhCT09TVF9QUF9CT09MKHAjIyg4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzhfQyhCT09TVF9QUF9CT09MKHAjIyg5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzlfQyhCT09TVF9QUF9CT09MKHAjIygxMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTBfQyhCT09TVF9QUF9CT09MKHAjIygxMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTFfQyhCT09TVF9QUF9CT09MKHAjIygxMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTJfQyhCT09TVF9QUF9CT09MKHAjIygxMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTNfQyhCT09TVF9QUF9CT09MKHAjIygxNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTRfQyhCT09TVF9QUF9CT09MKHAjIygxNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTVfQyhCT09TVF9QUF9CT09MKHAjIygxNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTZfQyhCT09TVF9QUF9CT09MKHAjIygxNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTdfQyhCT09TVF9QUF9CT09MKHAjIygxOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMThfQyhCT09TVF9QUF9CT09MKHAjIygxOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTlfQyhCT09TVF9QUF9CT09MKHAjIygyMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjBfQyhCT09TVF9QUF9CT09MKHAjIygyMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjFfQyhCT09TVF9QUF9CT09MKHAjIygyMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjJfQyhCT09TVF9QUF9CT09MKHAjIygyMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjNfQyhCT09TVF9QUF9CT09MKHAjIygyNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjRfQyhCT09TVF9QUF9CT09MKHAjIygyNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjVfQyhCT09TVF9QUF9CT09MKHAjIygyNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjZfQyhCT09TVF9QUF9CT09MKHAjIygyNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjdfQyhCT09TVF9QUF9CT09MKHAjIygyOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjhfQyhCT09TVF9QUF9CT09MKHAjIygyOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjlfQyhCT09TVF9QUF9CT09MKHAjIygzMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzBfQyhCT09TVF9QUF9CT09MKHAjIygzMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzFfQyhCT09TVF9QUF9CT09MKHAjIygzMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzJfQyhCT09TVF9QUF9CT09MKHAjIygzMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzNfQyhCT09TVF9QUF9CT09MKHAjIygzNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzRfQyhCT09TVF9QUF9CT09MKHAjIygzNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzVfQyhCT09TVF9QUF9CT09MKHAjIygzNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzZfQyhCT09TVF9QUF9CT09MKHAjIygzNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzdfQyhCT09TVF9QUF9CT09MKHAjIygzOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzhfQyhCT09TVF9QUF9CT09MKHAjIygzOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzlfQyhCT09TVF9QUF9CT09MKHAjIyg0MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDBfQyhCT09TVF9QUF9CT09MKHAjIyg0MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDFfQyhCT09TVF9QUF9CT09MKHAjIyg0MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDJfQyhCT09TVF9QUF9CT09MKHAjIyg0MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDNfQyhCT09TVF9QUF9CT09MKHAjIyg0NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDRfQyhCT09TVF9QUF9CT09MKHAjIyg0NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDVfQyhCT09TVF9QUF9CT09MKHAjIyg0NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDZfQyhCT09TVF9QUF9CT09MKHAjIyg0NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDdfQyhCT09TVF9QUF9CT09MKHAjIyg0OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDhfQyhCT09TVF9QUF9CT09MKHAjIyg0OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDlfQyhCT09TVF9QUF9CT09MKHAjIyg1MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTBfQyhCT09TVF9QUF9CT09MKHAjIyg1MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTFfQyhCT09TVF9QUF9CT09MKHAjIyg1MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTJfQyhCT09TVF9QUF9CT09MKHAjIyg1MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTNfQyhCT09TVF9QUF9CT09MKHAjIyg1NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTRfQyhCT09TVF9QUF9CT09MKHAjIyg1NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTVfQyhCT09TVF9QUF9CT09MKHAjIyg1NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTZfQyhCT09TVF9QUF9CT09MKHAjIyg1NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTdfQyhCT09TVF9QUF9CT09MKHAjIyg1OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNThfQyhCT09TVF9QUF9CT09MKHAjIyg1OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTlfQyhCT09TVF9QUF9CT09MKHAjIyg2MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjBfQyhCT09TVF9QUF9CT09MKHAjIyg2MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjFfQyhCT09TVF9QUF9CT09MKHAjIyg2MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjJfQyhCT09TVF9QUF9CT09MKHAjIyg2MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjNfQyhCT09TVF9QUF9CT09MKHAjIyg2NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjRfQyhCT09TVF9QUF9CT09MKHAjIyg2NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjVfQyhCT09TVF9QUF9CT09MKHAjIyg2NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjZfQyhCT09TVF9QUF9CT09MKHAjIyg2NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjdfQyhCT09TVF9QUF9CT09MKHAjIyg2OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjhfQyhCT09TVF9QUF9CT09MKHAjIyg2OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjlfQyhCT09TVF9QUF9CT09MKHAjIyg3MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzBfQyhCT09TVF9QUF9CT09MKHAjIyg3MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzFfQyhCT09TVF9QUF9CT09MKHAjIyg3MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzJfQyhCT09TVF9QUF9CT09MKHAjIyg3MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzNfQyhCT09TVF9QUF9CT09MKHAjIyg3NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzRfQyhCT09TVF9QUF9CT09MKHAjIyg3NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzVfQyhCT09TVF9QUF9CT09MKHAjIyg3NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzZfQyhCT09TVF9QUF9CT09MKHAjIyg3NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzdfQyhCT09TVF9QUF9CT09MKHAjIyg3OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzhfQyhCT09TVF9QUF9CT09MKHAjIyg3OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzlfQyhCT09TVF9QUF9CT09MKHAjIyg4MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODBfQyhCT09TVF9QUF9CT09MKHAjIyg4MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODFfQyhCT09TVF9QUF9CT09MKHAjIyg4MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODJfQyhCT09TVF9QUF9CT09MKHAjIyg4MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODNfQyhCT09TVF9QUF9CT09MKHAjIyg4NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODRfQyhCT09TVF9QUF9CT09MKHAjIyg4NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODVfQyhCT09TVF9QUF9CT09MKHAjIyg4NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODZfQyhCT09TVF9QUF9CT09MKHAjIyg4NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODdfQyhCT09TVF9QUF9CT09MKHAjIyg4OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODhfQyhCT09TVF9QUF9CT09MKHAjIyg4OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODlfQyhCT09TVF9QUF9CT09MKHAjIyg5MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTBfQyhCT09TVF9QUF9CT09MKHAjIyg5MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTFfQyhCT09TVF9QUF9CT09MKHAjIyg5MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTJfQyhCT09TVF9QUF9CT09MKHAjIyg5MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTNfQyhCT09TVF9QUF9CT09MKHAjIyg5NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTRfQyhCT09TVF9QUF9CT09MKHAjIyg5NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTVfQyhCT09TVF9QUF9CT09MKHAjIyg5NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTZfQyhCT09TVF9QUF9CT09MKHAjIyg5NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTdfQyhCT09TVF9QUF9CT09MKHAjIyg5OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOThfQyhCT09TVF9QUF9CT09MKHAjIyg5OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTlfQyhCT09TVF9QUF9CT09MKHAjIygxMDAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDBfQyhCT09TVF9QUF9CT09MKHAjIygxMDEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDFfQyhCT09TVF9QUF9CT09MKHAjIygxMDIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDJfQyhCT09TVF9QUF9CT09MKHAjIygxMDMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDNfQyhCT09TVF9QUF9CT09MKHAjIygxMDQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDRfQyhCT09TVF9QUF9CT09MKHAjIygxMDUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDVfQyhCT09TVF9QUF9CT09MKHAjIygxMDYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDZfQyhCT09TVF9QUF9CT09MKHAjIygxMDcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDdfQyhCT09TVF9QUF9CT09MKHAjIygxMDgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDhfQyhCT09TVF9QUF9CT09MKHAjIygxMDksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDlfQyhCT09TVF9QUF9CT09MKHAjIygxMTAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTBfQyhCT09TVF9QUF9CT09MKHAjIygxMTEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTFfQyhCT09TVF9QUF9CT09MKHAjIygxMTIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTJfQyhCT09TVF9QUF9CT09MKHAjIygxMTMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTNfQyhCT09TVF9QUF9CT09MKHAjIygxMTQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTRfQyhCT09TVF9QUF9CT09MKHAjIygxMTUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTVfQyhCT09TVF9QUF9CT09MKHAjIygxMTYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTZfQyhCT09TVF9QUF9CT09MKHAjIygxMTcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTdfQyhCT09TVF9QUF9CT09MKHAjIygxMTgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMThfQyhCT09TVF9QUF9CT09MKHAjIygxMTksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTlfQyhCT09TVF9QUF9CT09MKHAjIygxMjAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjBfQyhCT09TVF9QUF9CT09MKHAjIygxMjEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjFfQyhCT09TVF9QUF9CT09MKHAjIygxMjIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjJfQyhCT09TVF9QUF9CT09MKHAjIygxMjMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjNfQyhCT09TVF9QUF9CT09MKHAjIygxMjQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjRfQyhCT09TVF9QUF9CT09MKHAjIygxMjUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjVfQyhCT09TVF9QUF9CT09MKHAjIygxMjYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjZfQyhCT09TVF9QUF9CT09MKHAjIygxMjcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjdfQyhCT09TVF9QUF9CT09MKHAjIygxMjgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjhfQyhCT09TVF9QUF9CT09MKHAjIygxMjksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjlfQyhCT09TVF9QUF9CT09MKHAjIygxMzAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzBfQyhCT09TVF9QUF9CT09MKHAjIygxMzEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzFfQyhCT09TVF9QUF9CT09MKHAjIygxMzIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzJfQyhCT09TVF9QUF9CT09MKHAjIygxMzMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzNfQyhCT09TVF9QUF9CT09MKHAjIygxMzQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzRfQyhCT09TVF9QUF9CT09MKHAjIygxMzUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzVfQyhCT09TVF9QUF9CT09MKHAjIygxMzYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzZfQyhCT09TVF9QUF9CT09MKHAjIygxMzcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzdfQyhCT09TVF9QUF9CT09MKHAjIygxMzgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzhfQyhCT09TVF9QUF9CT09MKHAjIygxMzksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzlfQyhCT09TVF9QUF9CT09MKHAjIygxNDAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDBfQyhCT09TVF9QUF9CT09MKHAjIygxNDEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDFfQyhCT09TVF9QUF9CT09MKHAjIygxNDIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDJfQyhCT09TVF9QUF9CT09MKHAjIygxNDMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDNfQyhCT09TVF9QUF9CT09MKHAjIygxNDQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDRfQyhCT09TVF9QUF9CT09MKHAjIygxNDUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDVfQyhCT09TVF9QUF9CT09MKHAjIygxNDYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDZfQyhCT09TVF9QUF9CT09MKHAjIygxNDcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDdfQyhCT09TVF9QUF9CT09MKHAjIygxNDgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDhfQyhCT09TVF9QUF9CT09MKHAjIygxNDksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDlfQyhCT09TVF9QUF9CT09MKHAjIygxNTAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTBfQyhCT09TVF9QUF9CT09MKHAjIygxNTEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTFfQyhCT09TVF9QUF9CT09MKHAjIygxNTIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTJfQyhCT09TVF9QUF9CT09MKHAjIygxNTMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTNfQyhCT09TVF9QUF9CT09MKHAjIygxNTQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTRfQyhCT09TVF9QUF9CT09MKHAjIygxNTUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTVfQyhCT09TVF9QUF9CT09MKHAjIygxNTYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTZfQyhCT09TVF9QUF9CT09MKHAjIygxNTcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTdfQyhCT09TVF9QUF9CT09MKHAjIygxNTgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNThfQyhCT09TVF9QUF9CT09MKHAjIygxNTksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTlfQyhCT09TVF9QUF9CT09MKHAjIygxNjAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjBfQyhCT09TVF9QUF9CT09MKHAjIygxNjEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjFfQyhCT09TVF9QUF9CT09MKHAjIygxNjIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjJfQyhCT09TVF9QUF9CT09MKHAjIygxNjMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjNfQyhCT09TVF9QUF9CT09MKHAjIygxNjQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjRfQyhCT09TVF9QUF9CT09MKHAjIygxNjUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjVfQyhCT09TVF9QUF9CT09MKHAjIygxNjYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjZfQyhCT09TVF9QUF9CT09MKHAjIygxNjcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjdfQyhCT09TVF9QUF9CT09MKHAjIygxNjgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjhfQyhCT09TVF9QUF9CT09MKHAjIygxNjksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjlfQyhCT09TVF9QUF9CT09MKHAjIygxNzAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzBfQyhCT09TVF9QUF9CT09MKHAjIygxNzEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzFfQyhCT09TVF9QUF9CT09MKHAjIygxNzIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzJfQyhCT09TVF9QUF9CT09MKHAjIygxNzMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzNfQyhCT09TVF9QUF9CT09MKHAjIygxNzQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzRfQyhCT09TVF9QUF9CT09MKHAjIygxNzUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzVfQyhCT09TVF9QUF9CT09MKHAjIygxNzYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzZfQyhCT09TVF9QUF9CT09MKHAjIygxNzcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzdfQyhCT09TVF9QUF9CT09MKHAjIygxNzgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzhfQyhCT09TVF9QUF9CT09MKHAjIygxNzksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzlfQyhCT09TVF9QUF9CT09MKHAjIygxODAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODBfQyhCT09TVF9QUF9CT09MKHAjIygxODEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODFfQyhCT09TVF9QUF9CT09MKHAjIygxODIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODJfQyhCT09TVF9QUF9CT09MKHAjIygxODMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODNfQyhCT09TVF9QUF9CT09MKHAjIygxODQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODRfQyhCT09TVF9QUF9CT09MKHAjIygxODUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODVfQyhCT09TVF9QUF9CT09MKHAjIygxODYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODZfQyhCT09TVF9QUF9CT09MKHAjIygxODcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODdfQyhCT09TVF9QUF9CT09MKHAjIygxODgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODhfQyhCT09TVF9QUF9CT09MKHAjIygxODksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODlfQyhCT09TVF9QUF9CT09MKHAjIygxOTAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTBfQyhCT09TVF9QUF9CT09MKHAjIygxOTEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTFfQyhCT09TVF9QUF9CT09MKHAjIygxOTIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTJfQyhCT09TVF9QUF9CT09MKHAjIygxOTMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTNfQyhCT09TVF9QUF9CT09MKHAjIygxOTQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTRfQyhCT09TVF9QUF9CT09MKHAjIygxOTUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTVfQyhCT09TVF9QUF9CT09MKHAjIygxOTYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTZfQyhCT09TVF9QUF9CT09MKHAjIygxOTcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTdfQyhCT09TVF9QUF9CT09MKHAjIygxOTgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOThfQyhCT09TVF9QUF9CT09MKHAjIygxOTksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTlfQyhCT09TVF9QUF9CT09MKHAjIygyMDAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDBfQyhCT09TVF9QUF9CT09MKHAjIygyMDEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDFfQyhCT09TVF9QUF9CT09MKHAjIygyMDIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDJfQyhCT09TVF9QUF9CT09MKHAjIygyMDMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDNfQyhCT09TVF9QUF9CT09MKHAjIygyMDQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDRfQyhCT09TVF9QUF9CT09MKHAjIygyMDUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDVfQyhCT09TVF9QUF9CT09MKHAjIygyMDYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDZfQyhCT09TVF9QUF9CT09MKHAjIygyMDcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDdfQyhCT09TVF9QUF9CT09MKHAjIygyMDgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDhfQyhCT09TVF9QUF9CT09MKHAjIygyMDksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDlfQyhCT09TVF9QUF9CT09MKHAjIygyMTAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTBfQyhCT09TVF9QUF9CT09MKHAjIygyMTEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTFfQyhCT09TVF9QUF9CT09MKHAjIygyMTIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTJfQyhCT09TVF9QUF9CT09MKHAjIygyMTMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTNfQyhCT09TVF9QUF9CT09MKHAjIygyMTQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTRfQyhCT09TVF9QUF9CT09MKHAjIygyMTUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTVfQyhCT09TVF9QUF9CT09MKHAjIygyMTYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTZfQyhCT09TVF9QUF9CT09MKHAjIygyMTcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTdfQyhCT09TVF9QUF9CT09MKHAjIygyMTgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMThfQyhCT09TVF9QUF9CT09MKHAjIygyMTksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTlfQyhCT09TVF9QUF9CT09MKHAjIygyMjAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjBfQyhCT09TVF9QUF9CT09MKHAjIygyMjEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjFfQyhCT09TVF9QUF9CT09MKHAjIygyMjIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjJfQyhCT09TVF9QUF9CT09MKHAjIygyMjMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjNfQyhCT09TVF9QUF9CT09MKHAjIygyMjQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjRfQyhCT09TVF9QUF9CT09MKHAjIygyMjUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjVfQyhCT09TVF9QUF9CT09MKHAjIygyMjYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjZfQyhCT09TVF9QUF9CT09MKHAjIygyMjcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjdfQyhCT09TVF9QUF9CT09MKHAjIygyMjgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjhfQyhCT09TVF9QUF9CT09MKHAjIygyMjksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjlfQyhCT09TVF9QUF9CT09MKHAjIygyMzAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzBfQyhCT09TVF9QUF9CT09MKHAjIygyMzEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzFfQyhCT09TVF9QUF9CT09MKHAjIygyMzIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzJfQyhCT09TVF9QUF9CT09MKHAjIygyMzMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzNfQyhCT09TVF9QUF9CT09MKHAjIygyMzQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzRfQyhCT09TVF9QUF9CT09MKHAjIygyMzUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzVfQyhCT09TVF9QUF9CT09MKHAjIygyMzYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzZfQyhCT09TVF9QUF9CT09MKHAjIygyMzcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzdfQyhCT09TVF9QUF9CT09MKHAjIygyMzgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzhfQyhCT09TVF9QUF9CT09MKHAjIygyMzksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzlfQyhCT09TVF9QUF9CT09MKHAjIygyNDAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDBfQyhCT09TVF9QUF9CT09MKHAjIygyNDEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDFfQyhCT09TVF9QUF9CT09MKHAjIygyNDIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDJfQyhCT09TVF9QUF9CT09MKHAjIygyNDMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDNfQyhCT09TVF9QUF9CT09MKHAjIygyNDQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDRfQyhCT09TVF9QUF9CT09MKHAjIygyNDUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDVfQyhCT09TVF9QUF9CT09MKHAjIygyNDYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDZfQyhCT09TVF9QUF9CT09MKHAjIygyNDcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDdfQyhCT09TVF9QUF9CT09MKHAjIygyNDgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDhfQyhCT09TVF9QUF9CT09MKHAjIygyNDksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDlfQyhCT09TVF9QUF9CT09MKHAjIygyNTAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTBfQyhCT09TVF9QUF9CT09MKHAjIygyNTEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTFfQyhCT09TVF9QUF9CT09MKHAjIygyNTIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTJfQyhCT09TVF9QUF9CT09MKHAjIygyNTMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTNfQyhCT09TVF9QUF9CT09MKHAjIygyNTQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTRfQyhCT09TVF9QUF9CT09MKHAjIygyNTUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTVfQyhCT09TVF9QUF9CT09MKHAjIygyNTYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTZfQyhCT09TVF9QUF9CT09MKHAjIygyNTcsIHMpKSwgcCwgbywgcykKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDExLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzMwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgzMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8zMSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDMyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzMzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgzMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8zNCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDM1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzM2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgzNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8zNywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDM4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzM5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgzOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNDEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDQxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg0MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNDQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDQ0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQ1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg0NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNDcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDQ3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQ4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg0OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDUwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzUxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg1MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDUzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzU0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg1NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDU2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzU3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg1NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNThfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDU5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzYwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg2MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV82MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNjEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDYyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzYzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg2MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV82NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNjQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDY1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzY2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg2NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV82NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNjcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDY4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzY5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg2OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNzAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNzEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDcxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzcyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg3MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNzMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNzQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDc0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzc1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg3NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNzYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNzcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDc3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzc4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg3OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoNzksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDgwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzgxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg4MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoODIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDgzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzg0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg4NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoODUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDg2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzg3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg4NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoODgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDg5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzkwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg5MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV85MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoOTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDkyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzkzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg5MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV85NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoOTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDk1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzk2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg5NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV85NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoOTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDk4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzk5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSg5OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEwMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTAxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTAyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEwMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTA0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTA1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEwNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTA3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTA4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEwOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTEwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzExMSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTExLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDExMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTEzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzExNCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTE0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDExNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTE2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzExNywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTE3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDExOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMThfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTE5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTIwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMjEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEyMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTIyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTIzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMjQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEyNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTI1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTI2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMjcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEyNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTI4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTI5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEzMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTMxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTMyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEzMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTM0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTM1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEzNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTM3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxMzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTM4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDEzOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE0MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTQxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE0MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE0NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTQ0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE0NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQ2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE0NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTQ3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE0OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQ5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTUwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNTEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE1MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTUyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTUzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNTQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE1NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTU1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTU2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNTcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE1NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTU4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTU5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE2MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTYxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNjEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTYyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE2MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTY0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNjQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTY1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE2NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTY3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNjcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTY4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE2OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTcwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNzAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE3MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTcxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE3MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTczLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNzMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTczX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE3NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTc0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE3NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTc2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNzYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE3NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTc3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE3OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTc5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxNzksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTgwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xODEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE4MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTgyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxODIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTgzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xODQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE4NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTg1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxODUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTg2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xODcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE4NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTg4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxODgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTg5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE5MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTkxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxOTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTkyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE5MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTk0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxOTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTk1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE5NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTk3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgxOTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMTk4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDE5OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjAwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIwMSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjAxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIwMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjAzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIwNCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjA0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIwNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjA2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIwNywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjA3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIwOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjA5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjEwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMTEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIxMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjEyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjEzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMTQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIxNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjE1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjE2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMTcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIxNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjE4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjE5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIyMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjIxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMjEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjIyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIyMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjI0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMjQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjI1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIyNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjI3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMjcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjI4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIyOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjMwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMzAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIzMSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjMxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIzMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjMzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMzMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIzNCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjM0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIzNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjM2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMzYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIzNywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjM3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDIzOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjM5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyMzksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjQwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNDEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI0MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNDIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjQzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNDQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI0NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQ1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNDUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjQ2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNDcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI0NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQ4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNDgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjQ5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNTAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI1MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjUxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI1MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjUyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNTMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI1MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjU0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI1NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzIpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMSkoMjU1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNTYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18yKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8yXzEpKDI1NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjU3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMikocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fMl8xKSgyNTcsIHMpKQorIworIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL2VkZy93aGlsZS5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvZWRnL3doaWxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTI4ZWIyCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL2VkZy93aGlsZS5ocHAKQEAgLTAsMCArMSw1MzQgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTlRST0xfREVUQUlMX0VER19XSElMRV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9DT05UUk9MX0RFVEFJTF9FREdfV0hJTEVfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lmLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VhdC5ocHA+CisjCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzFfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfM19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzRfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzdfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xM19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xN19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yM19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yN19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yOF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yOV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zMF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zMV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zMl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zM19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zNF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zNV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zNl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zN19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zOF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zOV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80MF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80MV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80Ml9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80M19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80NF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80NV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80Nl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80N19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80OF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80OV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81MF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81MV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81Ml9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81M19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81NF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81NV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81Nl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81N19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81OF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81OV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82MF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82MV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82Ml9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82M19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82NF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82NV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82Nl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82N19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82OF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82OV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83MF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83MV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83Ml9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83M19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83NF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83NV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83Nl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83N19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83OF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83OV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84MF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84MV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84Ml9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84M19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84NF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84NV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84Nl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84N19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84OF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84OV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85MF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85MV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85Ml9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85M19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85NF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85NV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85Nl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85N19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85OF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85OV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTAwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDFfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwMl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTAzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDRfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwNV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTA2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDdfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwOF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTA5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTBfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTExKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExMV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTEyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTNfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExNF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTE1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTZfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExN19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTE4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTlfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyMF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTIxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjJfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyM19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTI0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjVfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyNl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTI3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjhfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyOV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTMwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzFfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzMl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTMzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzRfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzNV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTM2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzdfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzOF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTM5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDBfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0MV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTQyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDNfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0NF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTQ1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDZfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0N19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTQ4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDlfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1MF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTUxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTJfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1M19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTU0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTVfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1Nl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTU3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNThfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1OV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTYwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjFfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2Ml9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTYzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjRfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2NV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTY2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjdfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2OF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTY5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzBfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3MV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTcyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzNfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3NF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTc1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzZfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3N19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTc4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzlfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4MF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTgxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODJfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4M19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTg0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODVfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4Nl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTg3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODhfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4OV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTkwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTFfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5Ml9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTkzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTRfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5NV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTk2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTdfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5OF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTk5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDBfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwMV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjAyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDNfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwNF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjA1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDZfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwN19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjA4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDlfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxMF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjExX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTJfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxM19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjE0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTVfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxNl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjE3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMThfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxOV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjIwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjFfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyMl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjIzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjRfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyNV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjI2X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjdfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyOF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjI5X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzBfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzMV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjMyX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzNfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzNF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjM1X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzZfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzN19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjM4X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzlfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0MF9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQxX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDJfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0M19JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQ0X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDVfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0Nl9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQ3X0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDhfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0OV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjUwX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTFfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1Ml9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjUzX0kocCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTRfSShwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1NV9JKHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjU2X0kocCwgbywgcykKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIsIHMpLCBCT09TVF9QUF9XSElMRV8yLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMywgcyksIEJPT1NUX1BQX1dISUxFXzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg0LCBzKSwgQk9PU1RfUFBfV0hJTEVfNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDUsIHMpLCBCT09TVF9QUF9XSElMRV81LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNiwgcyksIEJPT1NUX1BQX1dISUxFXzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg3LCBzKSwgQk9PU1RfUFBfV0hJTEVfNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDgsIHMpLCBCT09TVF9QUF9XSElMRV84LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoOSwgcyksIEJPT1NUX1BQX1dISUxFXzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMCwgcyksIEJPT1NUX1BQX1dISUxFXzEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMSwgcyksIEJPT1NUX1BQX1dISUxFXzExLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMiwgcyksIEJPT1NUX1BQX1dISUxFXzEyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMywgcyksIEJPT1NUX1BQX1dISUxFXzEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNCwgcyksIEJPT1NUX1BQX1dISUxFXzE0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNSwgcyksIEJPT1NUX1BQX1dISUxFXzE1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNiwgcyksIEJPT1NUX1BQX1dISUxFXzE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNywgcyksIEJPT1NUX1BQX1dISUxFXzE3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOCwgcyksIEJPT1NUX1BQX1dISUxFXzE4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOSwgcyksIEJPT1NUX1BQX1dISUxFXzE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMCwgcyksIEJPT1NUX1BQX1dISUxFXzIwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMSwgcyksIEJPT1NUX1BQX1dISUxFXzIxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMiwgcyksIEJPT1NUX1BQX1dISUxFXzIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMywgcyksIEJPT1NUX1BQX1dISUxFXzIzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNCwgcyksIEJPT1NUX1BQX1dISUxFXzI0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNSwgcyksIEJPT1NUX1BQX1dISUxFXzI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNiwgcyksIEJPT1NUX1BQX1dISUxFXzI2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNywgcyksIEJPT1NUX1BQX1dISUxFXzI3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyOCwgcyksIEJPT1NUX1BQX1dISUxFXzI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyOSwgcyksIEJPT1NUX1BQX1dISUxFXzI5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgzMCwgcyksIEJPT1NUX1BQX1dISUxFXzMwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDMwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgzMSwgcyksIEJPT1NUX1BQX1dISUxFXzMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDMxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgzMiwgcyksIEJPT1NUX1BQX1dISUxFXzMyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDMyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgzMywgcyksIEJPT1NUX1BQX1dISUxFXzMzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDMzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgzNCwgcyksIEJPT1NUX1BQX1dISUxFXzM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDM0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgzNSwgcyksIEJPT1NUX1BQX1dISUxFXzM1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDM1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgzNiwgcyksIEJPT1NUX1BQX1dISUxFXzM2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDM2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgzNywgcyksIEJPT1NUX1BQX1dISUxFXzM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDM3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgzOCwgcyksIEJPT1NUX1BQX1dISUxFXzM4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDM4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgzOSwgcyksIEJPT1NUX1BQX1dISUxFXzM5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDM5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg0MCwgcyksIEJPT1NUX1BQX1dISUxFXzQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg0MSwgcyksIEJPT1NUX1BQX1dISUxFXzQxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg0MiwgcyksIEJPT1NUX1BQX1dISUxFXzQyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg0MywgcyksIEJPT1NUX1BQX1dISUxFXzQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg0NCwgcyksIEJPT1NUX1BQX1dISUxFXzQ0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQ0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg0NSwgcyksIEJPT1NUX1BQX1dISUxFXzQ1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQ1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg0NiwgcyksIEJPT1NUX1BQX1dISUxFXzQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQ2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg0NywgcyksIEJPT1NUX1BQX1dISUxFXzQ3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQ3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg0OCwgcyksIEJPT1NUX1BQX1dISUxFXzQ4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQ4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg0OSwgcyksIEJPT1NUX1BQX1dISUxFXzQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQ5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg1MCwgcyksIEJPT1NUX1BQX1dISUxFXzUwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDUwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg1MSwgcyksIEJPT1NUX1BQX1dISUxFXzUxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDUxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg1MiwgcyksIEJPT1NUX1BQX1dISUxFXzUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDUyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg1MywgcyksIEJPT1NUX1BQX1dISUxFXzUzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDUzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg1NCwgcyksIEJPT1NUX1BQX1dISUxFXzU0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDU0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg1NSwgcyksIEJPT1NUX1BQX1dISUxFXzU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDU1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg1NiwgcyksIEJPT1NUX1BQX1dISUxFXzU2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDU2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg1NywgcyksIEJPT1NUX1BQX1dISUxFXzU3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDU3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg1OCwgcyksIEJPT1NUX1BQX1dISUxFXzU4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDU4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg1OSwgcyksIEJPT1NUX1BQX1dISUxFXzU5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDU5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg2MCwgcyksIEJPT1NUX1BQX1dISUxFXzYwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDYwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg2MSwgcyksIEJPT1NUX1BQX1dISUxFXzYxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDYxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg2MiwgcyksIEJPT1NUX1BQX1dISUxFXzYyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDYyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg2MywgcyksIEJPT1NUX1BQX1dISUxFXzYzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDYzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg2NCwgcyksIEJPT1NUX1BQX1dISUxFXzY0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDY0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg2NSwgcyksIEJPT1NUX1BQX1dISUxFXzY1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDY1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg2NiwgcyksIEJPT1NUX1BQX1dISUxFXzY2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDY2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg2NywgcyksIEJPT1NUX1BQX1dISUxFXzY3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDY3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg2OCwgcyksIEJPT1NUX1BQX1dISUxFXzY4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDY4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg2OSwgcyksIEJPT1NUX1BQX1dISUxFXzY5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDY5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg3MCwgcyksIEJPT1NUX1BQX1dISUxFXzcwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDcwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg3MSwgcyksIEJPT1NUX1BQX1dISUxFXzcxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDcxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg3MiwgcyksIEJPT1NUX1BQX1dISUxFXzcyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDcyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg3MywgcyksIEJPT1NUX1BQX1dISUxFXzczLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDczLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzczX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg3NCwgcyksIEJPT1NUX1BQX1dISUxFXzc0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDc0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg3NSwgcyksIEJPT1NUX1BQX1dISUxFXzc1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDc1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg3NiwgcyksIEJPT1NUX1BQX1dISUxFXzc2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDc2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg3NywgcyksIEJPT1NUX1BQX1dISUxFXzc3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDc3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg3OCwgcyksIEJPT1NUX1BQX1dISUxFXzc4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDc4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg3OSwgcyksIEJPT1NUX1BQX1dISUxFXzc5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDc5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg4MCwgcyksIEJPT1NUX1BQX1dISUxFXzgwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDgwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg4MSwgcyksIEJPT1NUX1BQX1dISUxFXzgxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDgxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg4MiwgcyksIEJPT1NUX1BQX1dISUxFXzgyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDgyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg4MywgcyksIEJPT1NUX1BQX1dISUxFXzgzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDgzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg4NCwgcyksIEJPT1NUX1BQX1dISUxFXzg0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDg0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg4NSwgcyksIEJPT1NUX1BQX1dISUxFXzg1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDg1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg4NiwgcyksIEJPT1NUX1BQX1dISUxFXzg2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDg2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg4NywgcyksIEJPT1NUX1BQX1dISUxFXzg3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDg3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg4OCwgcyksIEJPT1NUX1BQX1dISUxFXzg4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDg4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg4OSwgcyksIEJPT1NUX1BQX1dISUxFXzg5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDg5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg5MCwgcyksIEJPT1NUX1BQX1dISUxFXzkwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDkwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg5MSwgcyksIEJPT1NUX1BQX1dISUxFXzkxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDkxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg5MiwgcyksIEJPT1NUX1BQX1dISUxFXzkyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDkyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg5MywgcyksIEJPT1NUX1BQX1dISUxFXzkzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDkzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg5NCwgcyksIEJPT1NUX1BQX1dISUxFXzk0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDk0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg5NSwgcyksIEJPT1NUX1BQX1dISUxFXzk1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDk1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg5NiwgcyksIEJPT1NUX1BQX1dISUxFXzk2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDk2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg5NywgcyksIEJPT1NUX1BQX1dISUxFXzk3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDk3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg5OCwgcyksIEJPT1NUX1BQX1dISUxFXzk4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDk4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCg5OSwgcyksIEJPT1NUX1BQX1dISUxFXzk5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDk5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMDAsIHMpLCBCT09TVF9QUF9XSElMRV8xMDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTAwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTAxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTAxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwMiwgcyksIEJPT1NUX1BQX1dISUxFXzEwMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMDMsIHMpLCBCT09TVF9QUF9XSElMRV8xMDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTAzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwM19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTA0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTA0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwNSwgcyksIEJPT1NUX1BQX1dISUxFXzEwNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMDYsIHMpLCBCT09TVF9QUF9XSElMRV8xMDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTA2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTA3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTA3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwOCwgcyksIEJPT1NUX1BQX1dISUxFXzEwOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMDksIHMpLCBCT09TVF9QUF9XSElMRV8xMDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTA5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwOV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTEwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExMSwgcyksIEJPT1NUX1BQX1dISUxFXzExMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTExX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTIsIHMpLCBCT09TVF9QUF9XSElMRV8xMTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTEyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTEzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExNCwgcyksIEJPT1NUX1BQX1dISUxFXzExNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTUsIHMpLCBCT09TVF9QUF9XSElMRV8xMTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTE1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTE2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExNywgcyksIEJPT1NUX1BQX1dISUxFXzExNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTgsIHMpLCBCT09TVF9QUF9XSElMRV8xMTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTE4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExOF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTE5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyMCwgcyksIEJPT1NUX1BQX1dISUxFXzEyMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMjEsIHMpLCBCT09TVF9QUF9XSElMRV8xMjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTIxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTIyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyMywgcyksIEJPT1NUX1BQX1dISUxFXzEyMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMjQsIHMpLCBCT09TVF9QUF9XSElMRV8xMjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTI0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTI1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyNiwgcyksIEJPT1NUX1BQX1dISUxFXzEyNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMjcsIHMpLCBCT09TVF9QUF9XSElMRV8xMjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTI3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyN19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTI4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjhfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyOSwgcyksIEJPT1NUX1BQX1dISUxFXzEyOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMzAsIHMpLCBCT09TVF9QUF9XSElMRV8xMzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTMwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTMxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzMiwgcyksIEJPT1NUX1BQX1dISUxFXzEzMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMzMsIHMpLCBCT09TVF9QUF9XSElMRV8xMzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTMzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzM19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTM0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzNSwgcyksIEJPT1NUX1BQX1dISUxFXzEzNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMzYsIHMpLCBCT09TVF9QUF9XSElMRV8xMzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTM2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTM3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzOCwgcyksIEJPT1NUX1BQX1dISUxFXzEzOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMzksIHMpLCBCT09TVF9QUF9XSElMRV8xMzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTM5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzOV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0MSwgcyksIEJPT1NUX1BQX1dISUxFXzE0MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDIsIHMpLCBCT09TVF9QUF9XSElMRV8xNDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0Ml9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0NCwgcyksIEJPT1NUX1BQX1dISUxFXzE0NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDUsIHMpLCBCT09TVF9QUF9XSElMRV8xNDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQ1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQ2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0NywgcyksIEJPT1NUX1BQX1dISUxFXzE0NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDgsIHMpLCBCT09TVF9QUF9XSElMRV8xNDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQ4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0OF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQ5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1MCwgcyksIEJPT1NUX1BQX1dISUxFXzE1MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNTEsIHMpLCBCT09TVF9QUF9XSElMRV8xNTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTUxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTUyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1MywgcyksIEJPT1NUX1BQX1dISUxFXzE1MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNTQsIHMpLCBCT09TVF9QUF9XSElMRV8xNTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTU0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTU1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1NiwgcyksIEJPT1NUX1BQX1dISUxFXzE1NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNTcsIHMpLCBCT09TVF9QUF9XSElMRV8xNTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTU3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1N19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTU4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTU4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNThfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1OSwgcyksIEJPT1NUX1BQX1dISUxFXzE1OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNjAsIHMpLCBCT09TVF9QUF9XSElMRV8xNjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTYwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTYxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTYxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2MiwgcyksIEJPT1NUX1BQX1dISUxFXzE2MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNjMsIHMpLCBCT09TVF9QUF9XSElMRV8xNjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTYzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2M19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTY0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTY0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2NSwgcyksIEJPT1NUX1BQX1dISUxFXzE2NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNjYsIHMpLCBCT09TVF9QUF9XSElMRV8xNjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTY2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2Nl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTY3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTY3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2OCwgcyksIEJPT1NUX1BQX1dISUxFXzE2OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNjksIHMpLCBCT09TVF9QUF9XSElMRV8xNjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTY5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2OV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTcwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTcwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3MSwgcyksIEJPT1NUX1BQX1dISUxFXzE3MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzIsIHMpLCBCT09TVF9QUF9XSElMRV8xNzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTcyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3Ml9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTczLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTczLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3NCwgcyksIEJPT1NUX1BQX1dISUxFXzE3NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzUsIHMpLCBCT09TVF9QUF9XSElMRV8xNzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTc1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTc2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTc2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3NywgcyksIEJPT1NUX1BQX1dISUxFXzE3NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzgsIHMpLCBCT09TVF9QUF9XSElMRV8xNzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTc4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3OF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTc5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTc5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4MCwgcyksIEJPT1NUX1BQX1dISUxFXzE4MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxODEsIHMpLCBCT09TVF9QUF9XSElMRV8xODEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTgxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTgyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTgyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4MywgcyksIEJPT1NUX1BQX1dISUxFXzE4MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxODQsIHMpLCBCT09TVF9QUF9XSElMRV8xODQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTg0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTg1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTg1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4NiwgcyksIEJPT1NUX1BQX1dISUxFXzE4NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxODcsIHMpLCBCT09TVF9QUF9XSElMRV8xODcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTg3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4N19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTg4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTg4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODhfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4OSwgcyksIEJPT1NUX1BQX1dISUxFXzE4OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOTAsIHMpLCBCT09TVF9QUF9XSElMRV8xOTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTkwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTkxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTkxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5MiwgcyksIEJPT1NUX1BQX1dISUxFXzE5MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOTMsIHMpLCBCT09TVF9QUF9XSElMRV8xOTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTkzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5M19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTk0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTk0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5NSwgcyksIEJPT1NUX1BQX1dISUxFXzE5NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOTYsIHMpLCBCT09TVF9QUF9XSElMRV8xOTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTk2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5Nl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTk3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTk3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5OCwgcyksIEJPT1NUX1BQX1dISUxFXzE5OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOTksIHMpLCBCT09TVF9QUF9XSElMRV8xOTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTk5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5OV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjAwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjAwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwMSwgcyksIEJPT1NUX1BQX1dISUxFXzIwMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDIsIHMpLCBCT09TVF9QUF9XSElMRV8yMDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjAyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjAzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjAzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwNCwgcyksIEJPT1NUX1BQX1dISUxFXzIwNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDUsIHMpLCBCT09TVF9QUF9XSElMRV8yMDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjA1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjA2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjA2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwNywgcyksIEJPT1NUX1BQX1dISUxFXzIwNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDgsIHMpLCBCT09TVF9QUF9XSElMRV8yMDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjA4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwOF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjA5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjA5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxMCwgcyksIEJPT1NUX1BQX1dISUxFXzIxMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMTEsIHMpLCBCT09TVF9QUF9XSElMRV8yMTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjExLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjEyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjEyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxMywgcyksIEJPT1NUX1BQX1dISUxFXzIxMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMTQsIHMpLCBCT09TVF9QUF9XSElMRV8yMTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjE0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjE1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjE1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxNiwgcyksIEJPT1NUX1BQX1dISUxFXzIxNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMTcsIHMpLCBCT09TVF9QUF9XSElMRV8yMTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjE3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxN19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjE4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjE4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMThfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxOSwgcyksIEJPT1NUX1BQX1dISUxFXzIxOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMjAsIHMpLCBCT09TVF9QUF9XSElMRV8yMjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjIwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjIxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjIxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyMiwgcyksIEJPT1NUX1BQX1dISUxFXzIyMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMjMsIHMpLCBCT09TVF9QUF9XSElMRV8yMjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjIzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyM19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjI0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjI0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyNSwgcyksIEJPT1NUX1BQX1dISUxFXzIyNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMjYsIHMpLCBCT09TVF9QUF9XSElMRV8yMjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjI2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjI3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjI3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjdfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyOCwgcyksIEJPT1NUX1BQX1dISUxFXzIyOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI4X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMjksIHMpLCBCT09TVF9QUF9XSElMRV8yMjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjI5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyOV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjMwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjMwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzBfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzMSwgcyksIEJPT1NUX1BQX1dISUxFXzIzMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMxX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzIsIHMpLCBCT09TVF9QUF9XSElMRV8yMzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjMyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjMzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjMzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzNfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzNCwgcyksIEJPT1NUX1BQX1dISUxFXzIzNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM0X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzUsIHMpLCBCT09TVF9QUF9XSElMRV8yMzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjM1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjM2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjM2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzZfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzNywgcyksIEJPT1NUX1BQX1dISUxFXzIzNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM3X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzgsIHMpLCBCT09TVF9QUF9XSElMRV8yMzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjM4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzOF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjM5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjM5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzlfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0MCwgcyksIEJPT1NUX1BQX1dISUxFXzI0MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQwX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNDEsIHMpLCBCT09TVF9QUF9XSElMRV8yNDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MV9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDJfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0MywgcyksIEJPT1NUX1BQX1dISUxFXzI0MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQzX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNDQsIHMpLCBCT09TVF9QUF9XSElMRV8yNDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQ0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQ1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQ1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDVfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0NiwgcyksIEJPT1NUX1BQX1dISUxFXzI0NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ2X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNDcsIHMpLCBCT09TVF9QUF9XSElMRV8yNDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQ3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0N19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQ4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQ4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDhfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0OSwgcyksIEJPT1NUX1BQX1dISUxFXzI0OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ5X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNTAsIHMpLCBCT09TVF9QUF9XSElMRV8yNTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjUwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MF9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjUxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjUxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI1MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTFfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI1MiwgcyksIEJPT1NUX1BQX1dISUxFXzI1MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUyX0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNTMsIHMpLCBCT09TVF9QUF9XSElMRV8yNTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjUzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1M19JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjU0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjU0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI1NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTRfSShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI1NSwgcyksIEJPT1NUX1BQX1dISUxFXzI1NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU1X0kocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNTYsIHMpLCBCT09TVF9QUF9XSElMRV8yNTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjU2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1Nl9JKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjU3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjU3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI1NywgcykpCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvbXN2Yy93aGlsZS5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvbXN2Yy93aGlsZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU0M2U0MQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2RldGFpbC9tc3ZjL3doaWxlLmhwcApAQCAtMCwwICsxLDI3NyBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQ09OVFJPTF9ERVRBSUxfTVNWQ19XSElMRV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9DT05UUk9MX0RFVEFJTF9NU1ZDX1dISUxFX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9pZi5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lYXQuaHBwPgorIworIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIsIHMpLCBCT09TVF9QUF9XSElMRV8yLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDMsIHMpLCBCT09TVF9QUF9XSElMRV8zLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQsIHMpLCBCT09TVF9QUF9XSElMRV80LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDUsIHMpLCBCT09TVF9QUF9XSElMRV81LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDYsIHMpLCBCT09TVF9QUF9XSElMRV82LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDcsIHMpLCBCT09TVF9QUF9XSElMRV83LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDgsIHMpLCBCT09TVF9QUF9XSElMRV84LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDksIHMpLCBCT09TVF9QUF9XSElMRV85LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMSwgcyksIEJPT1NUX1BQX1dISUxFXzExLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTIsIHMpLCBCT09TVF9QUF9XSElMRV8xMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNCwgcyksIEJPT1NUX1BQX1dISUxFXzE0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTUsIHMpLCBCT09TVF9QUF9XSElMRV8xNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNywgcyksIEJPT1NUX1BQX1dISUxFXzE3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTgsIHMpLCBCT09TVF9QUF9XSElMRV8xOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMCwgcyksIEJPT1NUX1BQX1dISUxFXzIwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjEsIHMpLCBCT09TVF9QUF9XSElMRV8yMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMywgcyksIEJPT1NUX1BQX1dISUxFXzIzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQsIHMpLCBCT09TVF9QUF9XSElMRV8yNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNiwgcyksIEJPT1NUX1BQX1dISUxFXzI2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjcsIHMpLCBCT09TVF9QUF9XSElMRV8yNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjgocCwgbywgcykgQk9PU1RfUFBfSUYocCgyOSwgcyksIEJPT1NUX1BQX1dISUxFXzI5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMzAsIHMpLCBCT09TVF9QUF9XSElMRV8zMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygzMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDMxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzEocCwgbywgcykgQk9PU1RfUFBfSUYocCgzMiwgcyksIEJPT1NUX1BQX1dISUxFXzMyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDMyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMzMsIHMpLCBCT09TVF9QUF9XSElMRV8zMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygzMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDM0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzQocCwgbywgcykgQk9PU1RfUFBfSUYocCgzNSwgcyksIEJPT1NUX1BQX1dISUxFXzM1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDM1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMzYsIHMpLCBCT09TVF9QUF9XSElMRV8zNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygzNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDM3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzcocCwgbywgcykgQk9PU1RfUFBfSUYocCgzOCwgcyksIEJPT1NUX1BQX1dISUxFXzM4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDM4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMzksIHMpLCBCT09TVF9QUF9XSElMRV8zOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygzOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zOShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQwLCBzKSwgQk9PU1RfUFBfV0hJTEVfNDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDAocCwgbywgcykgQk9PU1RfUFBfSUYocCg0MSwgcyksIEJPT1NUX1BQX1dISUxFXzQxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQxKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNDIsIHMpLCBCT09TVF9QUF9XSElMRV80MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg0MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQzLCBzKSwgQk9PU1RfUFBfV0hJTEVfNDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDMocCwgbywgcykgQk9PU1RfUFBfSUYocCg0NCwgcyksIEJPT1NUX1BQX1dISUxFXzQ0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQ0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNDUsIHMpLCBCT09TVF9QUF9XSElMRV80NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg0NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQ2LCBzKSwgQk9PU1RfUFBfV0hJTEVfNDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDYocCwgbywgcykgQk9PU1RfUFBfSUYocCg0NywgcyksIEJPT1NUX1BQX1dISUxFXzQ3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDQ3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNDgsIHMpLCBCT09TVF9QUF9XSElMRV80OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg0OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80OChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDQ5LCBzKSwgQk9PU1RfUFBfV0hJTEVfNDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDkocCwgbywgcykgQk9PU1RfUFBfSUYocCg1MCwgcyksIEJPT1NUX1BQX1dISUxFXzUwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDUwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNTEsIHMpLCBCT09TVF9QUF9XSElMRV81MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg1MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDUyLCBzKSwgQk9PU1RfUFBfV0hJTEVfNTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTIocCwgbywgcykgQk9PU1RfUFBfSUYocCg1MywgcyksIEJPT1NUX1BQX1dISUxFXzUzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDUzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNTQsIHMpLCBCT09TVF9QUF9XSElMRV81NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg1NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDU1LCBzKSwgQk9PU1RfUFBfV0hJTEVfNTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTUocCwgbywgcykgQk9PU1RfUFBfSUYocCg1NiwgcyksIEJPT1NUX1BQX1dISUxFXzU2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDU2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNTcsIHMpLCBCT09TVF9QUF9XSElMRV81NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg1NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDU4LCBzKSwgQk9PU1RfUFBfV0hJTEVfNTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTgocCwgbywgcykgQk9PU1RfUFBfSUYocCg1OSwgcyksIEJPT1NUX1BQX1dISUxFXzU5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDU5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNjAsIHMpLCBCT09TVF9QUF9XSElMRV82MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg2MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDYxLCBzKSwgQk9PU1RfUFBfV0hJTEVfNjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjEocCwgbywgcykgQk9PU1RfUFBfSUYocCg2MiwgcyksIEJPT1NUX1BQX1dISUxFXzYyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDYyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNjMsIHMpLCBCT09TVF9QUF9XSElMRV82MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg2MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDY0LCBzKSwgQk9PU1RfUFBfV0hJTEVfNjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjQocCwgbywgcykgQk9PU1RfUFBfSUYocCg2NSwgcyksIEJPT1NUX1BQX1dISUxFXzY1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDY1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNjYsIHMpLCBCT09TVF9QUF9XSElMRV82NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg2NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDY3LCBzKSwgQk9PU1RfUFBfV0hJTEVfNjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNjcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjcocCwgbywgcykgQk9PU1RfUFBfSUYocCg2OCwgcyksIEJPT1NUX1BQX1dISUxFXzY4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDY4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNjksIHMpLCBCT09TVF9QUF9XSElMRV82OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg2OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82OShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDcwLCBzKSwgQk9PU1RfUFBfV0hJTEVfNzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzAocCwgbywgcykgQk9PU1RfUFBfSUYocCg3MSwgcyksIEJPT1NUX1BQX1dISUxFXzcxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDcxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcxKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNzIsIHMpLCBCT09TVF9QUF9XSElMRV83MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg3MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDczLCBzKSwgQk9PU1RfUFBfV0hJTEVfNzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzMocCwgbywgcykgQk9PU1RfUFBfSUYocCg3NCwgcyksIEJPT1NUX1BQX1dISUxFXzc0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDc0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNzUsIHMpLCBCT09TVF9QUF9XSElMRV83NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg3NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDc2LCBzKSwgQk9PU1RfUFBfV0hJTEVfNzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzYocCwgbywgcykgQk9PU1RfUFBfSUYocCg3NywgcyksIEJPT1NUX1BQX1dISUxFXzc3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDc3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoNzgsIHMpLCBCT09TVF9QUF9XSElMRV83OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg3OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83OChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDc5LCBzKSwgQk9PU1RfUFBfV0hJTEVfNzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oNzksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzkocCwgbywgcykgQk9PU1RfUFBfSUYocCg4MCwgcyksIEJPT1NUX1BQX1dISUxFXzgwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDgwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoODEsIHMpLCBCT09TVF9QUF9XSElMRV84MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg4MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDgyLCBzKSwgQk9PU1RfUFBfV0hJTEVfODIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODIocCwgbywgcykgQk9PU1RfUFBfSUYocCg4MywgcyksIEJPT1NUX1BQX1dISUxFXzgzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDgzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoODQsIHMpLCBCT09TVF9QUF9XSElMRV84NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg4NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDg1LCBzKSwgQk9PU1RfUFBfV0hJTEVfODUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODUocCwgbywgcykgQk9PU1RfUFBfSUYocCg4NiwgcyksIEJPT1NUX1BQX1dISUxFXzg2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDg2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoODcsIHMpLCBCT09TVF9QUF9XSElMRV84NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg4NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDg4LCBzKSwgQk9PU1RfUFBfV0hJTEVfODgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oODgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODgocCwgbywgcykgQk9PU1RfUFBfSUYocCg4OSwgcyksIEJPT1NUX1BQX1dISUxFXzg5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDg5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoOTAsIHMpLCBCT09TVF9QUF9XSElMRV85MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg5MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDkxLCBzKSwgQk9PU1RfUFBfV0hJTEVfOTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTEocCwgbywgcykgQk9PU1RfUFBfSUYocCg5MiwgcyksIEJPT1NUX1BQX1dISUxFXzkyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDkyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoOTMsIHMpLCBCT09TVF9QUF9XSElMRV85MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg5MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDk0LCBzKSwgQk9PU1RfUFBfV0hJTEVfOTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTQocCwgbywgcykgQk9PU1RfUFBfSUYocCg5NSwgcyksIEJPT1NUX1BQX1dISUxFXzk1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDk1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoOTYsIHMpLCBCT09TVF9QUF9XSElMRV85NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg5NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDk3LCBzKSwgQk9PU1RfUFBfV0hJTEVfOTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oOTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTcocCwgbywgcykgQk9PU1RfUFBfSUYocCg5OCwgcyksIEJPT1NUX1BQX1dISUxFXzk4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDk4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoOTksIHMpLCBCT09TVF9QUF9XSElMRV85OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbyg5OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85OShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwMCwgcyksIEJPT1NUX1BQX1dISUxFXzEwMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTAxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTAxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDEocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMDIsIHMpLCBCT09TVF9QUF9XSElMRV8xMDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTAyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwMywgcyksIEJPT1NUX1BQX1dISUxFXzEwMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTA0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTA0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDQocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMDUsIHMpLCBCT09TVF9QUF9XSElMRV8xMDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTA1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwNiwgcyksIEJPT1NUX1BQX1dISUxFXzEwNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTA3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTA3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEwNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDcocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMDgsIHMpLCBCT09TVF9QUF9XSElMRV8xMDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTA4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwOChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEwOSwgcyksIEJPT1NUX1BQX1dISUxFXzEwOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTEwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTAocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTEsIHMpLCBCT09TVF9QUF9XSElMRV8xMTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTExLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExMiwgcyksIEJPT1NUX1BQX1dISUxFXzExMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTEzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTMocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTQsIHMpLCBCT09TVF9QUF9XSElMRV8xMTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTE0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExNSwgcyksIEJPT1NUX1BQX1dISUxFXzExNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTE2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTYocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMTcsIHMpLCBCT09TVF9QUF9XSElMRV8xMTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTE3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDExOCwgcyksIEJPT1NUX1BQX1dISUxFXzExOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTE5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDExOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTkocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMjAsIHMpLCBCT09TVF9QUF9XSElMRV8xMjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTIwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyMSwgcyksIEJPT1NUX1BQX1dISUxFXzEyMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIxKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTIyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjIocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMjMsIHMpLCBCT09TVF9QUF9XSElMRV8xMjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTIzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyNCwgcyksIEJPT1NUX1BQX1dISUxFXzEyNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTI1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjUocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMjYsIHMpLCBCT09TVF9QUF9XSElMRV8xMjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTI2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEyNywgcyksIEJPT1NUX1BQX1dISUxFXzEyNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMjcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTI4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEyOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjgocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMjksIHMpLCBCT09TVF9QUF9XSElMRV8xMjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTI5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyOShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzMCwgcyksIEJPT1NUX1BQX1dISUxFXzEzMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTMxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzEocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMzIsIHMpLCBCT09TVF9QUF9XSElMRV8xMzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTMyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzMywgcyksIEJPT1NUX1BQX1dISUxFXzEzMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTM0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzQocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMzUsIHMpLCBCT09TVF9QUF9XSElMRV8xMzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTM1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzNiwgcyksIEJPT1NUX1BQX1dISUxFXzEzNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTM3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDEzNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzcocCwgbywgcykgQk9PU1RfUFBfSUYocCgxMzgsIHMpLCBCT09TVF9QUF9XSElMRV8xMzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTM4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzOChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDEzOSwgcyksIEJPT1NUX1BQX1dISUxFXzEzOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxMzksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDAocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDEsIHMpLCBCT09TVF9QUF9XSElMRV8xNDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0MiwgcyksIEJPT1NUX1BQX1dISUxFXzE0MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNDIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDMocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDQsIHMpLCBCT09TVF9QUF9XSElMRV8xNDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQ0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0NSwgcyksIEJPT1NUX1BQX1dISUxFXzE0NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNDUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQ2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDYocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNDcsIHMpLCBCT09TVF9QUF9XSElMRV8xNDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTQ3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE0OCwgcyksIEJPT1NUX1BQX1dISUxFXzE0OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNDgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTQ5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE0OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDkocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNTAsIHMpLCBCT09TVF9QUF9XSElMRV8xNTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTUwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1MSwgcyksIEJPT1NUX1BQX1dISUxFXzE1MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUxKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTUyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTIocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNTMsIHMpLCBCT09TVF9QUF9XSElMRV8xNTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTUzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1NCwgcyksIEJPT1NUX1BQX1dISUxFXzE1NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTU1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTUocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNTYsIHMpLCBCT09TVF9QUF9XSElMRV8xNTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTU2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE1NywgcyksIEJPT1NUX1BQX1dISUxFXzE1NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTU4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTU4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE1OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTgocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNTksIHMpLCBCT09TVF9QUF9XSElMRV8xNTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTU5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1OShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2MCwgcyksIEJPT1NUX1BQX1dISUxFXzE2MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTYxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTYxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjEocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNjIsIHMpLCBCT09TVF9QUF9XSElMRV8xNjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTYyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2MywgcyksIEJPT1NUX1BQX1dISUxFXzE2MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTY0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTY0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjQocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNjUsIHMpLCBCT09TVF9QUF9XSElMRV8xNjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTY1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2NiwgcyksIEJPT1NUX1BQX1dISUxFXzE2NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTY3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTY3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE2NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjcocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNjgsIHMpLCBCT09TVF9QUF9XSElMRV8xNjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTY4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2OChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE2OSwgcyksIEJPT1NUX1BQX1dISUxFXzE2OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNjksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTcwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTcwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzAocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzEsIHMpLCBCT09TVF9QUF9XSElMRV8xNzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTcxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3MiwgcyksIEJPT1NUX1BQX1dISUxFXzE3MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNzIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTczLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTczLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzMocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzQsIHMpLCBCT09TVF9QUF9XSElMRV8xNzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTc0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3NSwgcyksIEJPT1NUX1BQX1dISUxFXzE3NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNzUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTc2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTc2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzYocCwgbywgcykgQk9PU1RfUFBfSUYocCgxNzcsIHMpLCBCT09TVF9QUF9XSElMRV8xNzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTc3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE3OCwgcyksIEJPT1NUX1BQX1dISUxFXzE3OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxNzgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTc5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTc5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE3OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzkocCwgbywgcykgQk9PU1RfUFBfSUYocCgxODAsIHMpLCBCT09TVF9QUF9XSElMRV8xODAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTgwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4MSwgcyksIEJPT1NUX1BQX1dISUxFXzE4MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgxKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTgyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTgyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODIocCwgbywgcykgQk9PU1RfUFBfSUYocCgxODMsIHMpLCBCT09TVF9QUF9XSElMRV8xODMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTgzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4NCwgcyksIEJPT1NUX1BQX1dISUxFXzE4NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTg1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTg1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODUocCwgbywgcykgQk9PU1RfUFBfSUYocCgxODYsIHMpLCBCT09TVF9QUF9XSElMRV8xODYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTg2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE4NywgcyksIEJPT1NUX1BQX1dISUxFXzE4NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxODcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTg4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTg4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE4OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODgocCwgbywgcykgQk9PU1RfUFBfSUYocCgxODksIHMpLCBCT09TVF9QUF9XSElMRV8xODksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTg5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4OShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5MCwgcyksIEJPT1NUX1BQX1dISUxFXzE5MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTkxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMTkxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTEocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOTIsIHMpLCBCT09TVF9QUF9XSElMRV8xOTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTkyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5MywgcyksIEJPT1NUX1BQX1dISUxFXzE5MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTk0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTk0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTQocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOTUsIHMpLCBCT09TVF9QUF9XSElMRV8xOTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTk1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5NiwgcyksIEJPT1NUX1BQX1dISUxFXzE5NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMTk3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMTk3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDE5NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTcocCwgbywgcykgQk9PU1RfUFBfSUYocCgxOTgsIHMpLCBCT09TVF9QUF9XSElMRV8xOTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMTk4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5OChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDE5OSwgcyksIEJPT1NUX1BQX1dISUxFXzE5OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygxOTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjAwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjAwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDAocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDEsIHMpLCBCT09TVF9QUF9XSElMRV8yMDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjAxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwMiwgcyksIEJPT1NUX1BQX1dISUxFXzIwMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMDIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjAzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjAzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDMocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDQsIHMpLCBCT09TVF9QUF9XSElMRV8yMDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjA0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwNSwgcyksIEJPT1NUX1BQX1dISUxFXzIwNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMDUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjA2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjA2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDYocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMDcsIHMpLCBCT09TVF9QUF9XSElMRV8yMDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjA3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIwOCwgcyksIEJPT1NUX1BQX1dISUxFXzIwOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMDgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjA5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjA5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIwOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDkocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMTAsIHMpLCBCT09TVF9QUF9XSElMRV8yMTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjEwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxMSwgcyksIEJPT1NUX1BQX1dISUxFXzIxMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjExKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjEyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjEyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTIocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMTMsIHMpLCBCT09TVF9QUF9XSElMRV8yMTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjEzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxNCwgcyksIEJPT1NUX1BQX1dISUxFXzIxNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjE1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjE1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTUocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMTYsIHMpLCBCT09TVF9QUF9XSElMRV8yMTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjE2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIxNywgcyksIEJPT1NUX1BQX1dISUxFXzIxNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjE4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjE4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIxOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTgocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMTksIHMpLCBCT09TVF9QUF9XSElMRV8yMTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjE5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxOShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyMCwgcyksIEJPT1NUX1BQX1dISUxFXzIyMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjIxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjIxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjEocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMjIsIHMpLCBCT09TVF9QUF9XSElMRV8yMjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjIyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyMywgcyksIEJPT1NUX1BQX1dISUxFXzIyMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjI0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjI0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjQocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMjUsIHMpLCBCT09TVF9QUF9XSElMRV8yMjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjI1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyNiwgcyksIEJPT1NUX1BQX1dISUxFXzIyNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjI3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjI3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIyNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjcocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMjgsIHMpLCBCT09TVF9QUF9XSElMRV8yMjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjI4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyOChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIyOSwgcyksIEJPT1NUX1BQX1dISUxFXzIyOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMjksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI5KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjMwLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjMwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzAocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzEsIHMpLCBCT09TVF9QUF9XSElMRV8yMzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjMxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzMiwgcyksIEJPT1NUX1BQX1dISUxFXzIzMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMzIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMyKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjMzLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjMzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzMocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzQsIHMpLCBCT09TVF9QUF9XSElMRV8yMzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjM0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzNSwgcyksIEJPT1NUX1BQX1dISUxFXzIzNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMzUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM1KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjM2LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjM2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzYocCwgbywgcykgQk9PU1RfUFBfSUYocCgyMzcsIHMpLCBCT09TVF9QUF9XSElMRV8yMzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjM3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDIzOCwgcyksIEJPT1NUX1BQX1dISUxFXzIzOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyMzgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM4KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjM5LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjM5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDIzOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzkocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNDAsIHMpLCBCT09TVF9QUF9XSElMRV8yNDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MChwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0MSwgcyksIEJPT1NUX1BQX1dISUxFXzI0MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQxKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQyLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDIocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNDMsIHMpLCBCT09TVF9QUF9XSElMRV8yNDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MyhwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0NCwgcyksIEJPT1NUX1BQX1dISUxFXzI0NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ0KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQ1LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQ1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDUocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNDYsIHMpLCBCT09TVF9QUF9XSElMRV8yNDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQ2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI0NywgcyksIEJPT1NUX1BQX1dISUxFXzI0NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ3KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjQ4LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjQ4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI0OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDgocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNDksIHMpLCBCT09TVF9QUF9XSElMRV8yNDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjQ5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0OShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI1MCwgcyksIEJPT1NUX1BQX1dISUxFXzI1MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUwKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjUxLCBzKSwgQk9PU1RfUFBfV0hJTEVfMjUxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI1MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTEocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNTIsIHMpLCBCT09TVF9QUF9XSElMRV8yNTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjUyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MihwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI1MywgcyksIEJPT1NUX1BQX1dISUxFXzI1MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUzKHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjU0LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjU0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI1NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTQocCwgbywgcykgQk9PU1RfUFBfSUYocCgyNTUsIHMpLCBCT09TVF9QUF9XSElMRV8yNTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIG8oMjU1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1NShwLCBvLCBzKSBCT09TVF9QUF9JRihwKDI1NiwgcyksIEJPT1NUX1BQX1dISUxFXzI1NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgbygyNTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU2KHAsIG8sIHMpIEJPT1NUX1BQX0lGKHAoMjU3LCBzKSwgQk9PU1RfUFBfV0hJTEVfMjU3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBvKDI1NywgcykpCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvd2hpbGUuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL3doaWxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzE1ZTFkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL3doaWxlLmhwcApAQCAtMCwwICsxLDUzNiBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQ09OVFJPTF9ERVRBSUxfV0hJTEVfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQ09OVFJPTF9ERVRBSUxfV0hJTEVfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lpZi5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2Jvb2wuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcD4KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMV9DKEJPT1NUX1BQX0JPT0wocCgyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzJfQyhCT09TVF9QUF9CT09MKHAoMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zX0MoQk9PU1RfUFBfQk9PTChwKDQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNF9DKEJPT1NUX1BQX0JPT0wocCg1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzVfQyhCT09TVF9QUF9CT09MKHAoNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82X0MoQk9PU1RfUFBfQk9PTChwKDcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfN19DKEJPT1NUX1BQX0JPT0wocCg4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzhfQyhCT09TVF9QUF9CT09MKHAoOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85X0MoQk9PU1RfUFBfQk9PTChwKDEwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMF9DKEJPT1NUX1BQX0JPT0wocCgxMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTFfQyhCT09TVF9QUF9CT09MKHAoMTIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyX0MoQk9PU1RfUFBfQk9PTChwKDEzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xM19DKEJPT1NUX1BQX0JPT0wocCgxNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTRfQyhCT09TVF9QUF9CT09MKHAoMTUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1X0MoQk9PU1RfUFBfQk9PTChwKDE2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNl9DKEJPT1NUX1BQX0JPT0wocCgxNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTdfQyhCT09TVF9QUF9CT09MKHAoMTgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4X0MoQk9PU1RfUFBfQk9PTChwKDE5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOV9DKEJPT1NUX1BQX0JPT0wocCgyMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjBfQyhCT09TVF9QUF9CT09MKHAoMjEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxX0MoQk9PU1RfUFBfQk9PTChwKDIyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMl9DKEJPT1NUX1BQX0JPT0wocCgyMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjNfQyhCT09TVF9QUF9CT09MKHAoMjQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0X0MoQk9PU1RfUFBfQk9PTChwKDI1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNV9DKEJPT1NUX1BQX0JPT0wocCgyNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjZfQyhCT09TVF9QUF9CT09MKHAoMjcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI3X0MoQk9PU1RfUFBfQk9PTChwKDI4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yOF9DKEJPT1NUX1BQX0JPT0wocCgyOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjlfQyhCT09TVF9QUF9CT09MKHAoMzAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzMwX0MoQk9PU1RfUFBfQk9PTChwKDMxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zMV9DKEJPT1NUX1BQX0JPT0wocCgzMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzJfQyhCT09TVF9QUF9CT09MKHAoMzMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzMzX0MoQk9PU1RfUFBfQk9PTChwKDM0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zNF9DKEJPT1NUX1BQX0JPT0wocCgzNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzVfQyhCT09TVF9QUF9CT09MKHAoMzYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzM2X0MoQk9PU1RfUFBfQk9PTChwKDM3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8zN19DKEJPT1NUX1BQX0JPT0wocCgzOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMzhfQyhCT09TVF9QUF9CT09MKHAoMzksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzM5X0MoQk9PU1RfUFBfQk9PTChwKDQwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80MF9DKEJPT1NUX1BQX0JPT0wocCg0MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDFfQyhCT09TVF9QUF9CT09MKHAoNDIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQyX0MoQk9PU1RfUFBfQk9PTChwKDQzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80M19DKEJPT1NUX1BQX0JPT0wocCg0NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDRfQyhCT09TVF9QUF9CT09MKHAoNDUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQ1X0MoQk9PU1RfUFBfQk9PTChwKDQ2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80Nl9DKEJPT1NUX1BQX0JPT0wocCg0NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNDdfQyhCT09TVF9QUF9CT09MKHAoNDgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzQ4X0MoQk9PU1RfUFBfQk9PTChwKDQ5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV80OV9DKEJPT1NUX1BQX0JPT0wocCg1MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTBfQyhCT09TVF9QUF9CT09MKHAoNTEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzUxX0MoQk9PU1RfUFBfQk9PTChwKDUyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81Ml9DKEJPT1NUX1BQX0JPT0wocCg1MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTNfQyhCT09TVF9QUF9CT09MKHAoNTQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzU0X0MoQk9PU1RfUFBfQk9PTChwKDU1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81NV9DKEJPT1NUX1BQX0JPT0wocCg1NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTZfQyhCT09TVF9QUF9CT09MKHAoNTcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzU3X0MoQk9PU1RfUFBfQk9PTChwKDU4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV81OF9DKEJPT1NUX1BQX0JPT0wocCg1OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNTlfQyhCT09TVF9QUF9CT09MKHAoNjAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzYwX0MoQk9PU1RfUFBfQk9PTChwKDYxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82MV9DKEJPT1NUX1BQX0JPT0wocCg2MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjJfQyhCT09TVF9QUF9CT09MKHAoNjMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzYzX0MoQk9PU1RfUFBfQk9PTChwKDY0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82NF9DKEJPT1NUX1BQX0JPT0wocCg2NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjVfQyhCT09TVF9QUF9CT09MKHAoNjYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzY2X0MoQk9PU1RfUFBfQk9PTChwKDY3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV82N19DKEJPT1NUX1BQX0JPT0wocCg2OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNjhfQyhCT09TVF9QUF9CT09MKHAoNjksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzY5X0MoQk9PU1RfUFBfQk9PTChwKDcwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83MF9DKEJPT1NUX1BQX0JPT0wocCg3MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzFfQyhCT09TVF9QUF9CT09MKHAoNzIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzcyX0MoQk9PU1RfUFBfQk9PTChwKDczLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83M19DKEJPT1NUX1BQX0JPT0wocCg3NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzRfQyhCT09TVF9QUF9CT09MKHAoNzUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzc1X0MoQk9PU1RfUFBfQk9PTChwKDc2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83Nl9DKEJPT1NUX1BQX0JPT0wocCg3NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfNzdfQyhCT09TVF9QUF9CT09MKHAoNzgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzc4X0MoQk9PU1RfUFBfQk9PTChwKDc5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV83OV9DKEJPT1NUX1BQX0JPT0wocCg4MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODBfQyhCT09TVF9QUF9CT09MKHAoODEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzgxX0MoQk9PU1RfUFBfQk9PTChwKDgyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84Ml9DKEJPT1NUX1BQX0JPT0wocCg4MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODNfQyhCT09TVF9QUF9CT09MKHAoODQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzg0X0MoQk9PU1RfUFBfQk9PTChwKDg1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84NV9DKEJPT1NUX1BQX0JPT0wocCg4NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODZfQyhCT09TVF9QUF9CT09MKHAoODcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzg3X0MoQk9PU1RfUFBfQk9PTChwKDg4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV84OF9DKEJPT1NUX1BQX0JPT0wocCg4OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfODlfQyhCT09TVF9QUF9CT09MKHAoOTAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzkwX0MoQk9PU1RfUFBfQk9PTChwKDkxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85MV9DKEJPT1NUX1BQX0JPT0wocCg5MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTJfQyhCT09TVF9QUF9CT09MKHAoOTMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzkzX0MoQk9PU1RfUFBfQk9PTChwKDk0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85NF9DKEJPT1NUX1BQX0JPT0wocCg5NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOTVfQyhCT09TVF9QUF9CT09MKHAoOTYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzk2X0MoQk9PU1RfUFBfQk9PTChwKDk3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV85N19DKEJPT1NUX1BQX0JPT0wocCg5OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfOThfQyhCT09TVF9QUF9CT09MKHAoOTksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzk5X0MoQk9PU1RfUFBfQk9PTChwKDEwMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwMF9DKEJPT1NUX1BQX0JPT0wocCgxMDEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDFfQyhCT09TVF9QUF9CT09MKHAoMTAyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTAyX0MoQk9PU1RfUFBfQk9PTChwKDEwMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwM19DKEJPT1NUX1BQX0JPT0wocCgxMDQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDRfQyhCT09TVF9QUF9CT09MKHAoMTA1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTA1X0MoQk9PU1RfUFBfQk9PTChwKDEwNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwNl9DKEJPT1NUX1BQX0JPT0wocCgxMDcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMDdfQyhCT09TVF9QUF9CT09MKHAoMTA4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTA4X0MoQk9PU1RfUFBfQk9PTChwKDEwOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEwOV9DKEJPT1NUX1BQX0JPT0wocCgxMTAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTBfQyhCT09TVF9QUF9CT09MKHAoMTExLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTExX0MoQk9PU1RfUFBfQk9PTChwKDExMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExMl9DKEJPT1NUX1BQX0JPT0wocCgxMTMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTNfQyhCT09TVF9QUF9CT09MKHAoMTE0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTE0X0MoQk9PU1RfUFBfQk9PTChwKDExNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExNV9DKEJPT1NUX1BQX0JPT0wocCgxMTYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTZfQyhCT09TVF9QUF9CT09MKHAoMTE3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTE3X0MoQk9PU1RfUFBfQk9PTChwKDExOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzExOF9DKEJPT1NUX1BQX0JPT0wocCgxMTksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMTlfQyhCT09TVF9QUF9CT09MKHAoMTIwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTIwX0MoQk9PU1RfUFBfQk9PTChwKDEyMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyMV9DKEJPT1NUX1BQX0JPT0wocCgxMjIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjJfQyhCT09TVF9QUF9CT09MKHAoMTIzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTIzX0MoQk9PU1RfUFBfQk9PTChwKDEyNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyNF9DKEJPT1NUX1BQX0JPT0wocCgxMjUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjVfQyhCT09TVF9QUF9CT09MKHAoMTI2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTI2X0MoQk9PU1RfUFBfQk9PTChwKDEyNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEyN19DKEJPT1NUX1BQX0JPT0wocCgxMjgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMjhfQyhCT09TVF9QUF9CT09MKHAoMTI5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTI5X0MoQk9PU1RfUFBfQk9PTChwKDEzMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzMF9DKEJPT1NUX1BQX0JPT0wocCgxMzEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzFfQyhCT09TVF9QUF9CT09MKHAoMTMyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTMyX0MoQk9PU1RfUFBfQk9PTChwKDEzMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzM19DKEJPT1NUX1BQX0JPT0wocCgxMzQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzRfQyhCT09TVF9QUF9CT09MKHAoMTM1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTM1X0MoQk9PU1RfUFBfQk9PTChwKDEzNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzNl9DKEJPT1NUX1BQX0JPT0wocCgxMzcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xMzdfQyhCT09TVF9QUF9CT09MKHAoMTM4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTM4X0MoQk9PU1RfUFBfQk9PTChwKDEzOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzEzOV9DKEJPT1NUX1BQX0JPT0wocCgxNDAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDBfQyhCT09TVF9QUF9CT09MKHAoMTQxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTQxX0MoQk9PU1RfUFBfQk9PTChwKDE0MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0Ml9DKEJPT1NUX1BQX0JPT0wocCgxNDMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDNfQyhCT09TVF9QUF9CT09MKHAoMTQ0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTQ0X0MoQk9PU1RfUFBfQk9PTChwKDE0NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0NV9DKEJPT1NUX1BQX0JPT0wocCgxNDYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDZfQyhCT09TVF9QUF9CT09MKHAoMTQ3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTQ3X0MoQk9PU1RfUFBfQk9PTChwKDE0OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE0OF9DKEJPT1NUX1BQX0JPT0wocCgxNDksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNDlfQyhCT09TVF9QUF9CT09MKHAoMTUwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTUwX0MoQk9PU1RfUFBfQk9PTChwKDE1MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1MV9DKEJPT1NUX1BQX0JPT0wocCgxNTIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTJfQyhCT09TVF9QUF9CT09MKHAoMTUzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTUzX0MoQk9PU1RfUFBfQk9PTChwKDE1NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1NF9DKEJPT1NUX1BQX0JPT0wocCgxNTUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNTVfQyhCT09TVF9QUF9CT09MKHAoMTU2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTU2X0MoQk9PU1RfUFBfQk9PTChwKDE1NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE1N19DKEJPT1NUX1BQX0JPT0wocCgxNTgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNThfQyhCT09TVF9QUF9CT09MKHAoMTU5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTU5X0MoQk9PU1RfUFBfQk9PTChwKDE2MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2MF9DKEJPT1NUX1BQX0JPT0wocCgxNjEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjFfQyhCT09TVF9QUF9CT09MKHAoMTYyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTYyX0MoQk9PU1RfUFBfQk9PTChwKDE2MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2M19DKEJPT1NUX1BQX0JPT0wocCgxNjQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjRfQyhCT09TVF9QUF9CT09MKHAoMTY1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTY1X0MoQk9PU1RfUFBfQk9PTChwKDE2NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2Nl9DKEJPT1NUX1BQX0JPT0wocCgxNjcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNjdfQyhCT09TVF9QUF9CT09MKHAoMTY4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTY4X0MoQk9PU1RfUFBfQk9PTChwKDE2OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE2OV9DKEJPT1NUX1BQX0JPT0wocCgxNzAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzBfQyhCT09TVF9QUF9CT09MKHAoMTcxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTcxX0MoQk9PU1RfUFBfQk9PTChwKDE3MiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3Ml9DKEJPT1NUX1BQX0JPT0wocCgxNzMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzNfQyhCT09TVF9QUF9CT09MKHAoMTc0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTc0X0MoQk9PU1RfUFBfQk9PTChwKDE3NSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3NV9DKEJPT1NUX1BQX0JPT0wocCgxNzYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzZfQyhCT09TVF9QUF9CT09MKHAoMTc3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTc3X0MoQk9PU1RfUFBfQk9PTChwKDE3OCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE3OF9DKEJPT1NUX1BQX0JPT0wocCgxNzksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3OShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xNzlfQyhCT09TVF9QUF9CT09MKHAoMTgwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTgwX0MoQk9PU1RfUFBfQk9PTChwKDE4MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4MV9DKEJPT1NUX1BQX0JPT0wocCgxODIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODJfQyhCT09TVF9QUF9CT09MKHAoMTgzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTgzX0MoQk9PU1RfUFBfQk9PTChwKDE4NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4NF9DKEJPT1NUX1BQX0JPT0wocCgxODUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODVfQyhCT09TVF9QUF9CT09MKHAoMTg2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTg2X0MoQk9PU1RfUFBfQk9PTChwKDE4NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE4N19DKEJPT1NUX1BQX0JPT0wocCgxODgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xODhfQyhCT09TVF9QUF9CT09MKHAoMTg5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTg5X0MoQk9PU1RfUFBfQk9PTChwKDE5MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5MF9DKEJPT1NUX1BQX0JPT0wocCgxOTEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTFfQyhCT09TVF9QUF9CT09MKHAoMTkyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTkyX0MoQk9PU1RfUFBfQk9PTChwKDE5MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5M19DKEJPT1NUX1BQX0JPT0wocCgxOTQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTRfQyhCT09TVF9QUF9CT09MKHAoMTk1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTk1X0MoQk9PU1RfUFBfQk9PTChwKDE5NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5Nl9DKEJPT1NUX1BQX0JPT0wocCgxOTcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8xOTdfQyhCT09TVF9QUF9CT09MKHAoMTk4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMTk4X0MoQk9PU1RfUFBfQk9PTChwKDE5OSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzE5OV9DKEJPT1NUX1BQX0JPT0wocCgyMDAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDBfQyhCT09TVF9QUF9CT09MKHAoMjAxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjAxX0MoQk9PU1RfUFBfQk9PTChwKDIwMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwMl9DKEJPT1NUX1BQX0JPT0wocCgyMDMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDNfQyhCT09TVF9QUF9CT09MKHAoMjA0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjA0X0MoQk9PU1RfUFBfQk9PTChwKDIwNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwNV9DKEJPT1NUX1BQX0JPT0wocCgyMDYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDZfQyhCT09TVF9QUF9CT09MKHAoMjA3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjA3X0MoQk9PU1RfUFBfQk9PTChwKDIwOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIwOF9DKEJPT1NUX1BQX0JPT0wocCgyMDksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMDlfQyhCT09TVF9QUF9CT09MKHAoMjEwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjEwX0MoQk9PU1RfUFBfQk9PTChwKDIxMSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjExKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxMV9DKEJPT1NUX1BQX0JPT0wocCgyMTIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTJfQyhCT09TVF9QUF9CT09MKHAoMjEzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjEzX0MoQk9PU1RfUFBfQk9PTChwKDIxNCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxNF9DKEJPT1NUX1BQX0JPT0wocCgyMTUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMTVfQyhCT09TVF9QUF9CT09MKHAoMjE2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjE2X0MoQk9PU1RfUFBfQk9PTChwKDIxNywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIxN19DKEJPT1NUX1BQX0JPT0wocCgyMTgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxOChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMThfQyhCT09TVF9QUF9CT09MKHAoMjE5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjE5X0MoQk9PU1RfUFBfQk9PTChwKDIyMCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyMF9DKEJPT1NUX1BQX0JPT0wocCgyMjEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjFfQyhCT09TVF9QUF9CT09MKHAoMjIyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjIyX0MoQk9PU1RfUFBfQk9PTChwKDIyMywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyM19DKEJPT1NUX1BQX0JPT0wocCgyMjQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjRfQyhCT09TVF9QUF9CT09MKHAoMjI1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjI1X0MoQk9PU1RfUFBfQk9PTChwKDIyNiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyNl9DKEJPT1NUX1BQX0JPT0wocCgyMjcsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMjdfQyhCT09TVF9QUF9CT09MKHAoMjI4LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjgocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjI4X0MoQk9PU1RfUFBfQk9PTChwKDIyOSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI5KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIyOV9DKEJPT1NUX1BQX0JPT0wocCgyMzAsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzBfQyhCT09TVF9QUF9CT09MKHAoMjMxLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzEocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjMxX0MoQk9PU1RfUFBfQk9PTChwKDIzMiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMyKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzMl9DKEJPT1NUX1BQX0JPT0wocCgyMzMsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMyhwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzNfQyhCT09TVF9QUF9CT09MKHAoMjM0LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzQocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjM0X0MoQk9PU1RfUFBfQk9PTChwKDIzNSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM1KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzNV9DKEJPT1NUX1BQX0JPT0wocCgyMzYsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzZfQyhCT09TVF9QUF9CT09MKHAoMjM3LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzcocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjM3X0MoQk9PU1RfUFBfQk9PTChwKDIzOCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM4KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzIzOF9DKEJPT1NUX1BQX0JPT0wocCgyMzksIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzOShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yMzlfQyhCT09TVF9QUF9CT09MKHAoMjQwLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDAocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQwX0MoQk9PU1RfUFBfQk9PTChwKDI0MSwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQxKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0MV9DKEJPT1NUX1BQX0JPT0wocCgyNDIsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MihwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDJfQyhCT09TVF9QUF9CT09MKHAoMjQzLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDMocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQzX0MoQk9PU1RfUFBfQk9PTChwKDI0NCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ0KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0NF9DKEJPT1NUX1BQX0JPT0wocCgyNDUsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0NShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDVfQyhCT09TVF9QUF9CT09MKHAoMjQ2LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDYocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQ2X0MoQk9PU1RfUFBfQk9PTChwKDI0NywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ3KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI0N19DKEJPT1NUX1BQX0JPT0wocCgyNDgsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0OChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNDhfQyhCT09TVF9QUF9CT09MKHAoMjQ5LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDkocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjQ5X0MoQk9PU1RfUFBfQk9PTChwKDI1MCwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUwKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1MF9DKEJPT1NUX1BQX0JPT0wocCgyNTEsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1MShwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTFfQyhCT09TVF9QUF9CT09MKHAoMjUyLCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTIocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjUyX0MoQk9PU1RfUFBfQk9PTChwKDI1MywgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUzKHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1M19DKEJPT1NUX1BQX0JPT0wocCgyNTQsIHMpKSwgcCwgbywgcykKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1NChwLCBvLCBzKSBCT09TVF9QUF9XSElMRV8yNTRfQyhCT09TVF9QUF9CT09MKHAoMjU1LCBzKSksIHAsIG8sIHMpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTUocCwgbywgcykgQk9PU1RfUFBfV0hJTEVfMjU1X0MoQk9PU1RfUFBfQk9PTChwKDI1NiwgcykpLCBwLCBvLCBzKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU2KHAsIG8sIHMpIEJPT1NUX1BQX1dISUxFXzI1Nl9DKEJPT1NUX1BQX0JPT0wocCgyNTcsIHMpKSwgcCwgbywgcykKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzMwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8zMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzMyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzMzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8zNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzM2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8zNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMzdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzM4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzM5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8zOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQ1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzQ3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzQ4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV80OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV80OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNDlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzUxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzUzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzU0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNTVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzU3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV81N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV81OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNThfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzU5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzYwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV82MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzYyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzYzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV82NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzY2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV82NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNjdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzY4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzY5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV82OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzcxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzcyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzc1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfNzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzc3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzc4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV83OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV83OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfNzlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzgxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzgzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzg0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzg3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV84N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV84OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfODhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfODksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzg5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzkwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV85MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzkyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzkzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV85NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzk2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV85NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfOTdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfOTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzk4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzk5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV85OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTAxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTAxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTA0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTA3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTA3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEwOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEwOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMDlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzExMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTExLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTEzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzExNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMTVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzExNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzExN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMThfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTE5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTIyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMjdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTI4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEyOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEyOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTMxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTM3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzEzOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzEzOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xMzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xMzlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE0MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE0NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE0NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE0N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNDhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTQ5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTUyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNTdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTU4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTU4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE1OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE1OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTYxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTYxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTY0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTY3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTY3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE2OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE2OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNjlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTcwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTcwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE3MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTcxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3MV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3MiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTczLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTczX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE3NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3NF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3NSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTc2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE3NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE3N19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xNzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3OCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xNzhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTc5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTc5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xODEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTgyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTgyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xODQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTg1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xODcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xODdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTg4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTg4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE4OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE4OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTkxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTkxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTk0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMTk3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMTk3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzE5OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzE5OF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8xOTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5OSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8xOTlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjAwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIwMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjAzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjAzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIwNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjA2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIwNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIwN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMDhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjA5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjA5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxMF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxMSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjEyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjEyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxM19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxNCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjE1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxNl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxNywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMTdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjE4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjE4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIxOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIxOV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyMCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjIxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjIxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyMl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyMywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjI0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyNV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyNiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjI3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjcsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjI3X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIyOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI4LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIyOF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyOSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMjlfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjMwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzAsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMwX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIzMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMxLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzMV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzMiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzJfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjMzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzMsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjMzX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIzNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM0LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzNF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzNSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzVfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjM2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzYsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM2X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzIzNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM3LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzIzN19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yMzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzOCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yMzhfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjM5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzksIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjM5X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQwLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0MF9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0MSwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDFfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDIsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQyX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQzLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0M19DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0NCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDRfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQ1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDUsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ1X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ2LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0Nl9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0NywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNDdfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjQ4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDgsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjQ4X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI0OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ5LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI0OV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1MCwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTBfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjUxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTEsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjUxX0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI1MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUyLCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1Ml9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1MywgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTNfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjU0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTQsIHMpKQorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfMjU0X0MoYywgcCwgbywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX1dISUxFXzI1NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykocCwgbywgQk9PU1RfUFBfSUlGKGMsIG8sIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU1LCBzKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1NV9DKGMsIHAsIG8sIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9XSElMRV8yNTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKHAsIG8sIEJPT1NUX1BQX0lJRihjLCBvLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1NiwgcykpCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV8yNTZfQyhjLCBwLCBvLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfV0hJTEVfMjU3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShwLCBvLCBCT09TVF9QUF9JSUYoYywgbywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTcsIHMpKQorIworIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZXhwcl9paWYuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZXhwcl9paWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4ZjQ1YTQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9leHByX2lpZi5ocHAKQEAgLTAsMCArMSwzMSBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9DT05UUk9MX0VYUFJfSUlGX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTlRST0xfRVhQUl9JSUZfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfRVhQUl9JSUYgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01XQ0MoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRVhQUl9JSUYoYml0LCBleHByKSBCT09TVF9QUF9FWFBSX0lJRl9JKGJpdCwgZXhwcikKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRVhQUl9JSUYoYml0LCBleHByKSBCT09TVF9QUF9FWFBSX0lJRl9PTygoYml0LCBleHByKSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VYUFJfSUlGX09PKHBhcikgQk9PU1RfUFBfRVhQUl9JSUZfSSAjIyBwYXIKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0VYUFJfSUlGX0koYml0LCBleHByKSBCT09TVF9QUF9FWFBSX0lJRl8gIyMgYml0KGV4cHIpCisjCisjIGRlZmluZSBCT09TVF9QUF9FWFBSX0lJRl8wKGV4cHIpCisjIGRlZmluZSBCT09TVF9QUF9FWFBSX0lJRl8xKGV4cHIpIGV4cHIKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lmLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmNmYzNkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvaWYuaHBwCkBAIC0wLDAgKzEsMzAgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTlRST0xfSUZfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQ09OVFJPTF9JRl9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9ib29sLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfSUYgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9JRihjb25kLCB0LCBmKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfQk9PTChjb25kKSwgdCwgZikKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSUYoY29uZCwgdCwgZikgQk9PU1RfUFBfSUZfSShjb25kLCB0LCBmKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSUZfSShjb25kLCB0LCBmKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfQk9PTChjb25kKSwgdCwgZikKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lpZi5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkMDc4MTcKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwCkBAIC0wLDAgKzEsMzQgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfQ09OVFJPTF9JSUZfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfQ09OVFJPTF9JSUZfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01XQ0MoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSUlGKGJpdCwgdCwgZikgQk9PU1RfUFBfSUlGX0koYml0LCB0LCBmKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JSUYoYml0LCB0LCBmKSBCT09TVF9QUF9JSUZfT08oKGJpdCwgdCwgZikpCisjICAgIGRlZmluZSBCT09TVF9QUF9JSUZfT08ocGFyKSBCT09TVF9QUF9JSUZfSSAjIyBwYXIKKyMgZW5kaWYKKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01TVkMoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSUlGX0koYml0LCB0LCBmKSBCT09TVF9QUF9JSUZfICMjIGJpdCh0LCBmKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JSUZfSShiaXQsIHQsIGYpIEJPT1NUX1BQX0lJRl9JSShCT09TVF9QUF9JSUZfICMjIGJpdCh0LCBmKSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lJRl9JSShpZCkgaWQKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0lJRl8wKHQsIGYpIGYKKyMgZGVmaW5lIEJPT1NUX1BQX0lJRl8xKHQsIGYpIHQKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL3doaWxlLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL3doaWxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOGE2NWZmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvd2hpbGUuaHBwCkBAIC0wLDAgKzEsMzEyIEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9DT05UUk9MX1dISUxFX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0NPTlRST0xfV0hJTEVfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9kZWJ1Zy9lcnJvci5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvYXV0b19yZWMuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb2xkX2xlZnQuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb2xkX3JpZ2h0LmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYml0YW5kLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfV0hJTEUgKi8KKyMKKyMgaWYgMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfV0hJTEUocHJlZCwgb3AsIHN0YXRlKQorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEUgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1dISUxFXywgQk9PU1RfUFBfQVVUT19SRUMoQk9PU1RfUFBfV0hJTEVfUCwgMjU2KSkKKyMKKyMgaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1dISUxFX1AobikgQk9PU1RfUFBfQklUQU5EKEJPT1NUX1BQX0NBVChCT09TVF9QUF9XSElMRV9DSEVDS18sIEJPT1NUX1BQX1dISUxFXyAjIyBuKEJPT1NUX1BQX1dISUxFX0YsIEJPT1NUX1BQX05JTCwgQk9PU1RfUFBfTklMKSksIEJPT1NUX1BQX0JJVEFORChCT09TVF9QUF9DQVQoQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8gIyMgbihCT09TVF9QUF9OSUwsIEJPT1NUX1BQX05JTCwgQk9PU1RfUFBfTklMKSksIEJPT1NUX1BQX0NBVChCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfICMjIG4oQk9PU1RfUFBfTklMLCBCT09TVF9QUF9OSUwsIEJPT1NUX1BQX05JTCkpKSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfUChuKSBCT09TVF9QUF9CSVRBTkQoQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1dISUxFX0NIRUNLXywgQk9PU1RfUFBfV0hJTEVfICMjIG4oQk9PU1RfUFBfV0hJTEVfRiwgQk9PU1RfUFBfTklMLCBCT09TVF9QUF9OSUwpKSwgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLXywgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfICMjIG4oQk9PU1RfUFBfTklMLCBCT09TVF9QUF9OSUwsIEJPT1NUX1BQX05JTCkpKQorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfRihkLCBfKSAwCisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2RldGFpbC9lZGcvd2hpbGUuaHBwPgorIyBlbGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01TVkMoKQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9kZXRhaWwvbXN2Yy93aGlsZS5ocHA+CisjIGVsaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRE1DKCkKKyMgICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL2RtYy93aGlsZS5ocHA+CisjIGVsc2UKKyMgICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZGV0YWlsL3doaWxlLmhwcD4KKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFXzI1NyhwLCBvLCBzKSBCT09TVF9QUF9FUlJPUigweDAwMDEpCisjCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9OSUwgMQorIworIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV81KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV84KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMzAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMzEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMzIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMzMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMzQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMzUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMzYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMzcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMzgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMzkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNDAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNDEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNDIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNDMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNDQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNDUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNDYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNDcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNDgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNDkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNTAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNTEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNTIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNTMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNTQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNTUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNTYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNTcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNTgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNTkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNjAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNjEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNjIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNjMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNjQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNjUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNjYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNjcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNjgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNjkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNzAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNzEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNzIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNzMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNzQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNzUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNzYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNzcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNzgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfNzkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfODAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfODEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfODIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfODMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfODQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfODUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfODYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfODcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfODgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfODkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfOTAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfOTEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfOTIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfOTMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfOTQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfOTUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfOTYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfOTcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfOTgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfOTkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTAwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEwMShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMDIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTAzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEwNChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMDUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTA2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEwNyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMDgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTA5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzExMChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMTEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTEyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzExMyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMTQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTE1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzExNihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMTcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTE4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzExOShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMjAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTIxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEyMihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMjMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTI0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEyNShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMjYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTI3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEyOChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMjkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTMwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEzMShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMzIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTMzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEzNChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMzUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTM2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzEzNyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xMzgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTM5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE0MChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNDEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTQyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE0MyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNDQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTQ1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE0NihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNDcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTQ4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE0OShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNTAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTUxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE1MihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNTMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTU0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE1NShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNTYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTU3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE1OChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNTkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTYwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE2MShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNjIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTYzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE2NChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNjUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTY2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE2NyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNjgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTY5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE3MChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNzEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTcyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE3MyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNzQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTc1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE3NihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xNzcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTc4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE3OShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xODAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTgxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE4MihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xODMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTg0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE4NShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xODYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTg3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE4OChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xODkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTkwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE5MShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xOTIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTkzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE5NChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xOTUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTk2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzE5NyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8xOTgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMTk5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIwMChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMDEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjAyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIwMyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMDQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjA1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIwNihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMDcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjA4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIwOShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMTAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjExKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIxMihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMTMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjE0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIxNShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMTYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjE3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIxOChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMTkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjIwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIyMShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMjIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjIzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIyNChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMjUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjI2KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIyNyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMjgocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjI5KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIzMChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMzEocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjMyKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIzMyhwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMzQocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjM1KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIzNihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yMzcocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjM4KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzIzOShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yNDAocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjQxKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI0MihwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yNDMocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjQ0KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI0NShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yNDYocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjQ3KHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI0OChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yNDkocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjUwKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI1MShwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yNTIocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjUzKHAsIG8sIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX1dISUxFX0NIRUNLX0JPT1NUX1BQX1dISUxFXzI1NChwLCBvLCBzKSAwCisjIGRlZmluZSBCT09TVF9QUF9XSElMRV9DSEVDS19CT09TVF9QUF9XSElMRV8yNTUocCwgbywgcykgMAorIyBkZWZpbmUgQk9PU1RfUFBfV0hJTEVfQ0hFQ0tfQk9PU1RfUFBfV0hJTEVfMjU2KHAsIG8sIHMpIDAKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9kZWJ1Zy9lcnJvci5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvZGVidWcvZXJyb3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4YWU1ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvZGVidWcvZXJyb3IuaHBwCkBAIC0wLDAgKzEsMzMgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfREVCVUdfRVJST1JfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfREVCVUdfRVJST1JfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0VSUk9SICovCisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19FUlJPUlMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VSUk9SKGNvZGUpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9FUlJPUl8sIGNvZGUpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9FUlJPUl8weDAwMDAgQk9PU1RfUFBfRVJST1IoMHgwMDAwLCBCT09TVF9QUF9JTkRFWF9PVVRfT0ZfQk9VTkRTKQorIyBkZWZpbmUgQk9PU1RfUFBfRVJST1JfMHgwMDAxIEJPT1NUX1BQX0VSUk9SKDB4MDAwMSwgQk9PU1RfUFBfV0hJTEVfT1ZFUkZMT1cpCisjIGRlZmluZSBCT09TVF9QUF9FUlJPUl8weDAwMDIgQk9PU1RfUFBfRVJST1IoMHgwMDAyLCBCT09TVF9QUF9GT1JfT1ZFUkZMT1cpCisjIGRlZmluZSBCT09TVF9QUF9FUlJPUl8weDAwMDMgQk9PU1RfUFBfRVJST1IoMHgwMDAzLCBCT09TVF9QUF9SRVBFQVRfT1ZFUkZMT1cpCisjIGRlZmluZSBCT09TVF9QUF9FUlJPUl8weDAwMDQgQk9PU1RfUFBfRVJST1IoMHgwMDA0LCBCT09TVF9QUF9MSVNUX0ZPTERfT1ZFUkZMT1cpCisjIGRlZmluZSBCT09TVF9QUF9FUlJPUl8weDAwMDUgQk9PU1RfUFBfRVJST1IoMHgwMDA1LCBCT09TVF9QUF9TRVFfRk9MRF9PVkVSRkxPVykKKyMgZGVmaW5lIEJPT1NUX1BQX0VSUk9SXzB4MDAwNiBCT09TVF9QUF9FUlJPUigweDAwMDYsIEJPT1NUX1BQX0FSSVRITUVUSUNfT1ZFUkZMT1cpCisjIGRlZmluZSBCT09TVF9QUF9FUlJPUl8weDAwMDcgQk9PU1RfUFBfRVJST1IoMHgwMDA3LCBCT09TVF9QUF9ESVZJU0lPTl9CWV9aRVJPKQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9hdXRvX3JlYy5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2F1dG9fcmVjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWRlMWQwCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9hdXRvX3JlYy5ocHAKQEAgLTAsMCArMSwyOTMgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMKKyMgaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRE1DKCkKKyMgICAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvZG1jL2F1dG9fcmVjLmhwcD4KKyMgZWxzZQorIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0RFVEFJTF9BVVRPX1JFQ19IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9ERVRBSUxfQVVUT19SRUNfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lpZi5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0FVVE9fUkVDICovCisjCisjIGRlZmluZSBCT09TVF9QUF9BVVRPX1JFQyhwcmVkLCBuKSBCT09TVF9QUF9OT0RFX0VOVFJZXyAjIyBuKHByZWQpCisjCisjIGRlZmluZSBCT09TVF9QUF9OT0RFX0VOVFJZXzI1NihwKSBCT09TVF9QUF9OT0RFXzEyOChwKShwKShwKShwKShwKShwKShwKShwKQorIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV9FTlRSWV8xMjgocCkgQk9PU1RfUFBfTk9ERV82NChwKShwKShwKShwKShwKShwKShwKQorIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV9FTlRSWV82NChwKSBCT09TVF9QUF9OT0RFXzMyKHApKHApKHApKHApKHApKHApCisjIGRlZmluZSBCT09TVF9QUF9OT0RFX0VOVFJZXzMyKHApIEJPT1NUX1BQX05PREVfMTYocCkocCkocCkocCkocCkKKyMgZGVmaW5lIEJPT1NUX1BQX05PREVfRU5UUllfMTYocCkgQk9PU1RfUFBfTk9ERV84KHApKHApKHApKHApCisjIGRlZmluZSBCT09TVF9QUF9OT0RFX0VOVFJZXzgocCkgQk9PU1RfUFBfTk9ERV80KHApKHApKHApCisjIGRlZmluZSBCT09TVF9QUF9OT0RFX0VOVFJZXzQocCkgQk9PU1RfUFBfTk9ERV8yKHApKHApCisjIGRlZmluZSBCT09TVF9QUF9OT0RFX0VOVFJZXzIocCkgQk9PU1RfUFBfTk9ERV8xKHApCisjCisjIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyOChwKSBCT09TVF9QUF9JSUYocCgxMjgpLCBCT09TVF9QUF9OT0RFXzY0LCBCT09TVF9QUF9OT0RFXzE5MikKKyMgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjQocCkgQk9PU1RfUFBfSUlGKHAoNjQpLCBCT09TVF9QUF9OT0RFXzMyLCBCT09TVF9QUF9OT0RFXzk2KQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzIocCkgQk9PU1RfUFBfSUlGKHAoMzIpLCBCT09TVF9QUF9OT0RFXzE2LCBCT09TVF9QUF9OT0RFXzQ4KQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2KHApIEJPT1NUX1BQX0lJRihwKDE2KSwgQk9PU1RfUFBfTk9ERV84LCBCT09TVF9QUF9OT0RFXzI0KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84KHApIEJPT1NUX1BQX0lJRihwKDgpLCBCT09TVF9QUF9OT0RFXzQsIEJPT1NUX1BQX05PREVfMTIpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV80KHApIEJPT1NUX1BQX0lJRihwKDQpLCBCT09TVF9QUF9OT0RFXzIsIEJPT1NUX1BQX05PREVfNikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yKHApIEJPT1NUX1BQX0lJRihwKDIpLCBCT09TVF9QUF9OT0RFXzEsIEJPT1NUX1BQX05PREVfMykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMShwKSBCT09TVF9QUF9JSUYocCgxKSwgMSwgMikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMyhwKSBCT09TVF9QUF9JSUYocCgzKSwgMywgNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82KHApIEJPT1NUX1BQX0lJRihwKDYpLCBCT09TVF9QUF9OT0RFXzUsIEJPT1NUX1BQX05PREVfNykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNShwKSBCT09TVF9QUF9JSUYocCg1KSwgNSwgNikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNyhwKSBCT09TVF9QUF9JSUYocCg3KSwgNywgOCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyKHApIEJPT1NUX1BQX0lJRihwKDEyKSwgQk9PU1RfUFBfTk9ERV8xMCwgQk9PU1RfUFBfTk9ERV8xNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMChwKSBCT09TVF9QUF9JSUYocCgxMCksIEJPT1NUX1BQX05PREVfOSwgQk9PU1RfUFBfTk9ERV8xMSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOShwKSBCT09TVF9QUF9JSUYocCg5KSwgOSwgMTApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExKHApIEJPT1NUX1BQX0lJRihwKDExKSwgMTEsIDEyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0KHApIEJPT1NUX1BQX0lJRihwKDE0KSwgQk9PU1RfUFBfTk9ERV8xMywgQk9PU1RfUFBfTk9ERV8xNSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTMocCkgQk9PU1RfUFBfSUlGKHAoMTMpLCAxMywgMTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE1KHApIEJPT1NUX1BQX0lJRihwKDE1KSwgMTUsIDE2KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNChwKSBCT09TVF9QUF9JSUYocCgyNCksIEJPT1NUX1BQX05PREVfMjAsIEJPT1NUX1BQX05PREVfMjgpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMChwKSBCT09TVF9QUF9JSUYocCgyMCksIEJPT1NUX1BQX05PREVfMTgsIEJPT1NUX1BQX05PREVfMjIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTgocCkgQk9PU1RfUFBfSUlGKHAoMTgpLCBCT09TVF9QUF9OT0RFXzE3LCBCT09TVF9QUF9OT0RFXzE5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNyhwKSBCT09TVF9QUF9JSUYocCgxNyksIDE3LCAxOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTkocCkgQk9PU1RfUFBfSUlGKHAoMTkpLCAxOSwgMjApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjIocCkgQk9PU1RfUFBfSUlGKHAoMjIpLCBCT09TVF9QUF9OT0RFXzIxLCBCT09TVF9QUF9OT0RFXzIzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMShwKSBCT09TVF9QUF9JSUYocCgyMSksIDIxLCAyMikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjMocCkgQk9PU1RfUFBfSUlGKHAoMjMpLCAyMywgMjQpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yOChwKSBCT09TVF9QUF9JSUYocCgyOCksIEJPT1NUX1BQX05PREVfMjYsIEJPT1NUX1BQX05PREVfMzApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjYocCkgQk9PU1RfUFBfSUlGKHAoMjYpLCBCT09TVF9QUF9OT0RFXzI1LCBCT09TVF9QUF9OT0RFXzI3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNShwKSBCT09TVF9QUF9JSUYocCgyNSksIDI1LCAyNikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjcocCkgQk9PU1RfUFBfSUlGKHAoMjcpLCAyNywgMjgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzAocCkgQk9PU1RfUFBfSUlGKHAoMzApLCBCT09TVF9QUF9OT0RFXzI5LCBCT09TVF9QUF9OT0RFXzMxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yOShwKSBCT09TVF9QUF9JSUYocCgyOSksIDI5LCAzMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzEocCkgQk9PU1RfUFBfSUlGKHAoMzEpLCAzMSwgMzIpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDgocCkgQk9PU1RfUFBfSUlGKHAoNDgpLCBCT09TVF9QUF9OT0RFXzQwLCBCT09TVF9QUF9OT0RFXzU2KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV80MChwKSBCT09TVF9QUF9JSUYocCg0MCksIEJPT1NUX1BQX05PREVfMzYsIEJPT1NUX1BQX05PREVfNDQpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8zNihwKSBCT09TVF9QUF9JSUYocCgzNiksIEJPT1NUX1BQX05PREVfMzQsIEJPT1NUX1BQX05PREVfMzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzQocCkgQk9PU1RfUFBfSUlGKHAoMzQpLCBCT09TVF9QUF9OT0RFXzMzLCBCT09TVF9QUF9OT0RFXzM1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8zMyhwKSBCT09TVF9QUF9JSUYocCgzMyksIDMzLCAzNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzUocCkgQk9PU1RfUFBfSUlGKHAoMzUpLCAzNSwgMzYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzgocCkgQk9PU1RfUFBfSUlGKHAoMzgpLCBCT09TVF9QUF9OT0RFXzM3LCBCT09TVF9QUF9OT0RFXzM5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8zNyhwKSBCT09TVF9QUF9JSUYocCgzNyksIDM3LCAzOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzkocCkgQk9PU1RfUFBfSUlGKHAoMzkpLCAzOSwgNDApCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV80NChwKSBCT09TVF9QUF9JSUYocCg0NCksIEJPT1NUX1BQX05PREVfNDIsIEJPT1NUX1BQX05PREVfNDYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDIocCkgQk9PU1RfUFBfSUlGKHAoNDIpLCBCT09TVF9QUF9OT0RFXzQxLCBCT09TVF9QUF9OT0RFXzQzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV80MShwKSBCT09TVF9QUF9JSUYocCg0MSksIDQxLCA0MikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDMocCkgQk9PU1RfUFBfSUlGKHAoNDMpLCA0MywgNDQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDYocCkgQk9PU1RfUFBfSUlGKHAoNDYpLCBCT09TVF9QUF9OT0RFXzQ1LCBCT09TVF9QUF9OT0RFXzQ3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV80NShwKSBCT09TVF9QUF9JSUYocCg0NSksIDQ1LCA0NikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDcocCkgQk9PU1RfUFBfSUlGKHAoNDcpLCA0NywgNDgpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzU2KHApIEJPT1NUX1BQX0lJRihwKDU2KSwgQk9PU1RfUFBfTk9ERV81MiwgQk9PU1RfUFBfTk9ERV82MCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzUyKHApIEJPT1NUX1BQX0lJRihwKDUyKSwgQk9PU1RfUFBfTk9ERV81MCwgQk9PU1RfUFBfTk9ERV81NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81MChwKSBCT09TVF9QUF9JSUYocCg1MCksIEJPT1NUX1BQX05PREVfNDksIEJPT1NUX1BQX05PREVfNTEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQ5KHApIEJPT1NUX1BQX0lJRihwKDQ5KSwgNDksIDUwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81MShwKSBCT09TVF9QUF9JSUYocCg1MSksIDUxLCA1MikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81NChwKSBCT09TVF9QUF9JSUYocCg1NCksIEJPT1NUX1BQX05PREVfNTMsIEJPT1NUX1BQX05PREVfNTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzUzKHApIEJPT1NUX1BQX0lJRihwKDUzKSwgNTMsIDU0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81NShwKSBCT09TVF9QUF9JSUYocCg1NSksIDU1LCA1NikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzYwKHApIEJPT1NUX1BQX0lJRihwKDYwKSwgQk9PU1RfUFBfTk9ERV81OCwgQk9PU1RfUFBfTk9ERV82MikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81OChwKSBCT09TVF9QUF9JSUYocCg1OCksIEJPT1NUX1BQX05PREVfNTcsIEJPT1NUX1BQX05PREVfNTkpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzU3KHApIEJPT1NUX1BQX0lJRihwKDU3KSwgNTcsIDU4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81OShwKSBCT09TVF9QUF9JSUYocCg1OSksIDU5LCA2MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82MihwKSBCT09TVF9QUF9JSUYocCg2MiksIEJPT1NUX1BQX05PREVfNjEsIEJPT1NUX1BQX05PREVfNjMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzYxKHApIEJPT1NUX1BQX0lJRihwKDYxKSwgNjEsIDYyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82MyhwKSBCT09TVF9QUF9JSUYocCg2MyksIDYzLCA2NCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzk2KHApIEJPT1NUX1BQX0lJRihwKDk2KSwgQk9PU1RfUFBfTk9ERV84MCwgQk9PU1RfUFBfTk9ERV8xMTIpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfODAocCkgQk9PU1RfUFBfSUlGKHAoODApLCBCT09TVF9QUF9OT0RFXzcyLCBCT09TVF9QUF9OT0RFXzg4KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV83MihwKSBCT09TVF9QUF9JSUYocCg3MiksIEJPT1NUX1BQX05PREVfNjgsIEJPT1NUX1BQX05PREVfNzYpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82OChwKSBCT09TVF9QUF9JSUYocCg2OCksIEJPT1NUX1BQX05PREVfNjYsIEJPT1NUX1BQX05PREVfNzApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjYocCkgQk9PU1RfUFBfSUlGKHAoNjYpLCBCT09TVF9QUF9OT0RFXzY1LCBCT09TVF9QUF9OT0RFXzY3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82NShwKSBCT09TVF9QUF9JSUYocCg2NSksIDY1LCA2NikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjcocCkgQk9PU1RfUFBfSUlGKHAoNjcpLCA2NywgNjgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzAocCkgQk9PU1RfUFBfSUlGKHAoNzApLCBCT09TVF9QUF9OT0RFXzY5LCBCT09TVF9QUF9OT0RFXzcxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82OShwKSBCT09TVF9QUF9JSUYocCg2OSksIDY5LCA3MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzEocCkgQk9PU1RfUFBfSUlGKHAoNzEpLCA3MSwgNzIpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV83NihwKSBCT09TVF9QUF9JSUYocCg3NiksIEJPT1NUX1BQX05PREVfNzQsIEJPT1NUX1BQX05PREVfNzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzQocCkgQk9PU1RfUFBfSUlGKHAoNzQpLCBCT09TVF9QUF9OT0RFXzczLCBCT09TVF9QUF9OT0RFXzc1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV83MyhwKSBCT09TVF9QUF9JSUYocCg3MyksIDczLCA3NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzUocCkgQk9PU1RfUFBfSUlGKHAoNzUpLCA3NSwgNzYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzgocCkgQk9PU1RfUFBfSUlGKHAoNzgpLCBCT09TVF9QUF9OT0RFXzc3LCBCT09TVF9QUF9OT0RFXzc5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV83NyhwKSBCT09TVF9QUF9JSUYocCg3NyksIDc3LCA3OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzkocCkgQk9PU1RfUFBfSUlGKHAoNzkpLCA3OSwgODApCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzg4KHApIEJPT1NUX1BQX0lJRihwKDg4KSwgQk9PU1RfUFBfTk9ERV84NCwgQk9PU1RfUFBfTk9ERV85MikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzg0KHApIEJPT1NUX1BQX0lJRihwKDg0KSwgQk9PU1RfUFBfTk9ERV84MiwgQk9PU1RfUFBfTk9ERV84NikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84MihwKSBCT09TVF9QUF9JSUYocCg4MiksIEJPT1NUX1BQX05PREVfODEsIEJPT1NUX1BQX05PREVfODMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzgxKHApIEJPT1NUX1BQX0lJRihwKDgxKSwgODEsIDgyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84MyhwKSBCT09TVF9QUF9JSUYocCg4MyksIDgzLCA4NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84NihwKSBCT09TVF9QUF9JSUYocCg4NiksIEJPT1NUX1BQX05PREVfODUsIEJPT1NUX1BQX05PREVfODcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzg1KHApIEJPT1NUX1BQX0lJRihwKDg1KSwgODUsIDg2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84NyhwKSBCT09TVF9QUF9JSUYocCg4NyksIDg3LCA4OCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzkyKHApIEJPT1NUX1BQX0lJRihwKDkyKSwgQk9PU1RfUFBfTk9ERV85MCwgQk9PU1RfUFBfTk9ERV85NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85MChwKSBCT09TVF9QUF9JSUYocCg5MCksIEJPT1NUX1BQX05PREVfODksIEJPT1NUX1BQX05PREVfOTEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzg5KHApIEJPT1NUX1BQX0lJRihwKDg5KSwgODksIDkwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85MShwKSBCT09TVF9QUF9JSUYocCg5MSksIDkxLCA5MikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85NChwKSBCT09TVF9QUF9JSUYocCg5NCksIEJPT1NUX1BQX05PREVfOTMsIEJPT1NUX1BQX05PREVfOTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzkzKHApIEJPT1NUX1BQX0lJRihwKDkzKSwgOTMsIDk0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85NShwKSBCT09TVF9QUF9JSUYocCg5NSksIDk1LCA5NikKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTIocCkgQk9PU1RfUFBfSUlGKHAoMTEyKSwgQk9PU1RfUFBfTk9ERV8xMDQsIEJPT1NUX1BQX05PREVfMTIwKQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDQocCkgQk9PU1RfUFBfSUlGKHAoMTA0KSwgQk9PU1RfUFBfTk9ERV8xMDAsIEJPT1NUX1BQX05PREVfMTA4KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTAwKHApIEJPT1NUX1BQX0lJRihwKDEwMCksIEJPT1NUX1BQX05PREVfOTgsIEJPT1NUX1BQX05PREVfMTAyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzk4KHApIEJPT1NUX1BQX0lJRihwKDk4KSwgQk9PU1RfUFBfTk9ERV85NywgQk9PU1RfUFBfTk9ERV85OSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTcocCkgQk9PU1RfUFBfSUlGKHAoOTcpLCA5NywgOTgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzk5KHApIEJPT1NUX1BQX0lJRihwKDk5KSwgOTksIDEwMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDIocCkgQk9PU1RfUFBfSUlGKHAoMTAyKSwgQk9PU1RfUFBfTk9ERV8xMDEsIEJPT1NUX1BQX05PREVfMTAzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDEocCkgQk9PU1RfUFBfSUlGKHAoMTAxKSwgMTAxLCAxMDIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEwMyhwKSBCT09TVF9QUF9JSUYocCgxMDMpLCAxMDMsIDEwNCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEwOChwKSBCT09TVF9QUF9JSUYocCgxMDgpLCBCT09TVF9QUF9OT0RFXzEwNiwgQk9PU1RfUFBfTk9ERV8xMTApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTA2KHApIEJPT1NUX1BQX0lJRihwKDEwNiksIEJPT1NUX1BQX05PREVfMTA1LCBCT09TVF9QUF9OT0RFXzEwNykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTA1KHApIEJPT1NUX1BQX0lJRihwKDEwNSksIDEwNSwgMTA2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDcocCkgQk9PU1RfUFBfSUlGKHAoMTA3KSwgMTA3LCAxMDgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTEwKHApIEJPT1NUX1BQX0lJRihwKDExMCksIEJPT1NUX1BQX05PREVfMTA5LCBCT09TVF9QUF9OT0RFXzExMSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTA5KHApIEJPT1NUX1BQX0lJRihwKDEwOSksIDEwOSwgMTEwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTEocCkgQk9PU1RfUFBfSUlGKHAoMTExKSwgMTExLCAxMTIpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyMChwKSBCT09TVF9QUF9JSUYocCgxMjApLCBCT09TVF9QUF9OT0RFXzExNiwgQk9PU1RfUFBfTk9ERV8xMjQpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTYocCkgQk9PU1RfUFBfSUlGKHAoMTE2KSwgQk9PU1RfUFBfTk9ERV8xMTQsIEJPT1NUX1BQX05PREVfMTE4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExNChwKSBCT09TVF9QUF9JSUYocCgxMTQpLCBCT09TVF9QUF9OT0RFXzExMywgQk9PU1RfUFBfTk9ERV8xMTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExMyhwKSBCT09TVF9QUF9JSUYocCgxMTMpLCAxMTMsIDExNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTE1KHApIEJPT1NUX1BQX0lJRihwKDExNSksIDExNSwgMTE2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExOChwKSBCT09TVF9QUF9JSUYocCgxMTgpLCBCT09TVF9QUF9OT0RFXzExNywgQk9PU1RfUFBfTk9ERV8xMTkpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExNyhwKSBCT09TVF9QUF9JSUYocCgxMTcpLCAxMTcsIDExOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTE5KHApIEJPT1NUX1BQX0lJRihwKDExOSksIDExOSwgMTIwKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTI0KHApIEJPT1NUX1BQX0lJRihwKDEyNCksIEJPT1NUX1BQX05PREVfMTIyLCBCT09TVF9QUF9OT0RFXzEyNikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjIocCkgQk9PU1RfUFBfSUlGKHAoMTIyKSwgQk9PU1RfUFBfTk9ERV8xMjEsIEJPT1NUX1BQX05PREVfMTIzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjEocCkgQk9PU1RfUFBfSUlGKHAoMTIxKSwgMTIxLCAxMjIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyMyhwKSBCT09TVF9QUF9JSUYocCgxMjMpLCAxMjMsIDEyNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjYocCkgQk9PU1RfUFBfSUlGKHAoMTI2KSwgQk9PU1RfUFBfTk9ERV8xMjUsIEJPT1NUX1BQX05PREVfMTI3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjUocCkgQk9PU1RfUFBfSUlGKHAoMTI1KSwgMTI1LCAxMjYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyNyhwKSBCT09TVF9QUF9JSUYocCgxMjcpLCAxMjcsIDEyOCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTkyKHApIEJPT1NUX1BQX0lJRihwKDE5MiksIEJPT1NUX1BQX05PREVfMTYwLCBCT09TVF9QUF9OT0RFXzIyNCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2MChwKSBCT09TVF9QUF9JSUYocCgxNjApLCBCT09TVF9QUF9OT0RFXzE0NCwgQk9PU1RfUFBfTk9ERV8xNzYpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQ0KHApIEJPT1NUX1BQX0lJRihwKDE0NCksIEJPT1NUX1BQX05PREVfMTM2LCBCT09TVF9QUF9OT0RFXzE1MikKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTM2KHApIEJPT1NUX1BQX0lJRihwKDEzNiksIEJPT1NUX1BQX05PREVfMTMyLCBCT09TVF9QUF9OT0RFXzE0MCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzMihwKSBCT09TVF9QUF9JSUYocCgxMzIpLCBCT09TVF9QUF9OT0RFXzEzMCwgQk9PU1RfUFBfTk9ERV8xMzQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTMwKHApIEJPT1NUX1BQX0lJRihwKDEzMCksIEJPT1NUX1BQX05PREVfMTI5LCBCT09TVF9QUF9OT0RFXzEzMSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTI5KHApIEJPT1NUX1BQX0lJRihwKDEyOSksIDEyOSwgMTMwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMzEocCkgQk9PU1RfUFBfSUlGKHAoMTMxKSwgMTMxLCAxMzIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTM0KHApIEJPT1NUX1BQX0lJRihwKDEzNCksIEJPT1NUX1BQX05PREVfMTMzLCBCT09TVF9QUF9OT0RFXzEzNSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTMzKHApIEJPT1NUX1BQX0lJRihwKDEzMyksIDEzMywgMTM0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMzUocCkgQk9PU1RfUFBfSUlGKHAoMTM1KSwgMTM1LCAxMzYpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDAocCkgQk9PU1RfUFBfSUlGKHAoMTQwKSwgQk9PU1RfUFBfTk9ERV8xMzgsIEJPT1NUX1BQX05PREVfMTQyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzOChwKSBCT09TVF9QUF9JSUYocCgxMzgpLCBCT09TVF9QUF9OT0RFXzEzNywgQk9PU1RfUFBfTk9ERV8xMzkpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEzNyhwKSBCT09TVF9QUF9JSUYocCgxMzcpLCAxMzcsIDEzOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTM5KHApIEJPT1NUX1BQX0lJRihwKDEzOSksIDEzOSwgMTQwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0MihwKSBCT09TVF9QUF9JSUYocCgxNDIpLCBCT09TVF9QUF9OT0RFXzE0MSwgQk9PU1RfUFBfTk9ERV8xNDMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0MShwKSBCT09TVF9QUF9JSUYocCgxNDEpLCAxNDEsIDE0MikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQzKHApIEJPT1NUX1BQX0lJRihwKDE0MyksIDE0MywgMTQ0KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTIocCkgQk9PU1RfUFBfSUlGKHAoMTUyKSwgQk9PU1RfUFBfTk9ERV8xNDgsIEJPT1NUX1BQX05PREVfMTU2KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQ4KHApIEJPT1NUX1BQX0lJRihwKDE0OCksIEJPT1NUX1BQX05PREVfMTQ2LCBCT09TVF9QUF9OT0RFXzE1MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDYocCkgQk9PU1RfUFBfSUlGKHAoMTQ2KSwgQk9PU1RfUFBfTk9ERV8xNDUsIEJPT1NUX1BQX05PREVfMTQ3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDUocCkgQk9PU1RfUFBfSUlGKHAoMTQ1KSwgMTQ1LCAxNDYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0NyhwKSBCT09TVF9QUF9JSUYocCgxNDcpLCAxNDcsIDE0OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTAocCkgQk9PU1RfUFBfSUlGKHAoMTUwKSwgQk9PU1RfUFBfTk9ERV8xNDksIEJPT1NUX1BQX05PREVfMTUxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDkocCkgQk9PU1RfUFBfSUlGKHAoMTQ5KSwgMTQ5LCAxNTApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE1MShwKSBCT09TVF9QUF9JSUYocCgxNTEpLCAxNTEsIDE1MikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE1NihwKSBCT09TVF9QUF9JSUYocCgxNTYpLCBCT09TVF9QUF9OT0RFXzE1NCwgQk9PU1RfUFBfTk9ERV8xNTgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTU0KHApIEJPT1NUX1BQX0lJRihwKDE1NCksIEJPT1NUX1BQX05PREVfMTUzLCBCT09TVF9QUF9OT0RFXzE1NSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTUzKHApIEJPT1NUX1BQX0lJRihwKDE1MyksIDE1MywgMTU0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTUocCkgQk9PU1RfUFBfSUlGKHAoMTU1KSwgMTU1LCAxNTYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTU4KHApIEJPT1NUX1BQX0lJRihwKDE1OCksIEJPT1NUX1BQX05PREVfMTU3LCBCT09TVF9QUF9OT0RFXzE1OSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTU3KHApIEJPT1NUX1BQX0lJRihwKDE1NyksIDE1NywgMTU4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTkocCkgQk9PU1RfUFBfSUlGKHAoMTU5KSwgMTU5LCAxNjApCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTc2KHApIEJPT1NUX1BQX0lJRihwKDE3NiksIEJPT1NUX1BQX05PREVfMTY4LCBCT09TVF9QUF9OT0RFXzE4NCkKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTY4KHApIEJPT1NUX1BQX0lJRihwKDE2OCksIEJPT1NUX1BQX05PREVfMTY0LCBCT09TVF9QUF9OT0RFXzE3MikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2NChwKSBCT09TVF9QUF9JSUYocCgxNjQpLCBCT09TVF9QUF9OT0RFXzE2MiwgQk9PU1RfUFBfTk9ERV8xNjYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTYyKHApIEJPT1NUX1BQX0lJRihwKDE2MiksIEJPT1NUX1BQX05PREVfMTYxLCBCT09TVF9QUF9OT0RFXzE2MykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTYxKHApIEJPT1NUX1BQX0lJRihwKDE2MSksIDE2MSwgMTYyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjMocCkgQk9PU1RfUFBfSUlGKHAoMTYzKSwgMTYzLCAxNjQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTY2KHApIEJPT1NUX1BQX0lJRihwKDE2NiksIEJPT1NUX1BQX05PREVfMTY1LCBCT09TVF9QUF9OT0RFXzE2NykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTY1KHApIEJPT1NUX1BQX0lJRihwKDE2NSksIDE2NSwgMTY2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjcocCkgQk9PU1RfUFBfSUlGKHAoMTY3KSwgMTY3LCAxNjgpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzIocCkgQk9PU1RfUFBfSUlGKHAoMTcyKSwgQk9PU1RfUFBfTk9ERV8xNzAsIEJPT1NUX1BQX05PREVfMTc0KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE3MChwKSBCT09TVF9QUF9JSUYocCgxNzApLCBCT09TVF9QUF9OT0RFXzE2OSwgQk9PU1RfUFBfTk9ERV8xNzEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2OShwKSBCT09TVF9QUF9JSUYocCgxNjkpLCAxNjksIDE3MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTcxKHApIEJPT1NUX1BQX0lJRihwKDE3MSksIDE3MSwgMTcyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE3NChwKSBCT09TVF9QUF9JSUYocCgxNzQpLCBCT09TVF9QUF9OT0RFXzE3MywgQk9PU1RfUFBfTk9ERV8xNzUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE3MyhwKSBCT09TVF9QUF9JSUYocCgxNzMpLCAxNzMsIDE3NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTc1KHApIEJPT1NUX1BQX0lJRihwKDE3NSksIDE3NSwgMTc2KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xODQocCkgQk9PU1RfUFBfSUlGKHAoMTg0KSwgQk9PU1RfUFBfTk9ERV8xODAsIEJPT1NUX1BQX05PREVfMTg4KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTgwKHApIEJPT1NUX1BQX0lJRihwKDE4MCksIEJPT1NUX1BQX05PREVfMTc4LCBCT09TVF9QUF9OT0RFXzE4MikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzgocCkgQk9PU1RfUFBfSUlGKHAoMTc4KSwgQk9PU1RfUFBfTk9ERV8xNzcsIEJPT1NUX1BQX05PREVfMTc5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzcocCkgQk9PU1RfUFBfSUlGKHAoMTc3KSwgMTc3LCAxNzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE3OShwKSBCT09TVF9QUF9JSUYocCgxNzkpLCAxNzksIDE4MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xODIocCkgQk9PU1RfUFBfSUlGKHAoMTgyKSwgQk9PU1RfUFBfTk9ERV8xODEsIEJPT1NUX1BQX05PREVfMTgzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xODEocCkgQk9PU1RfUFBfSUlGKHAoMTgxKSwgMTgxLCAxODIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4MyhwKSBCT09TVF9QUF9JSUYocCgxODMpLCAxODMsIDE4NCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4OChwKSBCT09TVF9QUF9JSUYocCgxODgpLCBCT09TVF9QUF9OT0RFXzE4NiwgQk9PU1RfUFBfTk9ERV8xOTApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTg2KHApIEJPT1NUX1BQX0lJRihwKDE4NiksIEJPT1NUX1BQX05PREVfMTg1LCBCT09TVF9QUF9OT0RFXzE4NykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTg1KHApIEJPT1NUX1BQX0lJRihwKDE4NSksIDE4NSwgMTg2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xODcocCkgQk9PU1RfUFBfSUlGKHAoMTg3KSwgMTg3LCAxODgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTkwKHApIEJPT1NUX1BQX0lJRihwKDE5MCksIEJPT1NUX1BQX05PREVfMTg5LCBCT09TVF9QUF9OT0RFXzE5MSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTg5KHApIEJPT1NUX1BQX0lJRihwKDE4OSksIDE4OSwgMTkwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOTEocCkgQk9PU1RfUFBfSUlGKHAoMTkxKSwgMTkxLCAxOTIpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMjQocCkgQk9PU1RfUFBfSUlGKHAoMjI0KSwgQk9PU1RfUFBfTk9ERV8yMDgsIEJPT1NUX1BQX05PREVfMjQwKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwOChwKSBCT09TVF9QUF9JSUYocCgyMDgpLCBCT09TVF9QUF9OT0RFXzIwMCwgQk9PU1RfUFBfTk9ERV8yMTYpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwMChwKSBCT09TVF9QUF9JSUYocCgyMDApLCBCT09TVF9QUF9OT0RFXzE5NiwgQk9PU1RfUFBfTk9ERV8yMDQpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOTYocCkgQk9PU1RfUFBfSUlGKHAoMTk2KSwgQk9PU1RfUFBfTk9ERV8xOTQsIEJPT1NUX1BQX05PREVfMTk4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5NChwKSBCT09TVF9QUF9JSUYocCgxOTQpLCBCT09TVF9QUF9OT0RFXzE5MywgQk9PU1RfUFBfTk9ERV8xOTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5MyhwKSBCT09TVF9QUF9JSUYocCgxOTMpLCAxOTMsIDE5NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTk1KHApIEJPT1NUX1BQX0lJRihwKDE5NSksIDE5NSwgMTk2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5OChwKSBCT09TVF9QUF9JSUYocCgxOTgpLCBCT09TVF9QUF9OT0RFXzE5NywgQk9PU1RfUFBfTk9ERV8xOTkpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5NyhwKSBCT09TVF9QUF9JSUYocCgxOTcpLCAxOTcsIDE5OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTk5KHApIEJPT1NUX1BQX0lJRihwKDE5OSksIDE5OSwgMjAwKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjA0KHApIEJPT1NUX1BQX0lJRihwKDIwNCksIEJPT1NUX1BQX05PREVfMjAyLCBCT09TVF9QUF9OT0RFXzIwNikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDIocCkgQk9PU1RfUFBfSUlGKHAoMjAyKSwgQk9PU1RfUFBfTk9ERV8yMDEsIEJPT1NUX1BQX05PREVfMjAzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDEocCkgQk9PU1RfUFBfSUlGKHAoMjAxKSwgMjAxLCAyMDIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwMyhwKSBCT09TVF9QUF9JSUYocCgyMDMpLCAyMDMsIDIwNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDYocCkgQk9PU1RfUFBfSUlGKHAoMjA2KSwgQk9PU1RfUFBfTk9ERV8yMDUsIEJPT1NUX1BQX05PREVfMjA3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDUocCkgQk9PU1RfUFBfSUlGKHAoMjA1KSwgMjA1LCAyMDYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwNyhwKSBCT09TVF9QUF9JSUYocCgyMDcpLCAyMDcsIDIwOCkKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjE2KHApIEJPT1NUX1BQX0lJRihwKDIxNiksIEJPT1NUX1BQX05PREVfMjEyLCBCT09TVF9QUF9OT0RFXzIyMCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxMihwKSBCT09TVF9QUF9JSUYocCgyMTIpLCBCT09TVF9QUF9OT0RFXzIxMCwgQk9PU1RfUFBfTk9ERV8yMTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjEwKHApIEJPT1NUX1BQX0lJRihwKDIxMCksIEJPT1NUX1BQX05PREVfMjA5LCBCT09TVF9QUF9OT0RFXzIxMSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjA5KHApIEJPT1NUX1BQX0lJRihwKDIwOSksIDIwOSwgMjEwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMTEocCkgQk9PU1RfUFBfSUlGKHAoMjExKSwgMjExLCAyMTIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjE0KHApIEJPT1NUX1BQX0lJRihwKDIxNCksIEJPT1NUX1BQX05PREVfMjEzLCBCT09TVF9QUF9OT0RFXzIxNSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjEzKHApIEJPT1NUX1BQX0lJRihwKDIxMyksIDIxMywgMjE0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMTUocCkgQk9PU1RfUFBfSUlGKHAoMjE1KSwgMjE1LCAyMTYpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMjAocCkgQk9PU1RfUFBfSUlGKHAoMjIwKSwgQk9PU1RfUFBfTk9ERV8yMTgsIEJPT1NUX1BQX05PREVfMjIyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxOChwKSBCT09TVF9QUF9JSUYocCgyMTgpLCBCT09TVF9QUF9OT0RFXzIxNywgQk9PU1RfUFBfTk9ERV8yMTkpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIxNyhwKSBCT09TVF9QUF9JSUYocCgyMTcpLCAyMTcsIDIxOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjE5KHApIEJPT1NUX1BQX0lJRihwKDIxOSksIDIxOSwgMjIwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyMihwKSBCT09TVF9QUF9JSUYocCgyMjIpLCBCT09TVF9QUF9OT0RFXzIyMSwgQk9PU1RfUFBfTk9ERV8yMjMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyMShwKSBCT09TVF9QUF9JSUYocCgyMjEpLCAyMjEsIDIyMikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjIzKHApIEJPT1NUX1BQX0lJRihwKDIyMyksIDIyMywgMjI0KQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0MChwKSBCT09TVF9QUF9JSUYocCgyNDApLCBCT09TVF9QUF9OT0RFXzIzMiwgQk9PU1RfUFBfTk9ERV8yNDgpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIzMihwKSBCT09TVF9QUF9JSUYocCgyMzIpLCBCT09TVF9QUF9OT0RFXzIyOCwgQk9PU1RfUFBfTk9ERV8yMzYpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMjgocCkgQk9PU1RfUFBfSUlGKHAoMjI4KSwgQk9PU1RfUFBfTk9ERV8yMjYsIEJPT1NUX1BQX05PREVfMjMwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyNihwKSBCT09TVF9QUF9JSUYocCgyMjYpLCBCT09TVF9QUF9OT0RFXzIyNSwgQk9PU1RfUFBfTk9ERV8yMjcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyNShwKSBCT09TVF9QUF9JSUYocCgyMjUpLCAyMjUsIDIyNikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjI3KHApIEJPT1NUX1BQX0lJRihwKDIyNyksIDIyNywgMjI4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIzMChwKSBCT09TVF9QUF9JSUYocCgyMzApLCBCT09TVF9QUF9OT0RFXzIyOSwgQk9PU1RfUFBfTk9ERV8yMzEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyOShwKSBCT09TVF9QUF9JSUYocCgyMjkpLCAyMjksIDIzMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjMxKHApIEJPT1NUX1BQX0lJRihwKDIzMSksIDIzMSwgMjMyKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjM2KHApIEJPT1NUX1BQX0lJRihwKDIzNiksIEJPT1NUX1BQX05PREVfMjM0LCBCT09TVF9QUF9OT0RFXzIzOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMzQocCkgQk9PU1RfUFBfSUlGKHAoMjM0KSwgQk9PU1RfUFBfTk9ERV8yMzMsIEJPT1NUX1BQX05PREVfMjM1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMzMocCkgQk9PU1RfUFBfSUlGKHAoMjMzKSwgMjMzLCAyMzQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIzNShwKSBCT09TVF9QUF9JSUYocCgyMzUpLCAyMzUsIDIzNikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMzgocCkgQk9PU1RfUFBfSUlGKHAoMjM4KSwgQk9PU1RfUFBfTk9ERV8yMzcsIEJPT1NUX1BQX05PREVfMjM5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMzcocCkgQk9PU1RfUFBfSUlGKHAoMjM3KSwgMjM3LCAyMzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIzOShwKSBCT09TVF9QUF9JSUYocCgyMzkpLCAyMzksIDI0MCkKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQ4KHApIEJPT1NUX1BQX0lJRihwKDI0OCksIEJPT1NUX1BQX05PREVfMjQ0LCBCT09TVF9QUF9OT0RFXzI1MikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0NChwKSBCT09TVF9QUF9JSUYocCgyNDQpLCBCT09TVF9QUF9OT0RFXzI0MiwgQk9PU1RfUFBfTk9ERV8yNDYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQyKHApIEJPT1NUX1BQX0lJRihwKDI0MiksIEJPT1NUX1BQX05PREVfMjQxLCBCT09TVF9QUF9OT0RFXzI0MykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQxKHApIEJPT1NUX1BQX0lJRihwKDI0MSksIDI0MSwgMjQyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDMocCkgQk9PU1RfUFBfSUlGKHAoMjQzKSwgMjQzLCAyNDQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQ2KHApIEJPT1NUX1BQX0lJRihwKDI0NiksIEJPT1NUX1BQX05PREVfMjQ1LCBCT09TVF9QUF9OT0RFXzI0NykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQ1KHApIEJPT1NUX1BQX0lJRihwKDI0NSksIDI0NSwgMjQ2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDcocCkgQk9PU1RfUFBfSUlGKHAoMjQ3KSwgMjQ3LCAyNDgpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNTIocCkgQk9PU1RfUFBfSUlGKHAoMjUyKSwgQk9PU1RfUFBfTk9ERV8yNTAsIEJPT1NUX1BQX05PREVfMjU0KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI1MChwKSBCT09TVF9QUF9JSUYocCgyNTApLCBCT09TVF9QUF9OT0RFXzI0OSwgQk9PU1RfUFBfTk9ERV8yNTEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0OShwKSBCT09TVF9QUF9JSUYocCgyNDkpLCAyNDksIDI1MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjUxKHApIEJPT1NUX1BQX0lJRihwKDI1MSksIDI1MSwgMjUyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI1NChwKSBCT09TVF9QUF9JSUYocCgyNTQpLCBCT09TVF9QUF9OT0RFXzI1MywgQk9PU1RfUFBfTk9ERV8yNTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI1MyhwKSBCT09TVF9QUF9JSUYocCgyNTMpLCAyNTMsIDI1NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjU1KHApIEJPT1NUX1BQX0lJRihwKDI1NSksIDI1NSwgMjU2KQorIworIyBlbmRpZgorIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9jaGVjay5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2NoZWNrLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2Y4ZmY5Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9jaGVjay5ocHAKQEAgLTAsMCArMSw0OCBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9ERVRBSUxfQ0hFQ0tfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfREVUQUlMX0NIRUNLX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIworIyAvKiBCT09TVF9QUF9DSEVDSyAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9DSEVDSyh4LCB0eXBlKSBCT09TVF9QUF9DSEVDS19EKHgsIHR5cGUpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLKHgsIHR5cGUpIEJPT1NUX1BQX0NIRUNLX09PKCh4LCB0eXBlKSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLX09PKHBhcikgQk9PU1RfUFBfQ0hFQ0tfRCAjIyBwYXIKKyMgZW5kaWYKKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01TVkMoKSAmJiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRE1DKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLX0QoeCwgdHlwZSkgQk9PU1RfUFBfQ0hFQ0tfMShCT09TVF9QUF9DQVQoQk9PU1RfUFBfQ0hFQ0tfUkVTVUxUXywgdHlwZSB4KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLXzEoY2hrKSBCT09TVF9QUF9DSEVDS18yKGNoaykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLXzIocmVzLCBfKSByZXMKKyMgZWxpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLX0QoeCwgdHlwZSkgQk9PU1RfUFBfQ0hFQ0tfMSh0eXBlIHgpCisjICAgIGRlZmluZSBCT09TVF9QUF9DSEVDS18xKGNoaykgQk9PU1RfUFBfQ0hFQ0tfMihjaGspCisjICAgIGRlZmluZSBCT09TVF9QUF9DSEVDS18yKGNoaykgQk9PU1RfUFBfQ0hFQ0tfMygoQk9PU1RfUFBfQ0hFQ0tfUkVTVUxUXyAjIyBjaGspKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0hFQ0tfMyhpbSkgQk9PU1RfUFBfQ0hFQ0tfNShCT09TVF9QUF9DSEVDS180IGltKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0hFQ0tfNChyZXMsIF8pIHJlcworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0hFQ0tfNShyZXMpIHJlcworIyBlbHNlIC8qIERNQyAqLworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0hFQ0tfRCh4LCB0eXBlKSBCT09TVF9QUF9DSEVDS19PTygodHlwZSB4KSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLX09PKHBhcikgQk9PU1RfUFBfQ0hFQ0tfMCAjIyBwYXIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NIRUNLXzAoY2hrKSBCT09TVF9QUF9DSEVDS18xKEJPT1NUX1BQX0NBVChCT09TVF9QUF9DSEVDS19SRVNVTFRfLCBjaGspKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0hFQ0tfMShjaGspIEJPT1NUX1BQX0NIRUNLXzIoY2hrKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ0hFQ0tfMihyZXMsIF8pIHJlcworIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfQ0hFQ0tfUkVTVUxUXzEgMSwgQk9PU1RfUFBfTklMCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2RtYy9hdXRvX3JlYy5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvZGV0YWlsL2RtYy9hdXRvX3JlYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzdmYmUwNAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvZG1jL2F1dG9fcmVjLmhwcApAQCAtMCwwICsxLDI4NiBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9ERVRBSUxfQVVUT19SRUNfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfREVUQUlMX0FVVE9fUkVDX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwPgorIworIyAvKiBCT09TVF9QUF9BVVRPX1JFQyAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfQVVUT19SRUMocHJlZCwgbikgQk9PU1RfUFBfTk9ERV9FTlRSWV8gIyMgbihwcmVkKQorIworIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV9FTlRSWV8yNTYocCkgQk9PU1RfUFBfTk9ERV8xMjgocCkocCkocCkocCkocCkocCkocCkocCkKKyMgZGVmaW5lIEJPT1NUX1BQX05PREVfRU5UUllfMTI4KHApIEJPT1NUX1BQX05PREVfNjQocCkocCkocCkocCkocCkocCkocCkKKyMgZGVmaW5lIEJPT1NUX1BQX05PREVfRU5UUllfNjQocCkgQk9PU1RfUFBfTk9ERV8zMihwKShwKShwKShwKShwKShwKQorIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV9FTlRSWV8zMihwKSBCT09TVF9QUF9OT0RFXzE2KHApKHApKHApKHApKHApCisjIGRlZmluZSBCT09TVF9QUF9OT0RFX0VOVFJZXzE2KHApIEJPT1NUX1BQX05PREVfOChwKShwKShwKShwKQorIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV9FTlRSWV84KHApIEJPT1NUX1BQX05PREVfNChwKShwKShwKQorIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV9FTlRSWV80KHApIEJPT1NUX1BQX05PREVfMihwKShwKQorIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV9FTlRSWV8yKHApIEJPT1NUX1BQX05PREVfMShwKQorIworIyBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjgocCkgQk9PU1RfUFBfSUlGKHAjIygxMjgpLCBCT09TVF9QUF9OT0RFXzY0LCBCT09TVF9QUF9OT0RFXzE5MikKKyMgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNjQocCkgQk9PU1RfUFBfSUlGKHAjIyg2NCksIEJPT1NUX1BQX05PREVfMzIsIEJPT1NUX1BQX05PREVfOTYpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8zMihwKSBCT09TVF9QUF9JSUYocCMjKDMyKSwgQk9PU1RfUFBfTk9ERV8xNiwgQk9PU1RfUFBfTk9ERV80OCkKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNihwKSBCT09TVF9QUF9JSUYocCMjKDE2KSwgQk9PU1RfUFBfTk9ERV84LCBCT09TVF9QUF9OT0RFXzI0KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV84KHApIEJPT1NUX1BQX0lJRihwIyMoOCksIEJPT1NUX1BQX05PREVfNCwgQk9PU1RfUFBfTk9ERV8xMikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQocCkgQk9PU1RfUFBfSUlGKHAjIyg0KSwgQk9PU1RfUFBfTk9ERV8yLCBCT09TVF9QUF9OT0RFXzYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMihwKSBCT09TVF9QUF9JSUYocCMjKDIpLCBCT09TVF9QUF9OT0RFXzEsIEJPT1NUX1BQX05PREVfMykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMShwKSBCT09TVF9QUF9JSUYocCMjKDEpLCAxLCAyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8zKHApIEJPT1NUX1BQX0lJRihwIyMoMyksIDMsIDQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNihwKSBCT09TVF9QUF9JSUYocCMjKDYpLCBCT09TVF9QUF9OT0RFXzUsIEJPT1NUX1BQX05PREVfNykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNShwKSBCT09TVF9QUF9JSUYocCMjKDUpLCA1LCA2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV83KHApIEJPT1NUX1BQX0lJRihwIyMoNyksIDcsIDgpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMihwKSBCT09TVF9QUF9JSUYocCMjKDEyKSwgQk9PU1RfUFBfTk9ERV8xMCwgQk9PU1RfUFBfTk9ERV8xNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMChwKSBCT09TVF9QUF9JSUYocCMjKDEwKSwgQk9PU1RfUFBfTk9ERV85LCBCT09TVF9QUF9OT0RFXzExKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85KHApIEJPT1NUX1BQX0lJRihwIyMoOSksIDksIDEwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMShwKSBCT09TVF9QUF9JSUYocCMjKDExKSwgMTEsIDEyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0KHApIEJPT1NUX1BQX0lJRihwIyMoMTQpLCBCT09TVF9QUF9OT0RFXzEzLCBCT09TVF9QUF9OT0RFXzE1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMyhwKSBCT09TVF9QUF9JSUYocCMjKDEzKSwgMTMsIDE0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNShwKSBCT09TVF9QUF9JSUYocCMjKDE1KSwgMTUsIDE2KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNChwKSBCT09TVF9QUF9JSUYocCMjKDI0KSwgQk9PU1RfUFBfTk9ERV8yMCwgQk9PU1RfUFBfTk9ERV8yOCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwKHApIEJPT1NUX1BQX0lJRihwIyMoMjApLCBCT09TVF9QUF9OT0RFXzE4LCBCT09TVF9QUF9OT0RFXzIyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4KHApIEJPT1NUX1BQX0lJRihwIyMoMTgpLCBCT09TVF9QUF9OT0RFXzE3LCBCT09TVF9QUF9OT0RFXzE5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNyhwKSBCT09TVF9QUF9JSUYocCMjKDE3KSwgMTcsIDE4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOShwKSBCT09TVF9QUF9JSUYocCMjKDE5KSwgMTksIDIwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIyKHApIEJPT1NUX1BQX0lJRihwIyMoMjIpLCBCT09TVF9QUF9OT0RFXzIxLCBCT09TVF9QUF9OT0RFXzIzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMShwKSBCT09TVF9QUF9JSUYocCMjKDIxKSwgMjEsIDIyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMyhwKSBCT09TVF9QUF9JSUYocCMjKDIzKSwgMjMsIDI0KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjgocCkgQk9PU1RfUFBfSUlGKHAjIygyOCksIEJPT1NUX1BQX05PREVfMjYsIEJPT1NUX1BQX05PREVfMzApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjYocCkgQk9PU1RfUFBfSUlGKHAjIygyNiksIEJPT1NUX1BQX05PREVfMjUsIEJPT1NUX1BQX05PREVfMjcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI1KHApIEJPT1NUX1BQX0lJRihwIyMoMjUpLCAyNSwgMjYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI3KHApIEJPT1NUX1BQX0lJRihwIyMoMjcpLCAyNywgMjgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzAocCkgQk9PU1RfUFBfSUlGKHAjIygzMCksIEJPT1NUX1BQX05PREVfMjksIEJPT1NUX1BQX05PREVfMzEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI5KHApIEJPT1NUX1BQX0lJRihwIyMoMjkpLCAyOSwgMzApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzMxKHApIEJPT1NUX1BQX0lJRihwIyMoMzEpLCAzMSwgMzIpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDgocCkgQk9PU1RfUFBfSUlGKHAjIyg0OCksIEJPT1NUX1BQX05PREVfNDAsIEJPT1NUX1BQX05PREVfNTYpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzQwKHApIEJPT1NUX1BQX0lJRihwIyMoNDApLCBCT09TVF9QUF9OT0RFXzM2LCBCT09TVF9QUF9OT0RFXzQ0KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzYocCkgQk9PU1RfUFBfSUlGKHAjIygzNiksIEJPT1NUX1BQX05PREVfMzQsIEJPT1NUX1BQX05PREVfMzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzQocCkgQk9PU1RfUFBfSUlGKHAjIygzNCksIEJPT1NUX1BQX05PREVfMzMsIEJPT1NUX1BQX05PREVfMzUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzMzKHApIEJPT1NUX1BQX0lJRihwIyMoMzMpLCAzMywgMzQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzM1KHApIEJPT1NUX1BQX0lJRihwIyMoMzUpLCAzNSwgMzYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMzgocCkgQk9PU1RfUFBfSUlGKHAjIygzOCksIEJPT1NUX1BQX05PREVfMzcsIEJPT1NUX1BQX05PREVfMzkpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzM3KHApIEJPT1NUX1BQX0lJRihwIyMoMzcpLCAzNywgMzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzM5KHApIEJPT1NUX1BQX0lJRihwIyMoMzkpLCAzOSwgNDApCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV80NChwKSBCT09TVF9QUF9JSUYocCMjKDQ0KSwgQk9PU1RfUFBfTk9ERV80MiwgQk9PU1RfUFBfTk9ERV80NikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV80MihwKSBCT09TVF9QUF9JSUYocCMjKDQyKSwgQk9PU1RfUFBfTk9ERV80MSwgQk9PU1RfUFBfTk9ERV80MykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDEocCkgQk9PU1RfUFBfSUlGKHAjIyg0MSksIDQxLCA0MikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDMocCkgQk9PU1RfUFBfSUlGKHAjIyg0MyksIDQzLCA0NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV80NihwKSBCT09TVF9QUF9JSUYocCMjKDQ2KSwgQk9PU1RfUFBfTk9ERV80NSwgQk9PU1RfUFBfTk9ERV80NykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDUocCkgQk9PU1RfUFBfSUlGKHAjIyg0NSksIDQ1LCA0NikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDcocCkgQk9PU1RfUFBfSUlGKHAjIyg0NyksIDQ3LCA0OCkKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTYocCkgQk9PU1RfUFBfSUlGKHAjIyg1NiksIEJPT1NUX1BQX05PREVfNTIsIEJPT1NUX1BQX05PREVfNjApCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81MihwKSBCT09TVF9QUF9JSUYocCMjKDUyKSwgQk9PU1RfUFBfTk9ERV81MCwgQk9PU1RfUFBfTk9ERV81NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81MChwKSBCT09TVF9QUF9JSUYocCMjKDUwKSwgQk9PU1RfUFBfTk9ERV80OSwgQk9PU1RfUFBfTk9ERV81MSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNDkocCkgQk9PU1RfUFBfSUlGKHAjIyg0OSksIDQ5LCA1MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTEocCkgQk9PU1RfUFBfSUlGKHAjIyg1MSksIDUxLCA1MikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81NChwKSBCT09TVF9QUF9JSUYocCMjKDU0KSwgQk9PU1RfUFBfTk9ERV81MywgQk9PU1RfUFBfTk9ERV81NSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTMocCkgQk9PU1RfUFBfSUlGKHAjIyg1MyksIDUzLCA1NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNTUocCkgQk9PU1RfUFBfSUlGKHAjIyg1NSksIDU1LCA1NikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzYwKHApIEJPT1NUX1BQX0lJRihwIyMoNjApLCBCT09TVF9QUF9OT0RFXzU4LCBCT09TVF9QUF9OT0RFXzYyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzU4KHApIEJPT1NUX1BQX0lJRihwIyMoNTgpLCBCT09TVF9QUF9OT0RFXzU3LCBCT09TVF9QUF9OT0RFXzU5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81NyhwKSBCT09TVF9QUF9JSUYocCMjKDU3KSwgNTcsIDU4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV81OShwKSBCT09TVF9QUF9JSUYocCMjKDU5KSwgNTksIDYwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzYyKHApIEJPT1NUX1BQX0lJRihwIyMoNjIpLCBCT09TVF9QUF9OT0RFXzYxLCBCT09TVF9QUF9OT0RFXzYzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82MShwKSBCT09TVF9QUF9JSUYocCMjKDYxKSwgNjEsIDYyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82MyhwKSBCT09TVF9QUF9JSUYocCMjKDYzKSwgNjMsIDY0KQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTYocCkgQk9PU1RfUFBfSUlGKHAjIyg5NiksIEJPT1NUX1BQX05PREVfODAsIEJPT1NUX1BQX05PREVfMTEyKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzgwKHApIEJPT1NUX1BQX0lJRihwIyMoODApLCBCT09TVF9QUF9OT0RFXzcyLCBCT09TVF9QUF9OT0RFXzg4KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV83MihwKSBCT09TVF9QUF9JSUYocCMjKDcyKSwgQk9PU1RfUFBfTk9ERV82OCwgQk9PU1RfUFBfTk9ERV83NikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzY4KHApIEJPT1NUX1BQX0lJRihwIyMoNjgpLCBCT09TVF9QUF9OT0RFXzY2LCBCT09TVF9QUF9OT0RFXzcwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzY2KHApIEJPT1NUX1BQX0lJRihwIyMoNjYpLCBCT09TVF9QUF9OT0RFXzY1LCBCT09TVF9QUF9OT0RFXzY3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82NShwKSBCT09TVF9QUF9JSUYocCMjKDY1KSwgNjUsIDY2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82NyhwKSBCT09TVF9QUF9JSUYocCMjKDY3KSwgNjcsIDY4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzcwKHApIEJPT1NUX1BQX0lJRihwIyMoNzApLCBCT09TVF9QUF9OT0RFXzY5LCBCT09TVF9QUF9OT0RFXzcxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV82OShwKSBCT09TVF9QUF9JSUYocCMjKDY5KSwgNjksIDcwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV83MShwKSBCT09TVF9QUF9JSUYocCMjKDcxKSwgNzEsIDcyKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzYocCkgQk9PU1RfUFBfSUlGKHAjIyg3NiksIEJPT1NUX1BQX05PREVfNzQsIEJPT1NUX1BQX05PREVfNzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzQocCkgQk9PU1RfUFBfSUlGKHAjIyg3NCksIEJPT1NUX1BQX05PREVfNzMsIEJPT1NUX1BQX05PREVfNzUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzczKHApIEJPT1NUX1BQX0lJRihwIyMoNzMpLCA3MywgNzQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzc1KHApIEJPT1NUX1BQX0lJRihwIyMoNzUpLCA3NSwgNzYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfNzgocCkgQk9PU1RfUFBfSUlGKHAjIyg3OCksIEJPT1NUX1BQX05PREVfNzcsIEJPT1NUX1BQX05PREVfNzkpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzc3KHApIEJPT1NUX1BQX0lJRihwIyMoNzcpLCA3NywgNzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzc5KHApIEJPT1NUX1BQX0lJRihwIyMoNzkpLCA3OSwgODApCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzg4KHApIEJPT1NUX1BQX0lJRihwIyMoODgpLCBCT09TVF9QUF9OT0RFXzg0LCBCT09TVF9QUF9OT0RFXzkyKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfODQocCkgQk9PU1RfUFBfSUlGKHAjIyg4NCksIEJPT1NUX1BQX05PREVfODIsIEJPT1NUX1BQX05PREVfODYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfODIocCkgQk9PU1RfUFBfSUlGKHAjIyg4MiksIEJPT1NUX1BQX05PREVfODEsIEJPT1NUX1BQX05PREVfODMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzgxKHApIEJPT1NUX1BQX0lJRihwIyMoODEpLCA4MSwgODIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzgzKHApIEJPT1NUX1BQX0lJRihwIyMoODMpLCA4MywgODQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfODYocCkgQk9PU1RfUFBfSUlGKHAjIyg4NiksIEJPT1NUX1BQX05PREVfODUsIEJPT1NUX1BQX05PREVfODcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzg1KHApIEJPT1NUX1BQX0lJRihwIyMoODUpLCA4NSwgODYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzg3KHApIEJPT1NUX1BQX0lJRihwIyMoODcpLCA4NywgODgpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85MihwKSBCT09TVF9QUF9JSUYocCMjKDkyKSwgQk9PU1RfUFBfTk9ERV85MCwgQk9PU1RfUFBfTk9ERV85NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85MChwKSBCT09TVF9QUF9JSUYocCMjKDkwKSwgQk9PU1RfUFBfTk9ERV84OSwgQk9PU1RfUFBfTk9ERV85MSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfODkocCkgQk9PU1RfUFBfSUlGKHAjIyg4OSksIDg5LCA5MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTEocCkgQk9PU1RfUFBfSUlGKHAjIyg5MSksIDkxLCA5MikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85NChwKSBCT09TVF9QUF9JSUYocCMjKDk0KSwgQk9PU1RfUFBfTk9ERV85MywgQk9PU1RfUFBfTk9ERV85NSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTMocCkgQk9PU1RfUFBfSUlGKHAjIyg5MyksIDkzLCA5NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfOTUocCkgQk9PU1RfUFBfSUlGKHAjIyg5NSksIDk1LCA5NikKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTIocCkgQk9PU1RfUFBfSUlGKHAjIygxMTIpLCBCT09TVF9QUF9OT0RFXzEwNCwgQk9PU1RfUFBfTk9ERV8xMjApCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEwNChwKSBCT09TVF9QUF9JSUYocCMjKDEwNCksIEJPT1NUX1BQX05PREVfMTAwLCBCT09TVF9QUF9OT0RFXzEwOCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEwMChwKSBCT09TVF9QUF9JSUYocCMjKDEwMCksIEJPT1NUX1BQX05PREVfOTgsIEJPT1NUX1BQX05PREVfMTAyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzk4KHApIEJPT1NUX1BQX0lJRihwIyMoOTgpLCBCT09TVF9QUF9OT0RFXzk3LCBCT09TVF9QUF9OT0RFXzk5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85NyhwKSBCT09TVF9QUF9JSUYocCMjKDk3KSwgOTcsIDk4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV85OShwKSBCT09TVF9QUF9JSUYocCMjKDk5KSwgOTksIDEwMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDIocCkgQk9PU1RfUFBfSUlGKHAjIygxMDIpLCBCT09TVF9QUF9OT0RFXzEwMSwgQk9PU1RfUFBfTk9ERV8xMDMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEwMShwKSBCT09TVF9QUF9JSUYocCMjKDEwMSksIDEwMSwgMTAyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDMocCkgQk9PU1RfUFBfSUlGKHAjIygxMDMpLCAxMDMsIDEwNCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEwOChwKSBCT09TVF9QUF9JSUYocCMjKDEwOCksIEJPT1NUX1BQX05PREVfMTA2LCBCT09TVF9QUF9OT0RFXzExMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDYocCkgQk9PU1RfUFBfSUlGKHAjIygxMDYpLCBCT09TVF9QUF9OT0RFXzEwNSwgQk9PU1RfUFBfTk9ERV8xMDcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEwNShwKSBCT09TVF9QUF9JSUYocCMjKDEwNSksIDEwNSwgMTA2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMDcocCkgQk9PU1RfUFBfSUlGKHAjIygxMDcpLCAxMDcsIDEwOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTAocCkgQk9PU1RfUFBfSUlGKHAjIygxMTApLCBCT09TVF9QUF9OT0RFXzEwOSwgQk9PU1RfUFBfTk9ERV8xMTEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEwOShwKSBCT09TVF9QUF9JSUYocCMjKDEwOSksIDEwOSwgMTEwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMTEocCkgQk9PU1RfUFBfSUlGKHAjIygxMTEpLCAxMTEsIDExMikKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTIwKHApIEJPT1NUX1BQX0lJRihwIyMoMTIwKSwgQk9PU1RfUFBfTk9ERV8xMTYsIEJPT1NUX1BQX05PREVfMTI0KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTE2KHApIEJPT1NUX1BQX0lJRihwIyMoMTE2KSwgQk9PU1RfUFBfTk9ERV8xMTQsIEJPT1NUX1BQX05PREVfMTE4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExNChwKSBCT09TVF9QUF9JSUYocCMjKDExNCksIEJPT1NUX1BQX05PREVfMTEzLCBCT09TVF9QUF9OT0RFXzExNSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTEzKHApIEJPT1NUX1BQX0lJRihwIyMoMTEzKSwgMTEzLCAxMTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExNShwKSBCT09TVF9QUF9JSUYocCMjKDExNSksIDExNSwgMTE2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExOChwKSBCT09TVF9QUF9JSUYocCMjKDExOCksIEJPT1NUX1BQX05PREVfMTE3LCBCT09TVF9QUF9OT0RFXzExOSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTE3KHApIEJPT1NUX1BQX0lJRihwIyMoMTE3KSwgMTE3LCAxMTgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzExOShwKSBCT09TVF9QUF9JSUYocCMjKDExOSksIDExOSwgMTIwKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTI0KHApIEJPT1NUX1BQX0lJRihwIyMoMTI0KSwgQk9PU1RfUFBfTk9ERV8xMjIsIEJPT1NUX1BQX05PREVfMTI2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyMihwKSBCT09TVF9QUF9JSUYocCMjKDEyMiksIEJPT1NUX1BQX05PREVfMTIxLCBCT09TVF9QUF9OT0RFXzEyMykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTIxKHApIEJPT1NUX1BQX0lJRihwIyMoMTIxKSwgMTIxLCAxMjIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyMyhwKSBCT09TVF9QUF9JSUYocCMjKDEyMyksIDEyMywgMTI0KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyNihwKSBCT09TVF9QUF9JSUYocCMjKDEyNiksIEJPT1NUX1BQX05PREVfMTI1LCBCT09TVF9QUF9OT0RFXzEyNykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTI1KHApIEJPT1NUX1BQX0lJRihwIyMoMTI1KSwgMTI1LCAxMjYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzEyNyhwKSBCT09TVF9QUF9JSUYocCMjKDEyNyksIDEyNywgMTI4KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xOTIocCkgQk9PU1RfUFBfSUlGKHAjIygxOTIpLCBCT09TVF9QUF9OT0RFXzE2MCwgQk9PU1RfUFBfTk9ERV8yMjQpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjAocCkgQk9PU1RfUFBfSUlGKHAjIygxNjApLCBCT09TVF9QUF9OT0RFXzE0NCwgQk9PU1RfUFBfTk9ERV8xNzYpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQ0KHApIEJPT1NUX1BQX0lJRihwIyMoMTQ0KSwgQk9PU1RfUFBfTk9ERV8xMzYsIEJPT1NUX1BQX05PREVfMTUyKQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMzYocCkgQk9PU1RfUFBfSUlGKHAjIygxMzYpLCBCT09TVF9QUF9OT0RFXzEzMiwgQk9PU1RfUFBfTk9ERV8xNDApCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMzIocCkgQk9PU1RfUFBfSUlGKHAjIygxMzIpLCBCT09TVF9QUF9OT0RFXzEzMCwgQk9PU1RfUFBfTk9ERV8xMzQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTMwKHApIEJPT1NUX1BQX0lJRihwIyMoMTMwKSwgQk9PU1RfUFBfTk9ERV8xMjksIEJPT1NUX1BQX05PREVfMTMxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMjkocCkgQk9PU1RfUFBfSUlGKHAjIygxMjkpLCAxMjksIDEzMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTMxKHApIEJPT1NUX1BQX0lJRihwIyMoMTMxKSwgMTMxLCAxMzIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTM0KHApIEJPT1NUX1BQX0lJRihwIyMoMTM0KSwgQk9PU1RfUFBfTk9ERV8xMzMsIEJPT1NUX1BQX05PREVfMTM1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMzMocCkgQk9PU1RfUFBfSUlGKHAjIygxMzMpLCAxMzMsIDEzNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTM1KHApIEJPT1NUX1BQX0lJRihwIyMoMTM1KSwgMTM1LCAxMzYpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDAocCkgQk9PU1RfUFBfSUlGKHAjIygxNDApLCBCT09TVF9QUF9OT0RFXzEzOCwgQk9PU1RfUFBfTk9ERV8xNDIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTM4KHApIEJPT1NUX1BQX0lJRihwIyMoMTM4KSwgQk9PU1RfUFBfTk9ERV8xMzcsIEJPT1NUX1BQX05PREVfMTM5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xMzcocCkgQk9PU1RfUFBfSUlGKHAjIygxMzcpLCAxMzcsIDEzOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTM5KHApIEJPT1NUX1BQX0lJRihwIyMoMTM5KSwgMTM5LCAxNDApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQyKHApIEJPT1NUX1BQX0lJRihwIyMoMTQyKSwgQk9PU1RfUFBfTk9ERV8xNDEsIEJPT1NUX1BQX05PREVfMTQzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDEocCkgQk9PU1RfUFBfSUlGKHAjIygxNDEpLCAxNDEsIDE0MikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTQzKHApIEJPT1NUX1BQX0lJRihwIyMoMTQzKSwgMTQzLCAxNDQpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE1MihwKSBCT09TVF9QUF9JSUYocCMjKDE1MiksIEJPT1NUX1BQX05PREVfMTQ4LCBCT09TVF9QUF9OT0RFXzE1NikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0OChwKSBCT09TVF9QUF9JSUYocCMjKDE0OCksIEJPT1NUX1BQX05PREVfMTQ2LCBCT09TVF9QUF9OT0RFXzE1MCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDYocCkgQk9PU1RfUFBfSUlGKHAjIygxNDYpLCBCT09TVF9QUF9OT0RFXzE0NSwgQk9PU1RfUFBfTk9ERV8xNDcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0NShwKSBCT09TVF9QUF9JSUYocCMjKDE0NSksIDE0NSwgMTQ2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNDcocCkgQk9PU1RfUFBfSUlGKHAjIygxNDcpLCAxNDcsIDE0OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTAocCkgQk9PU1RfUFBfSUlGKHAjIygxNTApLCBCT09TVF9QUF9OT0RFXzE0OSwgQk9PU1RfUFBfTk9ERV8xNTEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE0OShwKSBCT09TVF9QUF9JSUYocCMjKDE0OSksIDE0OSwgMTUwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTEocCkgQk9PU1RfUFBfSUlGKHAjIygxNTEpLCAxNTEsIDE1MikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE1NihwKSBCT09TVF9QUF9JSUYocCMjKDE1NiksIEJPT1NUX1BQX05PREVfMTU0LCBCT09TVF9QUF9OT0RFXzE1OCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTQocCkgQk9PU1RfUFBfSUlGKHAjIygxNTQpLCBCT09TVF9QUF9OT0RFXzE1MywgQk9PU1RfUFBfTk9ERV8xNTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE1MyhwKSBCT09TVF9QUF9JSUYocCMjKDE1MyksIDE1MywgMTU0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTUocCkgQk9PU1RfUFBfSUlGKHAjIygxNTUpLCAxNTUsIDE1NikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTgocCkgQk9PU1RfUFBfSUlGKHAjIygxNTgpLCBCT09TVF9QUF9OT0RFXzE1NywgQk9PU1RfUFBfTk9ERV8xNTkpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE1NyhwKSBCT09TVF9QUF9JSUYocCMjKDE1NyksIDE1NywgMTU4KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNTkocCkgQk9PU1RfUFBfSUlGKHAjIygxNTkpLCAxNTksIDE2MCkKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzYocCkgQk9PU1RfUFBfSUlGKHAjIygxNzYpLCBCT09TVF9QUF9OT0RFXzE2OCwgQk9PU1RfUFBfTk9ERV8xODQpCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2OChwKSBCT09TVF9QUF9JSUYocCMjKDE2OCksIEJPT1NUX1BQX05PREVfMTY0LCBCT09TVF9QUF9OT0RFXzE3MikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2NChwKSBCT09TVF9QUF9JSUYocCMjKDE2NCksIEJPT1NUX1BQX05PREVfMTYyLCBCT09TVF9QUF9OT0RFXzE2NikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjIocCkgQk9PU1RfUFBfSUlGKHAjIygxNjIpLCBCT09TVF9QUF9OT0RFXzE2MSwgQk9PU1RfUFBfTk9ERV8xNjMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2MShwKSBCT09TVF9QUF9JSUYocCMjKDE2MSksIDE2MSwgMTYyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjMocCkgQk9PU1RfUFBfSUlGKHAjIygxNjMpLCAxNjMsIDE2NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjYocCkgQk9PU1RfUFBfSUlGKHAjIygxNjYpLCBCT09TVF9QUF9OT0RFXzE2NSwgQk9PU1RfUFBfTk9ERV8xNjcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2NShwKSBCT09TVF9QUF9JSUYocCMjKDE2NSksIDE2NSwgMTY2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNjcocCkgQk9PU1RfUFBfSUlGKHAjIygxNjcpLCAxNjcsIDE2OCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE3MihwKSBCT09TVF9QUF9JSUYocCMjKDE3MiksIEJPT1NUX1BQX05PREVfMTcwLCBCT09TVF9QUF9OT0RFXzE3NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzAocCkgQk9PU1RfUFBfSUlGKHAjIygxNzApLCBCT09TVF9QUF9OT0RFXzE2OSwgQk9PU1RfUFBfTk9ERV8xNzEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE2OShwKSBCT09TVF9QUF9JSUYocCMjKDE2OSksIDE2OSwgMTcwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzEocCkgQk9PU1RfUFBfSUlGKHAjIygxNzEpLCAxNzEsIDE3MikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzQocCkgQk9PU1RfUFBfSUlGKHAjIygxNzQpLCBCT09TVF9QUF9OT0RFXzE3MywgQk9PU1RfUFBfTk9ERV8xNzUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE3MyhwKSBCT09TVF9QUF9JSUYocCMjKDE3MyksIDE3MywgMTc0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8xNzUocCkgQk9PU1RfUFBfSUlGKHAjIygxNzUpLCAxNzUsIDE3NikKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTg0KHApIEJPT1NUX1BQX0lJRihwIyMoMTg0KSwgQk9PU1RfUFBfTk9ERV8xODAsIEJPT1NUX1BQX05PREVfMTg4KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTgwKHApIEJPT1NUX1BQX0lJRihwIyMoMTgwKSwgQk9PU1RfUFBfTk9ERV8xNzgsIEJPT1NUX1BQX05PREVfMTgyKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE3OChwKSBCT09TVF9QUF9JSUYocCMjKDE3OCksIEJPT1NUX1BQX05PREVfMTc3LCBCT09TVF9QUF9OT0RFXzE3OSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTc3KHApIEJPT1NUX1BQX0lJRihwIyMoMTc3KSwgMTc3LCAxNzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE3OShwKSBCT09TVF9QUF9JSUYocCMjKDE3OSksIDE3OSwgMTgwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4MihwKSBCT09TVF9QUF9JSUYocCMjKDE4MiksIEJPT1NUX1BQX05PREVfMTgxLCBCT09TVF9QUF9OT0RFXzE4MykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTgxKHApIEJPT1NUX1BQX0lJRihwIyMoMTgxKSwgMTgxLCAxODIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4MyhwKSBCT09TVF9QUF9JSUYocCMjKDE4MyksIDE4MywgMTg0KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTg4KHApIEJPT1NUX1BQX0lJRihwIyMoMTg4KSwgQk9PU1RfUFBfTk9ERV8xODYsIEJPT1NUX1BQX05PREVfMTkwKQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4NihwKSBCT09TVF9QUF9JSUYocCMjKDE4NiksIEJPT1NUX1BQX05PREVfMTg1LCBCT09TVF9QUF9OT0RFXzE4NykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTg1KHApIEJPT1NUX1BQX0lJRihwIyMoMTg1KSwgMTg1LCAxODYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE4NyhwKSBCT09TVF9QUF9JSUYocCMjKDE4NyksIDE4NywgMTg4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5MChwKSBCT09TVF9QUF9JSUYocCMjKDE5MCksIEJPT1NUX1BQX05PREVfMTg5LCBCT09TVF9QUF9OT0RFXzE5MSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTg5KHApIEJPT1NUX1BQX0lJRihwIyMoMTg5KSwgMTg5LCAxOTApCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5MShwKSBCT09TVF9QUF9JSUYocCMjKDE5MSksIDE5MSwgMTkyKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjI0KHApIEJPT1NUX1BQX0lJRihwIyMoMjI0KSwgQk9PU1RfUFBfTk9ERV8yMDgsIEJPT1NUX1BQX05PREVfMjQwKQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwOChwKSBCT09TVF9QUF9JSUYocCMjKDIwOCksIEJPT1NUX1BQX05PREVfMjAwLCBCT09TVF9QUF9OT0RFXzIxNikKKyMgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjAwKHApIEJPT1NUX1BQX0lJRihwIyMoMjAwKSwgQk9PU1RfUFBfTk9ERV8xOTYsIEJPT1NUX1BQX05PREVfMjA0KQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTk2KHApIEJPT1NUX1BQX0lJRihwIyMoMTk2KSwgQk9PU1RfUFBfTk9ERV8xOTQsIEJPT1NUX1BQX05PREVfMTk4KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5NChwKSBCT09TVF9QUF9JSUYocCMjKDE5NCksIEJPT1NUX1BQX05PREVfMTkzLCBCT09TVF9QUF9OT0RFXzE5NSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTkzKHApIEJPT1NUX1BQX0lJRihwIyMoMTkzKSwgMTkzLCAxOTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5NShwKSBCT09TVF9QUF9JSUYocCMjKDE5NSksIDE5NSwgMTk2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5OChwKSBCT09TVF9QUF9JSUYocCMjKDE5OCksIEJPT1NUX1BQX05PREVfMTk3LCBCT09TVF9QUF9OT0RFXzE5OSkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMTk3KHApIEJPT1NUX1BQX0lJRihwIyMoMTk3KSwgMTk3LCAxOTgpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzE5OShwKSBCT09TVF9QUF9JSUYocCMjKDE5OSksIDE5OSwgMjAwKQorIyAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjA0KHApIEJPT1NUX1BQX0lJRihwIyMoMjA0KSwgQk9PU1RfUFBfTk9ERV8yMDIsIEJPT1NUX1BQX05PREVfMjA2KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwMihwKSBCT09TVF9QUF9JSUYocCMjKDIwMiksIEJPT1NUX1BQX05PREVfMjAxLCBCT09TVF9QUF9OT0RFXzIwMykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjAxKHApIEJPT1NUX1BQX0lJRihwIyMoMjAxKSwgMjAxLCAyMDIpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwMyhwKSBCT09TVF9QUF9JSUYocCMjKDIwMyksIDIwMywgMjA0KQorIyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwNihwKSBCT09TVF9QUF9JSUYocCMjKDIwNiksIEJPT1NUX1BQX05PREVfMjA1LCBCT09TVF9QUF9OT0RFXzIwNykKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjA1KHApIEJPT1NUX1BQX0lJRihwIyMoMjA1KSwgMjA1LCAyMDYpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzIwNyhwKSBCT09TVF9QUF9JSUYocCMjKDIwNyksIDIwNywgMjA4KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMTYocCkgQk9PU1RfUFBfSUlGKHAjIygyMTYpLCBCT09TVF9QUF9OT0RFXzIxMiwgQk9PU1RfUFBfTk9ERV8yMjApCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMTIocCkgQk9PU1RfUFBfSUlGKHAjIygyMTIpLCBCT09TVF9QUF9OT0RFXzIxMCwgQk9PU1RfUFBfTk9ERV8yMTQpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjEwKHApIEJPT1NUX1BQX0lJRihwIyMoMjEwKSwgQk9PU1RfUFBfTk9ERV8yMDksIEJPT1NUX1BQX05PREVfMjExKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMDkocCkgQk9PU1RfUFBfSUlGKHAjIygyMDkpLCAyMDksIDIxMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjExKHApIEJPT1NUX1BQX0lJRihwIyMoMjExKSwgMjExLCAyMTIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjE0KHApIEJPT1NUX1BQX0lJRihwIyMoMjE0KSwgQk9PU1RfUFBfTk9ERV8yMTMsIEJPT1NUX1BQX05PREVfMjE1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMTMocCkgQk9PU1RfUFBfSUlGKHAjIygyMTMpLCAyMTMsIDIxNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjE1KHApIEJPT1NUX1BQX0lJRihwIyMoMjE1KSwgMjE1LCAyMTYpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMjAocCkgQk9PU1RfUFBfSUlGKHAjIygyMjApLCBCT09TVF9QUF9OT0RFXzIxOCwgQk9PU1RfUFBfTk9ERV8yMjIpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjE4KHApIEJPT1NUX1BQX0lJRihwIyMoMjE4KSwgQk9PU1RfUFBfTk9ERV8yMTcsIEJPT1NUX1BQX05PREVfMjE5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMTcocCkgQk9PU1RfUFBfSUlGKHAjIygyMTcpLCAyMTcsIDIxOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjE5KHApIEJPT1NUX1BQX0lJRihwIyMoMjE5KSwgMjE5LCAyMjApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjIyKHApIEJPT1NUX1BQX0lJRihwIyMoMjIyKSwgQk9PU1RfUFBfTk9ERV8yMjEsIEJPT1NUX1BQX05PREVfMjIzKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMjEocCkgQk9PU1RfUFBfSUlGKHAjIygyMjEpLCAyMjEsIDIyMikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjIzKHApIEJPT1NUX1BQX0lJRihwIyMoMjIzKSwgMjIzLCAyMjQpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjQwKHApIEJPT1NUX1BQX0lJRihwIyMoMjQwKSwgQk9PU1RfUFBfTk9ERV8yMzIsIEJPT1NUX1BQX05PREVfMjQ4KQorIyAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMzIocCkgQk9PU1RfUFBfSUlGKHAjIygyMzIpLCBCT09TVF9QUF9OT0RFXzIyOCwgQk9PU1RfUFBfTk9ERV8yMzYpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMjgocCkgQk9PU1RfUFBfSUlGKHAjIygyMjgpLCBCT09TVF9QUF9OT0RFXzIyNiwgQk9PU1RfUFBfTk9ERV8yMzApCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjI2KHApIEJPT1NUX1BQX0lJRihwIyMoMjI2KSwgQk9PU1RfUFBfTk9ERV8yMjUsIEJPT1NUX1BQX05PREVfMjI3KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMjUocCkgQk9PU1RfUFBfSUlGKHAjIygyMjUpLCAyMjUsIDIyNikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjI3KHApIEJPT1NUX1BQX0lJRihwIyMoMjI3KSwgMjI3LCAyMjgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjMwKHApIEJPT1NUX1BQX0lJRihwIyMoMjMwKSwgQk9PU1RfUFBfTk9ERV8yMjksIEJPT1NUX1BQX05PREVfMjMxKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMjkocCkgQk9PU1RfUFBfSUlGKHAjIygyMjkpLCAyMjksIDIzMCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjMxKHApIEJPT1NUX1BQX0lJRihwIyMoMjMxKSwgMjMxLCAyMzIpCisjICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMzYocCkgQk9PU1RfUFBfSUlGKHAjIygyMzYpLCBCT09TVF9QUF9OT0RFXzIzNCwgQk9PU1RfUFBfTk9ERV8yMzgpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjM0KHApIEJPT1NUX1BQX0lJRihwIyMoMjM0KSwgQk9PU1RfUFBfTk9ERV8yMzMsIEJPT1NUX1BQX05PREVfMjM1KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMzMocCkgQk9PU1RfUFBfSUlGKHAjIygyMzMpLCAyMzMsIDIzNCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjM1KHApIEJPT1NUX1BQX0lJRihwIyMoMjM1KSwgMjM1LCAyMzYpCisjICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjM4KHApIEJPT1NUX1BQX0lJRihwIyMoMjM4KSwgQk9PU1RfUFBfTk9ERV8yMzcsIEJPT1NUX1BQX05PREVfMjM5KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yMzcocCkgQk9PU1RfUFBfSUlGKHAjIygyMzcpLCAyMzcsIDIzOCkKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX05PREVfMjM5KHApIEJPT1NUX1BQX0lJRihwIyMoMjM5KSwgMjM5LCAyNDApCisjICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0OChwKSBCT09TVF9QUF9JSUYocCMjKDI0OCksIEJPT1NUX1BQX05PREVfMjQ0LCBCT09TVF9QUF9OT0RFXzI1MikKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0NChwKSBCT09TVF9QUF9JSUYocCMjKDI0NCksIEJPT1NUX1BQX05PREVfMjQyLCBCT09TVF9QUF9OT0RFXzI0NikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDIocCkgQk9PU1RfUFBfSUlGKHAjIygyNDIpLCBCT09TVF9QUF9OT0RFXzI0MSwgQk9PU1RfUFBfTk9ERV8yNDMpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0MShwKSBCT09TVF9QUF9JSUYocCMjKDI0MSksIDI0MSwgMjQyKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDMocCkgQk9PU1RfUFBfSUlGKHAjIygyNDMpLCAyNDMsIDI0NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDYocCkgQk9PU1RfUFBfSUlGKHAjIygyNDYpLCBCT09TVF9QUF9OT0RFXzI0NSwgQk9PU1RfUFBfTk9ERV8yNDcpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0NShwKSBCT09TVF9QUF9JSUYocCMjKDI0NSksIDI0NSwgMjQ2KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNDcocCkgQk9PU1RfUFBfSUlGKHAjIygyNDcpLCAyNDcsIDI0OCkKKyMgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI1MihwKSBCT09TVF9QUF9JSUYocCMjKDI1MiksIEJPT1NUX1BQX05PREVfMjUwLCBCT09TVF9QUF9OT0RFXzI1NCkKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNTAocCkgQk9PU1RfUFBfSUlGKHAjIygyNTApLCBCT09TVF9QUF9OT0RFXzI0OSwgQk9PU1RfUFBfTk9ERV8yNTEpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI0OShwKSBCT09TVF9QUF9JSUYocCMjKDI0OSksIDI0OSwgMjUwKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNTEocCkgQk9PU1RfUFBfSUlGKHAjIygyNTEpLCAyNTEsIDI1MikKKyMgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNTQocCkgQk9PU1RfUFBfSUlGKHAjIygyNTQpLCBCT09TVF9QUF9OT0RFXzI1MywgQk9PU1RfUFBfTk9ERV8yNTUpCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9OT0RFXzI1MyhwKSBCT09TVF9QUF9JSUYocCMjKDI1MyksIDI1MywgMjU0KQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTk9ERV8yNTUocCkgQk9PU1RfUFBfSUlGKHAjIygyNTUpLCAyNTUsIDI1NikKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvaXNfYmluYXJ5LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvaXNfYmluYXJ5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDI4ODMzCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9pc19iaW5hcnkuaHBwCkBAIC0wLDAgKzEsMzAgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfREVUQUlMX0lTX0JJTkFSWV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9ERVRBSUxfSVNfQklOQVJZX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvY2hlY2suaHBwPgorIworIyAvKiBCT09TVF9QUF9JU19CSU5BUlkgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9JU19CSU5BUlkoeCkgQk9PU1RfUFBfQ0hFQ0soeCwgQk9PU1RfUFBfSVNfQklOQVJZX0NIRUNLKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JU19CSU5BUlkoeCkgQk9PU1RfUFBfSVNfQklOQVJZX0koeCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lTX0JJTkFSWV9JKHgpIEJPT1NUX1BQX0NIRUNLKHgsIEJPT1NUX1BQX0lTX0JJTkFSWV9DSEVDSykKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0lTX0JJTkFSWV9DSEVDSyhhLCBiKSAxCisjIGRlZmluZSBCT09TVF9QUF9DSEVDS19SRVNVTFRfQk9PU1RfUFBfSVNfQklOQVJZX0NIRUNLIDAsIEJPT1NUX1BQX05JTAorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2VtcHR5LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9lbXB0eS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE2ZWY3NAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9lbXB0eS5ocHAKQEAgLTAsMCArMSwxNyBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9FTVBUWV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9FTVBUWV9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZW1wdHkuaHBwPgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2VudW1fcGFyYW1zLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9lbnVtX3BhcmFtcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE0ZjhhYQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9lbnVtX3BhcmFtcy5ocHAKQEAgLTAsMCArMSwxNyBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9FTlVNX1BBUkFNU19IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9FTlVNX1BBUkFNU19IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV9wYXJhbXMuaHBwPgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZW1wdHkuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvZW1wdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2ZGIxOTAKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9lbXB0eS5ocHAKQEAgLTAsMCArMSwyMSBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfRkFDSUxJVElFU19FTVBUWV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9GQUNJTElUSUVTX0VNUFRZX0hQUAorIworIyAvKiBCT09TVF9QUF9FTVBUWSAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfRU1QVFkoKQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvaWRlbnRpdHkuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvaWRlbnRpdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZWM0Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9pZGVudGl0eS5ocHAKQEAgLTAsMCArMSwyMyBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfRkFDSUxJVElFU19JREVOVElUWV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9GQUNJTElUSUVTX0lERU5USVRZX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9lbXB0eS5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0lERU5USVRZICovCisjCisjIGRlZmluZSBCT09TVF9QUF9JREVOVElUWShpdGVtKSBpdGVtIEJPT1NUX1BQX0VNUFRZCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9vdmVybG9hZC5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvZmFjaWxpdGllcy9vdmVybG9hZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU3NjMxNgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL292ZXJsb2FkLmhwcApAQCAtMCwwICsxLDI1IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDExLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IEVkd2FyZCBEaWVuZXIgMjAxMS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgICAgICAqCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfRkFDSUxJVElFU19PVkVSTE9BRF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9GQUNJTElUSUVTX09WRVJMT0FEX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3ZhcmlhZGljL3NpemUuaHBwPgorIworIyAvKiBCT09TVF9QUF9PVkVSTE9BRCAqLworIworIyBpZiBCT09TVF9QUF9WQVJJQURJQ1MKKyMgICAgZGVmaW5lIEJPT1NUX1BQX09WRVJMT0FEKHByZWZpeCwgLi4uKSBCT09TVF9QUF9DQVQocHJlZml4LCBCT09TVF9QUF9WQVJJQURJQ19TSVpFKF9fVkFfQVJHU19fKSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9pZGVudGl0eS5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvaWRlbnRpdHkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0N2RkMTMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaWRlbnRpdHkuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfSURFTlRJVFlfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfSURFTlRJVFlfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL2lkZW50aXR5LmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2luYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk4ZDNhNgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pbmMuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfSU5DX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0lOQ19IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvaW5jLmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzIwZWM4Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfSVRFUkFURV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9JVEVSQVRFX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2l0ZXJhdGUuaHBwPgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMS5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXIxLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Njk0ZDBiCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMS5ocHAKQEAgLTAsMCArMSw5OSBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3NoYXJlZC5ocHA+CisjCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xCisjCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMgorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8zCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfNQorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF82CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfOAorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF85CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzFfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIEJPT1NUX1BQX1NMT1RfQ0NfMyhCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yLCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xX0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIEJPT1NUX1BQX1NMT1RfQ0NfMihCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8yLCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMV9ESUdJVF8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXIyLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZTIxZmMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXIyLmhwcApAQCAtMCwwICsxLDk5IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcD4KKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMQorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8yCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfNAorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF81CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfNworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF84CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMTAKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMyA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMl9ESUdJVF8xIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzMsIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzJfRElHSVRfMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgQk9PU1RfUFBfU0xPVF9DQ18yKEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yX0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjMuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQyOWVhYwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjMuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMworIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8xCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF80CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfNgorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF83CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfOQorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8xMAorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zX0RJR0lUXzEgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyBCT09TVF9QUF9TTE9UX0NDXzMoQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMywgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfM19ESUdJVF8yCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzNfRElHSVRfMQorIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyNC5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXI0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTA4MzJmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyNC5ocHAKQEAgLTAsMCArMSw5OSBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3NoYXJlZC5ocHA+CisjCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80CisjCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMgorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8zCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfNQorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF82CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfOAorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF85CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzRfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80IEJPT1NUX1BQX1NMT1RfQ0NfMyhCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yLCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80X0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80IEJPT1NUX1BQX1NMT1RfQ0NfMihCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8yLCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNF9ESUdJVF8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXI1LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0ODg4YzcKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXI1LmhwcApAQCAtMCwwICsxLDk5IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcD4KKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMQorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8yCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfNAorIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF81CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfNworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF84CisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMTAKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMyA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNV9ESUdJVF8xIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzMsIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzVfRElHSVRfMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgQk9PU1RfUFBfU0xPVF9DQ18yKEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81IEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81X0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjEuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyMS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBkMGZjZgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjEuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzFfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMV9ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xX0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjIuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyMi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFlZjZmNAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjIuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzJfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMl9ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yX0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjMuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyMy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhkOWFkZQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjMuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzNfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfM19ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zX0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjQuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyNC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y3NzFjMgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjQuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzRfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNF9ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80X0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjUuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyNS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWYyN2Q1OAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjUuaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8zLCBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzVfRElHSVRfMiwgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzIsIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNV9ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81X0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2ZpbmlzaC5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9maW5pc2guaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyMzY5NDQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9maW5pc2guaHBwCkBAIC0wLDAgKzEsOTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9GRQorIworIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8xCisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMworIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF80CisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfNgorIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF83CisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfOQorIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8xMAorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMiA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9GRSgpIEJPT1NUX1BQX1NMT1RfQ0NfMyhCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8zLCBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8yLCBCT09TVF9QUF9MT0NBTF9GRV9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFKCkgQk9PU1RfUFBfU0xPVF9DQ18yKEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzIsIEJPT1NUX1BQX0xPQ0FMX0ZFX0RJR0lUXzEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0ZFKCkgQk9PU1RfUFBfTE9DQUxfRkVfRElHSVRfMQorIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvaXRlci9mb3J3YXJkMS5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQxLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzZhNDU4Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvaXRlci9mb3J3YXJkMS5ocHAKQEAgLTAsMCArMSwxMzQyIEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZiBkZWZpbmVkKEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMpCisjICAgIGlmICFkZWZpbmVkKEJPT1NUX1BQX0ZJTEVOQU1FXzEpCisjICAgICAgICBlcnJvciBCT09TVF9QUF9FUlJPUjogIGRlcHRoICMxIGZpbGVuYW1lIGlzIG5vdCBkZWZpbmVkCisjICAgIGVuZGlmCisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMpCisjICAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy9sb3dlcjEuaHBwPgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFMVUUgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAxLCBCT09TVF9QUF9JVEVSQVRJT05fTElNSVRTKQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXIxLmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU18xKCkgMAorIyAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fTElNSVRTCisjIGVsaWYgZGVmaW5lZChCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEpCisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9BUlJBWV9FTEVNKDAsIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSkKKyMgICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMS5ocHA+CisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9BUlJBWV9FTEVNKDEsIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSkKKyMgICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL3VwcGVyMS5ocHA+CisjICAgIGRlZmluZSBCT09TVF9QUF9GSUxFTkFNRV8xIEJPT1NUX1BQX0FSUkFZX0VMRU0oMiwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xKQorIyAgICBpZiBCT09TVF9QUF9BUlJBWV9TSVpFKEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSkgPj0gNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU18xKCkgQk9PU1RfUFBfQVJSQVlfRUxFTSgzLCBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEpCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fRkxBR1NfMSgpIDAKKyMgICAgZW5kaWYKKyMgZWxzZQorIyAgICBlcnJvciBCT09TVF9QUF9FUlJPUjogIGRlcHRoICMxIGl0ZXJhdGlvbiBib3VuZGFyaWVzIG9yIGZpbGVuYW1lIG5vdCBkZWZpbmVkCisjIGVuZGlmCisjCisjIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSAorIyBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkgMQorIworIyBkZWZpbmUgQk9PU1RfUFBfSVNfSVRFUkFUSU5HIDEKKyMKKyMgaWYgKEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xKSA+IChCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEpCisjICAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTEuaHBwPgorIyBlbHNlCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSA0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSA1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSA2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSA3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSA4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xID49IDkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSA5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDEwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDExCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDEyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDEzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDE0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDE1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDE2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDE3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDE4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAxOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDE5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDIwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDIxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDIyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDIzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDI0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDI1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDI2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDI3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDI4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDI5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDMwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDMwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDMxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDMxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDMyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDMyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDMzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDMzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDM0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDM0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDM1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDM1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDM2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDM2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDM3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDM3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDM4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDM4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDM5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSAzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDM5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQ0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQ0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQ1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQ1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQ2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQ2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQ3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQ3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQ4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQ4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDQ5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQ5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDUwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDUwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDUxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDUxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDUyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDUyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDUzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDUzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDU0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDU0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDU1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDU1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDU2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDU2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDU3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDU3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDU4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDU4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDU5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA1OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDU5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDYwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDYwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDYxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDYxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDYyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDYyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDYzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDYzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDY0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDY0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDY1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDY1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDY2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDY2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDY3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDY3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDY4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDY4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDY5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA2OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDY5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDcwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDcwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDcxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDcxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDcyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDcyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDczICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDczCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDc0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDc0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDc1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDc1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDc2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDc2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDc3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDc3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDc4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDc4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDc5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA3OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDc5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDgwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDgwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDgxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDgxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDgyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDgyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDgzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDgzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDg0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDg0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDg1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDg1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDg2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDg2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDg3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDg3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDg4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDg4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDg5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA4OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDg5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDkwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDkwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDkxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDkxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDkyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDkyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDkzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDkzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDk0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDk0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDk1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDk1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDk2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDk2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDk3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDk3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDk4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDk4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDk5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA+PSA5OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDk5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTAwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTAwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTAxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTAxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTAyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTAyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTAzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTAzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTA0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTA1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTA1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTA2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTA2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTA3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTA3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTA4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTA4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEwOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTA5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTA5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTEwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTEwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTExCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTExCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTEyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTEyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTEzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTEzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTE0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTE0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTE1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTE1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTE2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTE2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTE3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTE3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTE4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTE4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDExOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTE5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTE5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTIwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTIwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTIxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTIxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTIyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTIyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTIzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTIzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTI0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTI0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTI1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTI1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTI2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTI2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTI3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTI3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTI4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTI4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTI5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTI5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTMwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTMwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTMxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTMxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTMyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTMyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTMzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTMzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTM0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTM0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTM1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTM1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTM2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTM2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTM3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTM3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTM4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTM4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDEzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTM5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTM5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQ0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQ0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQ1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQ1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQ2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQ2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQ3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQ3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQ4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQ4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTQ5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQ5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTUwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTUwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTUxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTUxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTUyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTUyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTUzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTUzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTU0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTU0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTU1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTU1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTU2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTU2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTU3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTU3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTU4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTU4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTU5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTU5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTYwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTYwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTYxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTYxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTYyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTYyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTYzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTYzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTY0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTY0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTY1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTY1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTY2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTY2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTY3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTY3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTY4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTY4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTY5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTY5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTcwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTcwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTcxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTcxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTcyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTcyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTczCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTczCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTc0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTc0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTc1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTc1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTc2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTc2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTc3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTc3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTc4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTc4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTc5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTc5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTgwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTgwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTgxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTgxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTgyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTgyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTgzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTgzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTg0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTg0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTg1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTg1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTg2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTg2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTg3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTg3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTg4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTg4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTg5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTg5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTkwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTkwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTkxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTkxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTkyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTkyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTkzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTkzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTk0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTk0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTk1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTk1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTk2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTk2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTk3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTk3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTk4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTk4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDE5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMTk5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTk5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjAwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjAwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjAxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjAxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjAyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjAyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjAzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjAzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjA0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjA1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjA1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjA2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjA2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjA3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjA3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjA4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjA4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIwOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjA5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjA5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjEwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjEwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjExCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjExCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjEyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjEyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjEzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjEzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjE0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjE0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjE1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjE1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjE2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjE2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjE3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjE3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjE4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjE4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjE5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjE5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjIwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjIwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjIxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjIxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjIyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjIyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjIzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjIzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjI0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjI0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjI1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjI1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjI2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjI2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjI3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjI3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjI4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjI4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjI5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjI5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjMwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjMwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjMxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjMxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjMyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjMyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjMzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjMzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjM0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjM0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjM1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjM1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjM2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjM2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjM3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjM3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjM4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjM4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDIzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjM5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjM5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQ0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQ0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQ1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQ1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQ2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQ2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQ3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQ3CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQ4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQ4CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjQ5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQ5CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjUwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjUwCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjUxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjUxCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjUyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjUyCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjUzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjUzCisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjU0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjU0CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjU1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjU1CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xIDw9IDI1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzEgPj0gMjU2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjU2CisjICAgICAgICBpbmNsdWRlIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMgICAgICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjICAgIGVuZGlmCisjIGVuZGlmCisjCisjIHVuZGVmIEJPT1NUX1BQX0lTX0lURVJBVElORworIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpIDAKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8xCisjIHVuZGVmIEJPT1NUX1BQX0ZJTEVOQU1FXzEKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzEKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQyLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2MWEzMjkKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQyLmhwcApAQCAtMCwwICsxLDEzMzggQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIGRlZmluZWQoQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaWYgIWRlZmluZWQoQk9PU1RfUFBfRklMRU5BTUVfMikKKyMgICAgICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzIgZmlsZW5hbWUgaXMgbm90IGRlZmluZWQKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMi5ocHA+CisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMpCisjICAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjIuaHBwPgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzIoKSAwCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMKKyMgZWxpZiBkZWZpbmVkKEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMikKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMCwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18yKQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXIyLmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMSwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18yKQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXIyLmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX0ZJTEVOQU1FXzIgQk9PU1RfUFBfQVJSQVlfRUxFTSgyLCBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzIpCisjICAgIGlmIEJPT1NUX1BQX0FSUkFZX1NJWkUoQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18yKSA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzIoKSBCT09TVF9QUF9BUlJBWV9FTEVNKDMsIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMikKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU18yKCkgMAorIyAgICBlbmRpZgorIyBlbHNlCisjICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzIgaXRlcmF0aW9uIGJvdW5kYXJpZXMgb3IgZmlsZW5hbWUgbm90IGRlZmluZWQKKyMgZW5kaWYKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRICisjIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSAyCisjCisjIGlmIChCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMikgPiAoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yKQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UyLmhwcD4KKyMgZWxzZQorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSAwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSAxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSAyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSAzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSA1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSA2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSA3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSA4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA+PSA5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gMzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNDkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gNzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gODkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzIgPj0gOTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiA5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDExOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDExOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDEzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE1OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE2OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE3OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE4OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDE5OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDE5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIxOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDIzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yID49IDI1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDI1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMgorIyAgICBlbmRpZgorIyBlbmRpZgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpIDEKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8yCisjIHVuZGVmIEJPT1NUX1BQX0ZJTEVOQU1FXzIKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzIKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18yCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQzLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2ODk2NmYKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQzLmhwcApAQCAtMCwwICsxLDEzMzggQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIGRlZmluZWQoQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaWYgIWRlZmluZWQoQk9PU1RfUFBfRklMRU5BTUVfMykKKyMgICAgICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzMgZmlsZW5hbWUgaXMgbm90IGRlZmluZWQKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyMy5ocHA+CisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMpCisjICAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjMuaHBwPgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzMoKSAwCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMKKyMgZWxpZiBkZWZpbmVkKEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMCwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18zKQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXIzLmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMSwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18zKQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXIzLmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX0ZJTEVOQU1FXzMgQk9PU1RfUFBfQVJSQVlfRUxFTSgyLCBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzMpCisjICAgIGlmIEJPT1NUX1BQX0FSUkFZX1NJWkUoQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18zKSA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzMoKSBCT09TVF9QUF9BUlJBWV9FTEVNKDMsIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMykKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU18zKCkgMAorIyAgICBlbmRpZgorIyBlbHNlCisjICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzMgaXRlcmF0aW9uIGJvdW5kYXJpZXMgb3IgZmlsZW5hbWUgbm90IGRlZmluZWQKKyMgZW5kaWYKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRICisjIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSAzCisjCisjIGlmIChCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMykgPiAoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zKQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UzLmhwcD4KKyMgZWxzZQorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSAwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSAxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSAyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSAzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSA1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSA2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSA3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSA4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA+PSA5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gMzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNDkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gNzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gODkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzMgPj0gOTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyA5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDExOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDExOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDEzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE1OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE2OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE3OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE4OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDE5OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDE5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIxOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDIzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zID49IDI1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDI1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fMworIyAgICBlbmRpZgorIyBlbmRpZgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpIDIKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8zCisjIHVuZGVmIEJPT1NUX1BQX0ZJTEVOQU1FXzMKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18zCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQ0LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiNGY1ODgKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQ0LmhwcApAQCAtMCwwICsxLDEzMzggQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIGRlZmluZWQoQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaWYgIWRlZmluZWQoQk9PU1RfUFBfRklMRU5BTUVfNCkKKyMgICAgICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzQgZmlsZW5hbWUgaXMgbm90IGRlZmluZWQKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyNC5ocHA+CisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMpCisjICAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjQuaHBwPgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzQoKSAwCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMKKyMgZWxpZiBkZWZpbmVkKEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfNCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMCwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU180KQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXI0LmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMSwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU180KQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXI0LmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX0ZJTEVOQU1FXzQgQk9PU1RfUFBfQVJSQVlfRUxFTSgyLCBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzQpCisjICAgIGlmIEJPT1NUX1BQX0FSUkFZX1NJWkUoQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU180KSA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzQoKSBCT09TVF9QUF9BUlJBWV9FTEVNKDMsIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfNCkKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU180KCkgMAorIyAgICBlbmRpZgorIyBlbHNlCisjICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzQgaXRlcmF0aW9uIGJvdW5kYXJpZXMgb3IgZmlsZW5hbWUgbm90IGRlZmluZWQKKyMgZW5kaWYKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRICisjIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSA0CisjCisjIGlmIChCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCkgPiAoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80KQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U0LmhwcD4KKyMgZWxzZQorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSAwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSAxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSAyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSAzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSA1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSA2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSA3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSA4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA+PSA5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gMzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNDkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gNzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gODkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzQgPj0gOTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCA5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDExOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDExOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDEzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE1OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE2OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE3OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE4OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDE5OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDE5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIxOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDIzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80ID49IDI1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDI1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNAorIyAgICBlbmRpZgorIyBlbmRpZgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpIDMKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF80CisjIHVuZGVmIEJPT1NUX1BQX0ZJTEVOQU1FXzQKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzQKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU180CmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQ1LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2MTc2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQ1LmhwcApAQCAtMCwwICsxLDEzMzggQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIGRlZmluZWQoQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaWYgIWRlZmluZWQoQk9PU1RfUFBfRklMRU5BTUVfNSkKKyMgICAgICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzUgZmlsZW5hbWUgaXMgbm90IGRlZmluZWQKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfSVRFUkFUSU9OX0xJTUlUUykKKyMgICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvYm91bmRzL2xvd2VyNS5ocHA+CisjICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMpCisjICAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2JvdW5kcy91cHBlcjUuaHBwPgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzUoKSAwCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl9MSU1JVFMKKyMgZWxpZiBkZWZpbmVkKEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfNSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMCwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU181KQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvbG93ZXI1LmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBTFVFIEJPT1NUX1BQX0FSUkFZX0VMRU0oMSwgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU181KQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ib3VuZHMvdXBwZXI1LmhwcD4KKyMgICAgZGVmaW5lIEJPT1NUX1BQX0ZJTEVOQU1FXzUgQk9PU1RfUFBfQVJSQVlfRUxFTSgyLCBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzUpCisjICAgIGlmIEJPT1NUX1BQX0FSUkFZX1NJWkUoQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU181KSA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzUoKSBCT09TVF9QUF9BUlJBWV9FTEVNKDMsIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfNSkKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU181KCkgMAorIyAgICBlbmRpZgorIyBlbHNlCisjICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgZGVwdGggIzUgaXRlcmF0aW9uIGJvdW5kYXJpZXMgb3IgZmlsZW5hbWUgbm90IGRlZmluZWQKKyMgZW5kaWYKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRICisjIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSA1CisjCisjIGlmIChCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSkgPiAoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81KQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U1LmhwcD4KKyMgZWxzZQorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSAwCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSAxCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSAyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSAzCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSA0CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSA1CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSA2CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSA3CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSA4CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA+PSA5CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gMzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNDkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNjkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gNzkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gODkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTAKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTEKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTQKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTUKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTYKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTcKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTgKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXzUgPj0gOTkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSA5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDExOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDExOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDEzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE1OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE1OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE2OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE2OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE3OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE3OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE4OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE4OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDE5OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDE5OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIwOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIwOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIxOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIxOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIyOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIyOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzMAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzMAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzMQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzMQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzMgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzMgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzMworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzMworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzNAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzNAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzNQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzNQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzNgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzNgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzNworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzNworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzOAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzOAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDIzOQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIzOQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0NworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0NworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0OAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0OAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI0OQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI0OQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1MAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1MAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1MQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1MQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1MgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1MgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1MworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1MworIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1NAorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1NAorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1NQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1NQorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81ID49IDI1NgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDI1NgorIyAgICAgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgICAgICB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fNQorIyAgICBlbmRpZgorIyBlbmRpZgorIworIyB1bmRlZiBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpIDQKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF81CisjIHVuZGVmIEJPT1NUX1BQX0ZJTEVOQU1FXzUKKyMKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXzUKKyMgdW5kZWYgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU181CmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UxLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmODhkMmYKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UxLmhwcApAQCAtMCwwICsxLDEyOTYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMjAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAyMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTk5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTk4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTk3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTk2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTk1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTk0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTkzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTkyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTkxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTkwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTg5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTg4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTg3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTg2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTg1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTg0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTgzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTgyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTgxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTgwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTc5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTc4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTc3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTc2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTc1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTc0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTczCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTcyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTcxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTcwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTY5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTY4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTY3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTY2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTY1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTY0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTYzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTYyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTYxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTYwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTU5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTU4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTU3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzEgPj0gMTAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMSAxMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA5MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA4MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA3MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA2MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA1MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSA0MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAzMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAyMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMSA+PSAxMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzEgMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMSA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8xID49IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8xIDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8xCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UyLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMWJkMjQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UyLmhwcApAQCAtMCwwICsxLDEyOTYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMjAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAyMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTk5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTk4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTk3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTk2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTk1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTk0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTkzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTkyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTkxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTkwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTg5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTg4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTg3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTg2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTg1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTg0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTgzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTgyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTgxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTgwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTc5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTc4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTc3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTc2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTc1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTc0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTczCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTcyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTcxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTcwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTY5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTY4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTY3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTY2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTY1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTY0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTYzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTYyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTYxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTYwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTU5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTU4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTU3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzIgPj0gMTAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMiAxMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA5MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA4MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA3MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA2MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA1MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSA0MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAzMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAyMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMiA+PSAxMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzIgMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMiA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8yID49IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8yIDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8yCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8yCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UzLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNjU1MTQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2UzLmhwcApAQCAtMCwwICsxLDEyOTYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMjAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAyMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTk5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTk4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTk3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTk2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTk1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTk0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTkzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTkyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTkxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTkwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTg5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTg4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTg3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTg2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTg1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTg0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTgzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTgyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTgxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTgwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTc5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTc4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTc3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTc2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTc1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTc0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTczCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTcyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTcxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTcwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTY5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTY4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTY3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTY2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTY1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTY0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTYzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTYyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTYxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTYwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTU5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTU4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTU3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzMgPj0gMTAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fMyAxMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA5MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA4MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA3MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA2MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA1MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSA0MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAzMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAyMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfMyA+PSAxMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzMgMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfMyA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF8zID49IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl8zIDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV8zCisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl8zCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U0LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiY2ZiYTAKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U0LmhwcApAQCAtMCwwICsxLDEyOTYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMjAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAyMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTk5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTk4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTk3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTk2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTk1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTk0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTkzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTkyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTkxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTkwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTg5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTg4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTg3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTg2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTg1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTg0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTgzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTgyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTgxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTgwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTc5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTc4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTc3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTc2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTc1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTc0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTczCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTcyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTcxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTcwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTY5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTY4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTY3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTY2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTY1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTY0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTYzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTYyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTYxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTYwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTU5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTU4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTU3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzQgPj0gMTAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNCAxMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA5MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA4MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA3MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA2MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA1MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSA0MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAzMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAyMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNCA+PSAxMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzQgMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNCA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF80ID49IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl80IDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV80CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl80CisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U1LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvcmV2ZXJzZTUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyNWE1NTcKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL3JldmVyc2U1LmhwcApAQCAtMCwwICsxLDEyOTYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMjAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAyMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTk5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTk4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTk3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTk2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTk1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTk0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTkzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTkyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTkxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTkwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTg5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTg4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTg3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTg2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTg1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTg0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTgzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTgyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTgxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxODAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTgwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTc5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTc4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTc3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTc2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTc1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTc0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTczCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTcyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTcxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTcwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTY5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTY4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTY3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTY2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTY1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTY0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTYzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTYyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTYxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTYwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTU5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTU4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTU3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTU2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTU1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTU0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTUzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTUyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTUxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTUwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQ3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQ0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTQwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTM5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTM4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTM3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTM2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTM1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTM0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTMzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTMyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTMxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMzAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTMwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTI5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTI4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTI3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTI2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTI1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTI0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTIzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTIyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTIxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMjAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTIwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTE5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTE4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTE3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTE2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTE1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTE0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTEzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTEyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTExCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMTAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTEwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDkgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTA5CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDggJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTA4CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDcgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTA3CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDYgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTA2CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDUgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTA1CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDQgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTA0CisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDMgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTAzCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDIgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTAyCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDEgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTAxCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMDAgJiYgQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUXzUgPj0gMTAwCisjICAgIGRlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fNSAxMDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA5MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgOTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA4MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgODAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA3MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA2MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA1MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0OSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0OCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0OAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0NyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0NworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0NiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0NSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0NQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0NCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0MyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0MworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0MiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0MSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0MCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSA0MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgNDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAzMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMzAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAyMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMjAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxOCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxNworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxNCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMyAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxMworIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMiAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMSAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxMCAmJiBCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfNSA+PSAxMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OXzUgMTAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA5ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDkKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA4ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDgKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA3ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDcKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA2ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDYKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA1ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDUKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSA0ICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDQKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAzICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDMKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAyICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDIKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAxICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDEKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfNSA8PSAwICYmIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVF81ID49IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl81IDAKKyMgICAgaW5jbHVkZSBCT09TVF9QUF9GSUxFTkFNRV81CisjICAgIHVuZGVmIEJPT1NUX1BQX0lURVJBVElPTl81CisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9sb2NhbC5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9sb2NhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NkZGQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2xvY2FsLmhwcApAQCAtMCwwICsxLDgxMiBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWYgIWRlZmluZWQoQk9PU1RfUFBfTE9DQUxfTElNSVRTKQorIyAgICBlcnJvciBCT09TVF9QUF9FUlJPUjogIGxvY2FsIGl0ZXJhdGlvbiBib3VuZGFyaWVzIGFyZSBub3QgZGVmaW5lZAorIyBlbGlmICFkZWZpbmVkKEJPT1NUX1BQX0xPQ0FMX01BQ1JPKQorIyAgICBlcnJvciBCT09TVF9QUF9FUlJPUjogIGxvY2FsIGl0ZXJhdGlvbiB0YXJnZXQgbWFjcm8gaXMgbm90IGRlZmluZWQKKyMgZWxzZQorIyAgICBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TIEJPT1NUX1BQX1RVUExFX0VMRU0oMiwgMCwgQk9PU1RfUFBfTE9DQUxfTElNSVRTKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0YgQk9PU1RfUFBfVFVQTEVfRUxFTSgyLCAxLCBCT09TVF9QUF9MT0NBTF9MSU1JVFMpCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDAsIEJPT1NUX1BQX0xPQ0FMX0xJTUlUUykKKyMgICAgICAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3N0YXJ0LmhwcD4KKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9UVVBMRV9FTEVNKDIsIDEsIEJPT1NUX1BQX0xPQ0FMX0xJTUlUUykKKyMgICAgICAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2ZpbmlzaC5ocHA+CisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfUyBCT09TVF9QUF9MT0NBTF9TRSgpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfRiBCT09TVF9QUF9MT0NBTF9GRSgpCisjICAgIGVuZGlmCisjIGVuZGlmCisjCisjIGlmIChCT09TVF9QUF9MT0NBTF9TKSA+IChCT09TVF9QUF9MT0NBTF9GKQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ybG9jYWwuaHBwPgorIyBlbHNlCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg0KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg0KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg3KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg3KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoOSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTApCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMTEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDEyKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTMpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMTQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDE1KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTYpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMTcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDE4KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTkpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMjApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDIxKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjIpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMjMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyNSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMjYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI2KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI3KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyOCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjgpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMjkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI5KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDMwKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygzMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygzMSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMzEpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMzIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDMyKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDMzKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygzMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygzNCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMzQpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMzUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM1KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDM2KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygzNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygzNykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMzcpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoMzgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM4KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDM5KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygzOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg0MCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNDApCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNDEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQxKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDQyKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg0MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg0MykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNDMpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNDQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ0KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDQ1KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg0NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg0NikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNDYpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNDcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ3KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDQ4KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg0OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg0OSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNDkpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNTApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUwKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDUxKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg1MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg1MikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNTIpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNTMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUzKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDU0KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg1NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg1NSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNTUpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNTYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU2KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDU3KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg1NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg1OCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNTgpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNTkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU5KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDYwKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg2MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg2MSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNjEpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNjIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDYyKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDYzKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg2MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg2NCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNjQpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNjUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY1KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDY2KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg2NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg2NykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNjcpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNjgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY4KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDY5KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg2OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg3MCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNzApCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNzEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDcxKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDcyKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg3MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg3MykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNzMpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNzQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc0KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDc1KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg3NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg3NikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNzYpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoNzcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc3KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDc4KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg3OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg3OSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNzkpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoODApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgwKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDgxKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg4MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg4MikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oODIpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoODMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgzKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDg0KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg4NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg4NSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oODUpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoODYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg2KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDg3KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg4NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg4OCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oODgpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoODkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg5KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDkwKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg5MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg5MSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oOTEpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoOTIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDkyKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDkzKQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg5MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg5NCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oOTQpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoOTUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk1KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDk2KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg5NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQyg5NykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oOTcpCisjICAgIGVuZGlmCisjICAgIGlmIEJPT1NUX1BQX0xPQ0FMX0MoOTgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk4KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDk5KQorICAgICAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg5OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMDkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMTkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMjkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxMzkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNDkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNTkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNjkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxNzkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxODkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5MCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5MSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5MikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5MykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5NCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5NSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5NikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5NykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5OCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygxOTkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5OSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMDkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMTkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyNikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjcpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyNykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjgpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyOCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMjkpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyOSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzApCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzMCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzEpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzMSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzIpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzMikKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzMpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzMykKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzQpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzNCkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzUpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzNSkKKyMgICAgZW5kaWYKKyMgICAgaWYgQk9PU1RfUFBfTE9DQUxfQygyMzYpCisgICAgICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzNikKKyMgICAgZW5kaWYKKworIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDIzNykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjM3KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDIzOCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjM4KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDIzOSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjM5KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0MCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQwKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0MSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQxKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0MikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQyKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0MykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQzKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0NCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ0KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0NSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ1KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0NikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ2KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0NykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ3KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0OCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ4KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI0OSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ5KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1MCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUwKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1MSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUxKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1MikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUyKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1MykKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUzKQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1NCkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjU0KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1NSkKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjU1KQorIyAgICBlbmRpZgorIyAgICBpZiBCT09TVF9QUF9MT0NBTF9DKDI1NikKKyAgICAgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjU2KQorIyAgICBlbmRpZgorIyBlbmRpZgorIworIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9MSU1JVFMKKyMKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfUworIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9GCisjCisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX01BQ1JPCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9ybG9jYWwuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvcmxvY2FsLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTNhZmEwCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvcmxvY2FsLmhwcApAQCAtMCwwICsxLDc4MiBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyNTYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjU2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI1NSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNTUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjU0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI1NCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyNTMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI1MikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNTIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjUxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI1MSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyNTApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjUwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI0OSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNDkpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjQ4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI0OCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyNDcpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI0NikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNDYpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjQ1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI0NSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyNDQpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQ0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI0MykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNDMpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjQyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI0MikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyNDEpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjQxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI0MCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyNDApCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjM5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzOSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMzgpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjM4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIzNykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMzcpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjM2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzNikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMzUpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjM1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIzNCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMzQpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjMzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzMykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMzIpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjMyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIzMSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMzEpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjMwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzMCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMjkpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjI5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIyOCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMjgpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjI3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyNykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMjYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjI2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIyNSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMjUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjI0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyNCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMjMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjIzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIyMikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMjIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjIxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyMSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMjApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjIwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIxOSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMTkpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjE4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxOCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMTcpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjE3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIxNikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMTYpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjE1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxNSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMTQpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjE0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIxMykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMTMpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjEyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxMikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMTEpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjExKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIxMCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMTApCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjA5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwOSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMDgpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjA4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIwNykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMDcpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjA2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwNikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMDUpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjA1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIwNCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMDQpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjAzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwMykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyMDIpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMjAyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIwMSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygyMDEpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMjAwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwMCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxOTkpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTk5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE5OCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxOTgpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTk3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5NykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxOTYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTk2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE5NSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxOTUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTk0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5NCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxOTMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTkzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE5MikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxOTIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTkxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5MSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxOTApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTkwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE4OSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxODkpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTg4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4OCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxODcpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTg3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE4NikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxODYpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTg1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4NSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxODQpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTg0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE4MykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxODMpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTgyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4MikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxODEpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTgxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE4MCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxODApCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTc5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3OSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNzgpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTc4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE3NykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNzcpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTc2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3NikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNzUpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTc1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE3NCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNzQpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTczKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3MykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNzIpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTcyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE3MSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNzEpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTcwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3MCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNjkpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTY5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE2OCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNjgpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTY3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2NykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNjYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTY2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE2NSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNjUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTY0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2NCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNjMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTYzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE2MikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNjIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTYxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2MSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNjApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTYwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE1OSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNTkpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTU4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1OCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNTcpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTU3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE1NikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNTYpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTU1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1NSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNTQpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTU0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE1MykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNTMpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTUyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1MikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNTEpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTUxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE1MCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNTApCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTQ5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0OSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNDgpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTQ4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE0NykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNDcpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTQ2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0NikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNDUpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTQ1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE0NCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNDQpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTQzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0MykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxNDIpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTQyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE0MSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxNDEpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTQwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0MCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMzkpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTM5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEzOCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMzgpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTM3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzNykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMzYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTM2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEzNSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMzUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTM0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzNCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMzMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTMzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEzMikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMzIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTMxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzMSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMzApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTMwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEyOSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMjkpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTI4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyOCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMjcpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTI3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEyNikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMjYpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTI1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyNSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMjQpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTI0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEyMykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMjMpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTIyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyMikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMjEpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTIxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEyMCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMjApCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTE5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExOSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMTgpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTE4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDExNykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMTcpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTE2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExNikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMTUpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTE1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDExNCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMTQpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTEzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExMykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMTIpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTEyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDExMSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMTEpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTEwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExMCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMDkpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTA5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEwOCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMDgpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTA3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwNykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMDYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTA2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEwNSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMDUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTA0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwNCkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMDMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTAzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEwMikKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxMDIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMTAxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwMSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigxMDApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMTAwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDk5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDk4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDk3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDk2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDk1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDk0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDk0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDkzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDkzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDkyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDkyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDkxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDkxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDkwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDkwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDg5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDg4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDg3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDg2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDg1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDg0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDg0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDgzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDgyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDgxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDgwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDc5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDc4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDc3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDc2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDc1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDc0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDc0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDczKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDczKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDcyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDcyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDcxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDcxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDcwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDcwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDY5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDY4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDY3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDY2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDY1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDY0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDY0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDYzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDYzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDYyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDYyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDYxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDYxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDYwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDYwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDU5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDU4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDU3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDU2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDU1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDU0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDU0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDUzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDUyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDUxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDUwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQ5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQ4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQ3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQ2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQ1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQ0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQ0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDQwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDQwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDM5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDM4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDM3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDM2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDM1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDM0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDM0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDMzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDMzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDMyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDMyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDMxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDMxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDMwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDMwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDI0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDI0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIxKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDIwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE5KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE5KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE4KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE3KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE2KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE2KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE1KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDE0KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDE0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEzKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEzKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEyKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDExKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDExKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDEwKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDEwKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDkpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oOSkKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUig4KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDgpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoNykKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg3KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDYpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oNikKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUig1KQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDUpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoNCkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTyg0KQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDMpCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMykKKyMgZW5kaWYKKyMgaWYgQk9PU1RfUFBfTE9DQUxfUigyKQorICAgIEJPT1NUX1BQX0xPQ0FMX01BQ1JPKDIpCisjIGVuZGlmCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1IoMSkKKyAgICBCT09TVF9QUF9MT0NBTF9NQUNSTygxKQorIyBlbmRpZgorIyBpZiBCT09TVF9QUF9MT0NBTF9SKDApCisgICAgQk9PU1RfUFBfTE9DQUxfTUFDUk8oMCkKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3NlbGYuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvc2VsZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU3MTg1YwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3NlbGYuaHBwCkBAIC0wLDAgKzEsMjEgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmICFkZWZpbmVkKEJPT1NUX1BQX0lORElSRUNUX1NFTEYpCisjICAgIGVycm9yIEJPT1NUX1BQX0VSUk9SOiAgbm8gaW5kaXJlY3QgZmlsZSB0byBpbmNsdWRlCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9JU19TRUxGSVNIIDEKKyMKKyMgaW5jbHVkZSBCT09TVF9QUF9JTkRJUkVDVF9TRUxGCisjCisjIHVuZGVmIEJPT1NUX1BQX0lTX1NFTEZJU0gKKyMgdW5kZWYgQk9PU1RfUFBfSU5ESVJFQ1RfU0VMRgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvc3RhcnQuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvc3RhcnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiZjAzODEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9zdGFydC5ocHAKQEAgLTAsMCArMSw5OSBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3NoYXJlZC5ocHA+CisjCisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX1NFCisjCisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMgorIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8zCisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfNQorIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF82CisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfOAorIyB1bmRlZiBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF85CisjIHVuZGVmIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1NFKCkgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzMsIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzIsIEJPT1NUX1BQX0xPQ0FMX1NFX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0UoKSBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMiwgQk9PU1RfUFBfTE9DQUxfU0VfRElHSVRfMSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTE9DQUxfU0UoKSBCT09TVF9QUF9MT0NBTF9TRV9ESUdJVF8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2l0ZXJhdGUuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9pdGVyYXRlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Zjg2MWU3Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9pdGVyYXRlLmhwcApAQCAtMCwwICsxLDgyIEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0lURVJBVElPTl9JVEVSQVRFX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0lURVJBVElPTl9JVEVSQVRFX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9kZWMuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvYXJpdGhtZXRpYy9pbmMuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvYXJyYXkvZWxlbS5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9hcnJheS9zaXplLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L3Nsb3QuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkgMAorIworIyAvKiBCT09TVF9QUF9JVEVSQVRJT04gKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTigpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9JVEVSQVRJT05fLCBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSkKKyMKKyMgLyogQk9PU1RfUFBfSVRFUkFUSU9OX1NUQVJUICYmIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0ggKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9TVEFSVCgpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfLCBCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0goKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfSVRFUkFUSU9OX0ZJTklTSF8sIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpKQorIworIyAvKiBCT09TVF9QUF9JVEVSQVRJT05fRkxBR1MgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9GTEFHUygpIChCT09TVF9QUF9DQVQoQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXywgQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkpKCkpCisjCisjIC8qIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTiAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKGkpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9JVEVSQVRJT05fLCBpKQorIworIyAvKiBCT09TVF9QUF9GUkFNRV9TVEFSVCAmJiBCT09TVF9QUF9GUkFNRV9GSU5JU0ggKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0ZSQU1FX1NUQVJUKGkpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfLCBpKQorIyBkZWZpbmUgQk9PU1RfUFBfRlJBTUVfRklOSVNIKGkpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9JVEVSQVRJT05fRklOSVNIXywgaSkKKyMKKyMgLyogQk9PU1RfUFBfRlJBTUVfRkxBR1MgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0ZSQU1FX0ZMQUdTKGkpIChCT09TVF9QUF9DQVQoQk9PU1RfUFBfSVRFUkFUSU9OX0ZMQUdTXywgaSkoKSkKKyMKKyMgLyogQk9PU1RfUFBfUkVMQVRJVkVfSVRFUkFUSU9OICovCisjCisjIGRlZmluZSBCT09TVF9QUF9SRUxBVElWRV9JVEVSQVRJT04oaSkgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1JFTEFUSVZFXywgaSkoQk9PU1RfUFBfSVRFUkFUSU9OXykKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1JFTEFUSVZFXzAobSkgQk9PU1RfUFBfQ0FUKG0sIEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVMQVRJVkVfMShtKSBCT09TVF9QUF9DQVQobSwgQk9PU1RfUFBfREVDKEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFTEFUSVZFXzIobSkgQk9PU1RfUFBfQ0FUKG0sIEJPT1NUX1BQX0RFQyhCT09TVF9QUF9ERUMoQk9PU1RfUFBfSVRFUkFUSU9OX0RFUFRIKCkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFTEFUSVZFXzMobSkgQk9PU1RfUFBfQ0FUKG0sIEJPT1NUX1BQX0RFQyhCT09TVF9QUF9ERUMoQk9PU1RfUFBfREVDKEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVMQVRJVkVfNChtKSBCT09TVF9QUF9DQVQobSwgQk9PU1RfUFBfREVDKEJPT1NUX1BQX0RFQyhCT09TVF9QUF9ERUMoQk9PU1RfUFBfREVDKEJPT1NUX1BQX0lURVJBVElPTl9ERVBUSCgpKSkpKSkKKyMKKyMgLyogQk9PU1RfUFBfUkVMQVRJVkVfU1RBUlQgJiYgQk9PU1RfUFBfUkVMQVRJVkVfRklOSVNIICovCisjCisjIGRlZmluZSBCT09TVF9QUF9SRUxBVElWRV9TVEFSVChpKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfUkVMQVRJVkVfLCBpKShCT09TVF9QUF9JVEVSQVRJT05fU1RBUlRfKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVMQVRJVkVfRklOSVNIKGkpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9SRUxBVElWRV8sIGkpKEJPT1NUX1BQX0lURVJBVElPTl9GSU5JU0hfKQorIworIyAvKiBCT09TVF9QUF9SRUxBVElWRV9GTEFHUyAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfUkVMQVRJVkVfRkxBR1MoaSkgKEJPT1NUX1BQX0NBVChCT09TVF9QUF9SRUxBVElWRV8sIGkpKEJPT1NUX1BQX0lURVJBVElPTl9GTEFHU18pKCkpCisjCisjIC8qIEJPT1NUX1BQX0lURVJBVEUgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVEUoKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfSVRFUkFURV8sIEJPT1NUX1BQX0lOQyhCT09TVF9QUF9JVEVSQVRJT05fREVQVEgoKSkpCisjCisjIGRlZmluZSBCT09TVF9QUF9JVEVSQVRFXzEgPGJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDEuaHBwPgorIyBkZWZpbmUgQk9PU1RfUFBfSVRFUkFURV8yIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQyLmhwcD4KKyMgZGVmaW5lIEJPT1NUX1BQX0lURVJBVEVfMyA8Ym9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9kZXRhaWwvaXRlci9mb3J3YXJkMy5ocHA+CisjIGRlZmluZSBCT09TVF9QUF9JVEVSQVRFXzQgPGJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2l0ZXIvZm9yd2FyZDQuaHBwPgorIyBkZWZpbmUgQk9PU1RfUFBfSVRFUkFURV81IDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL2RldGFpbC9pdGVyL2ZvcndhcmQ1LmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vbG9jYWwuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGlvbi9sb2NhbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg5ZmIxYQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vbG9jYWwuaHBwCkBAIC0wLDAgKzEsMjYgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfSVRFUkFUSU9OX0xPQ0FMX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0lURVJBVElPTl9MT0NBTF9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9zbG90LmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwPgorIworIyAvKiBCT09TVF9QUF9MT0NBTF9JVEVSQVRFICovCisjCisjIGRlZmluZSBCT09TVF9QUF9MT0NBTF9JVEVSQVRFKCkgPGJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL2xvY2FsLmhwcD4KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX0MobikgKEJPT1NUX1BQX0xPQ0FMX1MpIDw9IG4gJiYgKEJPT1NUX1BQX0xPQ0FMX0YpID49IG4KKyMgZGVmaW5lIEJPT1NUX1BQX0xPQ0FMX1IobikgKEJPT1NUX1BQX0xPQ0FMX0YpIDw9IG4gJiYgKEJPT1NUX1BQX0xPQ0FMX1MpID49IG4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vc2VsZi5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL3NlbGYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMDQ2NGMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0aW9uL3NlbGYuaHBwCkBAIC0wLDAgKzEsMTkgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfSVRFUkFUSU9OX1NFTEZfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfSVRFUkFUSU9OX1NFTEZfSFBQCisjCisjIC8qIEJPT1NUX1BQX0lOQ0xVREVfU0VMRiAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfSU5DTFVERV9TRUxGKCkgPGJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRpb24vZGV0YWlsL3NlbGYuaHBwPgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvYWR0LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2FkdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRmMTJiYQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2FkdC5ocHAKQEAgLTAsMCArMSw3MyBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICoKKyMgICogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLgorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9BRFRfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9BRFRfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9pc19iaW5hcnkuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9jb21wbC5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lYXQuaHBwPgorIworIyAvKiBCT09TVF9QUF9MSVNUX0NPTlMgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfQ09OUyhoZWFkLCB0YWlsKSAoaGVhZCwgdGFpbCkKKyMKKyMgLyogQk9PU1RfUFBfTElTVF9OSUwgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfTklMIEJPT1NUX1BQX05JTAorIworIyAvKiBCT09TVF9QUF9MSVNUX0ZJUlNUICovCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZJUlNUKGxpc3QpIEJPT1NUX1BQX0xJU1RfRklSU1RfRChsaXN0KQorIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZJUlNUX0QobGlzdCkgQk9PU1RfUFBfTElTVF9GSVJTVF9JIGxpc3QKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9GSVJTVF9EKGxpc3QpIEJPT1NUX1BQX0xJU1RfRklSU1RfSSAjIyBsaXN0CisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZJUlNUX0koaGVhZCwgdGFpbCkgaGVhZAorIworIyAvKiBCT09TVF9QUF9MSVNUX1JFU1QgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfUkVTVChsaXN0KSBCT09TVF9QUF9MSVNUX1JFU1RfRChsaXN0KQorIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1JFU1RfRChsaXN0KSBCT09TVF9QUF9MSVNUX1JFU1RfSSBsaXN0CisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfUkVTVF9EKGxpc3QpIEJPT1NUX1BQX0xJU1RfUkVTVF9JICMjIGxpc3QKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfUkVTVF9JKGhlYWQsIHRhaWwpIHRhaWwKKyMKKyMgLyogQk9PU1RfUFBfTElTVF9JU19DT05TICovCisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0JDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0lTX0NPTlMobGlzdCkgQk9PU1RfUFBfTElTVF9JU19DT05TX0QobGlzdCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfSVNfQ09OU19EKGxpc3QpIEJPT1NUX1BQX0xJU1RfSVNfQ09OU18gIyMgbGlzdAorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9JU19DT05TXyhoZWFkLCB0YWlsKSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0lTX0NPTlNfQk9PU1RfUFBfTklMIDAKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9JU19DT05TKGxpc3QpIEJPT1NUX1BQX0lTX0JJTkFSWShsaXN0KQorIyBlbmRpZgorIworIyAvKiBCT09TVF9QUF9MSVNUX0lTX05JTCAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfQkNDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfSVNfTklMKGxpc3QpIEJPT1NUX1BQX0NPTVBMKEJPT1NUX1BQX0lTX0JJTkFSWShsaXN0KSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9JU19OSUwobGlzdCkgQk9PU1RfUFBfQ09NUEwoQk9PU1RfUFBfTElTVF9JU19DT05TKGxpc3QpKQorIyBlbmRpZgorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvYXBwZW5kLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2FwcGVuZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZlOWQ3NAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2FwcGVuZC5ocHAKQEAgLTAsMCArMSw0MCBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9BUFBFTkRfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9BUFBFTkRfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZm9sZF9yaWdodC5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0xJU1RfQVBQRU5EICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9BUFBFTkQoYSwgYikgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUKEJPT1NUX1BQX0xJU1RfQVBQRU5EX08sIGIsIGEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfQVBQRU5EKGEsIGIpIEJPT1NUX1BQX0xJU1RfQVBQRU5EX0koYSwgYikKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfQVBQRU5EX0koYSwgYikgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUKEJPT1NUX1BQX0xJU1RfQVBQRU5EX08sIGIsIGEpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0FQUEVORF9PKGQsIHMsIHgpICh4LCBzKQorIworIyAvKiBCT09TVF9QUF9MSVNUX0FQUEVORF9EICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9BUFBFTkRfRChkLCBhLCBiKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfICMjIGQoQk9PU1RfUFBfTElTVF9BUFBFTkRfTywgYiwgYSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9BUFBFTkRfRChkLCBhLCBiKSBCT09TVF9QUF9MSVNUX0FQUEVORF9EX0koZCwgYSwgYikKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfQVBQRU5EX0RfSShkLCBhLCBiKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfICMjIGQoQk9PU1RfUFBfTElTVF9BUFBFTkRfTywgYiwgYSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9kbWMvZm9sZF9sZWZ0LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9kbWMvZm9sZF9sZWZ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDRhYzViCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2RtYy9mb2xkX2xlZnQuaHBwCkBAIC0wLDAgKzEsMjc5IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0RFVEFJTF9GT0xEX0xFRlRfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9ERVRBSUxfRk9MRF9MRUZUX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9leHByX2lpZi5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lpZi5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2FkdC5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lbGVtLmhwcD4KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgzMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDMxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgzMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDM0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgzNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDM3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgzOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDQwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNDEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg0MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDQzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNDQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg0NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDQ2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNDcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg0OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDQ5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg1MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDUyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg1NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDU1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg1NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDU4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNTksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg2MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDYxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNjIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg2MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDY0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNjUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg2NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDY3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNjgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg2OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDcwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNzEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg3MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzczLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDczLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNzQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg3NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDc2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoNzcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg3OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDc5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoODAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg4MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDgyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoODMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg4NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDg1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoODYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg4NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDg4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoODksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg5MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDkxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoOTIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg5MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDk0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoOTUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg5NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDk3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoOTgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSg5OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMDAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEwMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTAyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMDMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEwNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTA1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMDYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEwNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTA4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMDksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDExMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTExLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTExKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMTIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDExMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTE0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMTUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDExNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTE3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMTgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDExOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTIwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMjEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEyMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTIzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMjQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEyNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTI2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMjcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEyOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTI5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMzAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEzMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTMyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMzMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEzNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTM1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMzYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDEzNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTM4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxMzksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE0MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTQxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE0MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTQ0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE0NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTQ3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE0OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTUwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE1MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTUzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE1NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTU2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE1OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTU5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE2MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTYyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE2NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTY1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE2NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTY4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE3MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTcxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTczLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE3MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTc0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE3NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTc3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxNzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE3OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTgwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxODEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE4MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTgzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxODQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE4NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTg2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxODcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE4OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTg5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxOTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE5MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTkyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxOTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE5NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTk1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxOTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDE5NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMTk4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5OSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgxOTksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIwMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjAxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIwMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjA0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIwNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjA3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIwOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjEwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIxMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjEzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIxNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjE2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIxOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjE5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIyMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjIyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIyNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjI1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIyNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjgsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjI4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyOSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMwLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIzMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzEsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjMxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMzLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIzMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzQsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjM0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM2LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIzNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzcsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjM3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyMzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM5LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDIzOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDAsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjQwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MSwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNDEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQyLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI0MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDMsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjQzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNDQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ1LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI0NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDYsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjQ2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNDcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ4LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI0OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDksIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjQ5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MCwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUxLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI1MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTIsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjUyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU0LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI1NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTUsIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKShvLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvLCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkoMjU1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NiwgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKG8sIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIEJPT1NUX1BQX1RVUExFX0VMRU1fM18xKSgyNTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU3LCBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMSkobywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbywgQk9PU1RfUFBfVFVQTEVfRUxFTV8zXzEpKDI1NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9lZGcvZm9sZF9sZWZ0LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9lZGcvZm9sZF9sZWZ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTk1MjRmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2VkZy9mb2xkX2xlZnQuaHBwCkBAIC0wLDAgKzEsNTM2IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0RFVEFJTF9FREdfRk9MRF9MRUZUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xJU1RfREVUQUlMX0VER19GT0xEX0xFRlRfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2V4cHJfaWlmLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvaWlmLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvYWR0LmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VhdC5ocHA+CisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTExKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNThfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjExX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMThfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU2X0QobywgcywgbCkKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjhfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDMxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDM0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDM3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg0MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg0NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQ2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg0NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQ5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDUyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDU1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDU4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNThfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDYxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDY0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDY3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDcwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg3MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzczLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDczLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg3NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDc2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg3NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDc5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDgyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDg1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDg4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODhfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDkxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDk0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDk3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTAxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTA0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTA3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTEwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTExLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMTIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTEzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMTUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTE2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMTgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMThfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTE5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMjEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTIyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMjQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTI1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMjcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTI4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTMxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTM0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTM3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQ2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDhfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQ5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTUyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTU1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTU4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTYxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTY0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTY3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTcwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTczLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTczX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTc2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzhfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTc5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxODEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTgyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxODQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTg1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxODcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTg4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTkxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTk0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTk3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjAwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjAzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjA2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDhfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjA5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjEyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjE1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjE4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjIxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjI0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjI3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI3X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjlfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjMwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMwX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzJfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjMzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMzX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzVfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjM2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM2X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzhfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjM5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM5X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNDEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDFfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQyX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNDQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDRfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQ1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ1X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNDcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDdfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQ4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ4X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTBfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjUxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUxX0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTNfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjU0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU0X0QobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTZfRChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjU3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2VkZy9mb2xkX3JpZ2h0LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9lZGcvZm9sZF9yaWdodC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM3MmQyZQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9lZGcvZm9sZF9yaWdodC5ocHAKQEAgLTAsMCArMSw3OTQgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0xJU1RfREVUQUlMX0VER19GT0xEX1JJR0hUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xJU1RfREVUQUlMX0VER19GT0xEX1JJR0hUX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hZHQuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcD4KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzMwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzMyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzMzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzUwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzUxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzUzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNThfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzYwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzYyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzYzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzcxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzcyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzgwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzgxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzgzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzkwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzkyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzkzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTAxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTAyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTA0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTA1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTA3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTA4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTEwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTExX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTEzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTE0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTE2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTE3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTE5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTI1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTI2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTI4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTI5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTMxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTMyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTM0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTM1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTM3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTM4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQ0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQ2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQ3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQ5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTU1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTU2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTU4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNThfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTU5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTYxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTYyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTY0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTY1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTY3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTY4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTcwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTcxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3Ml9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTczKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTc0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTc2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTc3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTc5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTg1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTg2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTg4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTg5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTkxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTkyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTk0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTk1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5Nl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTk3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTk4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjAwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjAxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjAzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjA0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjA2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjA3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjA5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjE1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjE2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxN19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjE4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMThfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjE5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjIxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjIyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyM19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjI0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjI1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjI3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjdfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjI4X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjMwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzBfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjMxX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMl9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjMzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzNfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjM0X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjM2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzZfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjM3X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjM5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzlfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQwX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MV9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDJfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQzX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQ1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDVfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQ2X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0N19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQ4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDhfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQ5X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MF9EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjUxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTFfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjUyX0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1M19EKG8sIHMsIGwpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjU0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTRfRChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjU1X0QobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1Nl9EKG8sIHMsIGwpCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDMsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80LCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDUsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81LCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDYsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82LCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDcsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83LCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDgsIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84LCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDksIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85LCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSksIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDMwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDMxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDMyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDMzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDM0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDM1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDM2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDM3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDM4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDM5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQ0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQ1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQ2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQ3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQ4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDQ5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDUwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDUxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDUyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDUzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDU0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDU1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDU2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDU3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDU4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDU5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDYwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDYxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDYyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDYzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDY0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDY1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDY2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDY3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDY4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDY5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDcwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDcxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDcyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDczLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDc0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDc1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDc2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDc3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDc4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDc5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDgwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDgxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDgyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDgzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDg0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDg1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDg2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDg3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDg4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDg5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDkwLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTAsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDkxLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTEsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDkyLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTIsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDkzLCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTMsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDk0LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTQsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDk1LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTUsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDk2LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTYsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDk3LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTcsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDk4LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTgsIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDk5LCBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTksIEJPT1NUX1BQX05JTCBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgcywgQk9PU1RfUFBfTElTVF9SRVNUKGwpKSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEwOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDExOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEyOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDEzOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE0OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE1OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE2OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE3OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE4OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDE5OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIwOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIxOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIyOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzMCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzMSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzMiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzMywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzM19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzNCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzNSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzNiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzNywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzN19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzOCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDIzOSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0N19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0OCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI0OSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1MCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1MSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1MiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1Ml9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1MywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1M19EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1NCwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NCwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NF9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1NSwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NSwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NV9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1NiwgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NiwgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1Nl9EKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8sIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKDI1NywgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NywgQk9PU1RfUFBfTklMIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBzLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKQorIworIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX05JTCAxCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzMxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzUyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzYxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzcwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzczKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzgyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzkxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NihvLCBzLCBsKSAwCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZm9sZF9sZWZ0LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9mb2xkX2xlZnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1ZmNhYjcKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZm9sZF9sZWZ0LmhwcApAQCAtMCwwICsxLDI3OSBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9ERVRBSUxfRk9MRF9MRUZUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xJU1RfREVUQUlMX0ZPTERfTEVGVF9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbnRyb2wvZXhwcl9paWYuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9paWYuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hZHQuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcD4KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDMxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDM0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDM3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgzOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNDEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg0MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNDQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg0NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQ2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNDcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg0OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDQ5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDUyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDU1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg1NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDU4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNTksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDYxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDY0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDY3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNjgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg2OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDcwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNzEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg3MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzczLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDczLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNzQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg3NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDc2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoNzcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg3OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDc5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDgyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDg1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg4NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDg4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoODksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDkxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDk0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDk3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoOTgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSg5OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTAyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTA1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEwNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTA4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMDksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTExLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTExKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMTIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTE0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMTUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTE3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMTgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDExOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTIwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMjEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTIzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMjQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTI2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMjcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEyOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTI5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTMyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTM1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDEzNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTM4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxMzksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQ0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTQ3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE0OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTUwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTUzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTU2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE1OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTU5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTYyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTY1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE2NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTY4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3MCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTcxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTczLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3MywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTc0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3NiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTc3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxNzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE3OSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTgwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxODEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTgzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxODQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTg2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxODcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE4OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTg5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTkyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTk1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDE5NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMTk4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5OSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgxOTksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjAxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMDIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjA0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMDUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjA3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMDgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIwOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjEwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMTEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxMiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjEzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMTQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxNSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjE2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMTcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIxOCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjE5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyMSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjIyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyNCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjI1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIyNywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjgsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjI4LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI4KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyOSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMjksIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjkobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMwLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzMCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzEsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjMxLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMxKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMzIsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzIobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMzLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzMywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMyhvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzQsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjM0LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM0KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMzUsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzUobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM2LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzNiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzcsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjM3LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM3KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyMzgsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzgobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM5LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDIzOSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDAsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQwLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQwKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MSwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNDEsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDEobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQyLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0MiwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MihvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDMsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQzLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQzKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNDQsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDQobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ1LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0NSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDYsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQ2LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ2KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNDcsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDcobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ4LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI0OCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDksIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjQ5LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ5KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MCwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNTAsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTAobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUxLCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1MSwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MShvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTIsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjUyLCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUyKG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MywgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNTMsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTMobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU0LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1NCwgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NChvLCBzLCBsKSBCT09TVF9QUF9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTUsIHMgQk9PU1RfUFBfVFVQTEVfRUFUXzMpKG8sIEJPT1NUX1BQX0VYUFJfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgbykoMjU1LCBzLCBCT09TVF9QUF9MSVNUX0ZJUlNUKGwpKSwgQk9PU1RfUFBfTElTVF9SRVNUKGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU1KG8sIHMsIGwpIEJPT1NUX1BQX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NiwgcyBCT09TVF9QUF9UVVBMRV9FQVRfMykobywgQk9PU1RfUFBfRVhQUl9JSUYoQk9PU1RfUFBfTElTVF9JU19DT05TKGwpLCBvKSgyNTYsIHMsIEJPT1NUX1BQX0xJU1RfRklSU1QobCkpLCBCT09TVF9QUF9MSVNUX1JFU1QobCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTYobywgcywgbCkgQk9PU1RfUFBfSUlGKEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhsKSwgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU3LCBzIEJPT1NUX1BQX1RVUExFX0VBVF8zKShvLCBCT09TVF9QUF9FWFBSX0lJRihCT09TVF9QUF9MSVNUX0lTX0NPTlMobCksIG8pKDI1NywgcywgQk9PU1RfUFBfTElTVF9GSVJTVChsKSksIEJPT1NUX1BQX0xJU1RfUkVTVChsKSkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9mb2xkX3JpZ2h0LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9mb2xkX3JpZ2h0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTE0NmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2ZvbGRfcmlnaHQuaHBwCkBAIC0wLDAgKzEsMjc3IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0RFVEFJTF9GT0xEX1JJR0hUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xJU1RfREVUQUlMX0ZPTERfUklHSFRfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2ZvbGRfbGVmdC5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L3JldmVyc2UuaHBwPgorIworIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoOCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yOShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyOSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMzAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzMxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDMxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zMihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgzMiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMzMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDM0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zNShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgzNSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMzYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzM3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzM3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDM3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8zOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8zOChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgzOCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMzksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDQwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80MShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg0MSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNDIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQzKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDQzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg0NCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNDUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDQ2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF80NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF80NyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg0NywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNDgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzQ5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzQ5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDQ5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg1MCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNTEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzUyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzUyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDUyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81MyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg1MywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNTQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDU1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81NihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg1NiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNTcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzU4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzU4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDU4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF81OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81OShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg1OSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNjAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzYxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDYxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82MihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg2MiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNjMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDY0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82NShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg2NSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNjYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzY3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzY3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDY3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF82OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF82OChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg2OCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNjkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNjksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzcwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzcwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDcwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83MShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg3MSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNzIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzczKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzczKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDczLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg3NCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNzUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDc2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF83NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF83NyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg3NywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfNzgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoNzgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzc5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzc5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDc5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg4MCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoODEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzgyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzgyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDgyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84MyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg4MywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoODQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDg1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84NihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg4NiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfODcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoODcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzg4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzg4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDg4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF84OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84OShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg4OSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoOTAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzkxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDkxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85MihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg5MiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoOTMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDk0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85NShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg5NSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoOTYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzk3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzk3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDk3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF85OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF85OChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCg5OCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfOTkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoOTksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTAwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEwMSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTAyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMDIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTAzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEwNCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTA1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMDUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTA2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMDcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEwNywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTA4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwOChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMDgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEwOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTA5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDExMCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTExKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMTEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTEyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEzKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDExMywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTE0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMTQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTE1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDExNiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTE3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMTcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzExOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTE4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMTkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDExOSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMjAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTIxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEyMiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTIzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMjMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTI0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEyNSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTI2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMjYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEyNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTI3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMjgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEyOCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTI5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMjksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTMwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEzMSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTMyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMzIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTMzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEzNCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTM1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMzUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTM2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xMzcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDEzNywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTM4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzOChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxMzgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzEzOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTM5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE0MCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNDEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTQyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQzKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE0MywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQ0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNDQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTQ1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE0NiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTQ3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNDcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE0OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTQ4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNDkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE0OSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNTAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTUxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE1MiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTUzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNTMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTU0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE1NSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTU2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNTYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE1NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTU3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNTgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE1OCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTU5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNTksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTYwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE2MSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTYyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNjIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTYzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE2NCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTY1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNjUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTY2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNjcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE2NywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTY4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2OChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNjgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE2OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTY5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE3MCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTcxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNzEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3MihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTcyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTczKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE3MywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTc0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNzQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3NShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTc1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE3NiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTc3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxNzcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE3OChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTc4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xNzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE3OSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxODAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTgxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE4MiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTgzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxODMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTg0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE4NSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTg2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxODYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE4NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTg3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xODgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE4OCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTg5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxODksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTkwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE5MSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTkyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxOTIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTkzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE5NCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTk1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxOTUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTk2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8xOTcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDE5NywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMTk4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5OChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgxOTgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzE5OShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMTk5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIwMCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjAxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMDEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjAyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAzKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIwMywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjA0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMDQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjA1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIwNiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjA3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMDcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIwOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjA4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMDkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIwOSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMTAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxMShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjExLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIxMiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjEzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMTMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjE0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIxNSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjE2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMTYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIxNyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjE3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMTgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIxOCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjE5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMTksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjIwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIyMSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjIyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMjIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyMyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjIzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIyNCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjI1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMjUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyNihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjI2LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMjcobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI3KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIyNywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjI4KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyOChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMjgsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIyOShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjkobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjI5LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzAobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMwKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIzMCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjMxKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMzEsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzMihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzIobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjMyLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzMobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMzKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIzMywgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjM0KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMzQsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzNShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzUobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjM1LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzYobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM2KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIzNiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjM3KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyMzcsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzIzOChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzgobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjM4LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yMzkobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM5KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDIzOSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQwKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MChvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNDAsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0MShvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDEobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjQxLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDIobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQyKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI0MiwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQzKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MyhvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNDMsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDQobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjQ0LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDUobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ1KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI0NSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQ2KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNDYsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI0NyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDcobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjQ3LCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNDgobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ4KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI0OCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjQ5KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNDksIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MChvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTAobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjUwLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTEobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUxKG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI1MSwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjUyKG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MihvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNTIsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1MyhvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTMobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjUzLCBsKSkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yNTQobywgcywgbCkgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU0KG8sIHMsIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9EKDI1NCwgbCkpCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMjU1KG8sIHMsIGwpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NShvLCBzLCBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRCgyNTUsIGwpKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NihvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTYobywgcywgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QoMjU2LCBsKSkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2ZvbGRfbGVmdC5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb2xkX2xlZnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyMzVhZWMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb2xkX2xlZnQuaHBwCkBAIC0wLDAgKzEsMzAzIEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0ZPTERfTEVGVF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0ZPTERfTEVGVF9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL3doaWxlLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2RlYnVnL2Vycm9yLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9hdXRvX3JlYy5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUICovCisjCisjIGlmIDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUKG9wLCBzdGF0ZSwgbGlzdCkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUIEJPT1NUX1BQX0NBVChCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8sIEJPT1NUX1BQX0FVVE9fUkVDKEJPT1NUX1BQX1dISUxFX1AsIDI1NikpCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTcobywgcywgbCkgQk9PU1RfUFBfRVJST1IoMHgwMDA0KQorIworIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfRChkLCBvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8gIyMgZChvLCBzLCBsKQorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMk5EIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yTkRfRCBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9ECisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2RldGFpbC9lZGcvZm9sZF9sZWZ0LmhwcD4KKyMgZWxpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19ETUMoKQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZG1jL2ZvbGRfbGVmdC5ocHA+CisjIGVsc2UKKyMgICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2ZvbGRfbGVmdC5ocHA+CisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9OSUwgMQorIworIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF81KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF84KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMzkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNDkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNTkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNjkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfNzkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfODkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfOTkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTAzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEwNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMDgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTA5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTEyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMTcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTE4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzExOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTIxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTI3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEyOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMjkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTMzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzEzNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xMzgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTM5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNDcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTQ4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE0OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTUxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTU3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE1OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNTkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTYzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE2NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNjgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTY5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTcyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3MyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3NihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xNzcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTc4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE3OShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTgxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTg3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE4OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xODkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTkzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzE5NyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8xOTgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMTk5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjAyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMDcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjA4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIwOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjExKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxMihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxNShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjE3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIxOChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMTkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyMShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjIzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI2KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIyNyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMjgobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjI5KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzEobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjMyKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzMyhvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzQobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM1KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzNihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yMzcobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjM4KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzIzOShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDAobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQxKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0MihvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDMobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ0KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0NShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDYobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjQ3KG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI0OChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNDkobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUwKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1MShvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTIobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjUzKG8sIHMsIGwpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUX0NIRUNLX0JPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXzI1NChvLCBzLCBsKSAwCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF9DSEVDS19CT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8yNTUobywgcywgbCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfQ0hFQ0tfQk9PU1RfUFBfTElTVF9GT0xEX0xFRlRfMjU2KG8sIHMsIGwpIDAKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2ZvbGRfcmlnaHQuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZm9sZF9yaWdodC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UxOGFmZQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2ZvbGRfcmlnaHQuaHBwCkBAIC0wLDAgKzEsNDAgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0xJU1RfRk9MRF9SSUdIVF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0ZPTERfUklHSFRfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC93aGlsZS5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9kZWJ1Zy9lcnJvci5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvYXV0b19yZWMuaHBwPgorIworIyBpZiAwCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFQob3AsIHN0YXRlLCBsaXN0KQorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUIEJPT1NUX1BQX0NBVChCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfLCBCT09TVF9QUF9BVVRPX1JFQyhCT09TVF9QUF9XSElMRV9QLCAyNTYpKQorIworIyBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXzI1NyhvLCBzLCBsKSBCT09TVF9QUF9FUlJPUigweDAwMDQpCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfRChkLCBvLCBzLCBsKSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfICMjIGQobywgcywgbCkKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVF8yTkQgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfMk5EX0QgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUX0QKKyMKKyMgaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvZGV0YWlsL2VkZy9mb2xkX3JpZ2h0LmhwcD4KKyMgZWxzZQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9kZXRhaWwvZm9sZF9yaWdodC5ocHA+CisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb3JfZWFjaF9pLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2Zvcl9lYWNoX2kuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMDJlMmUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb3JfZWFjaF9pLmhwcApAQCAtMCwwICsxLDY1IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0xJU1RfRk9SX0VBQ0hfSV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX0xJU1RfRk9SX0VBQ0hfSV9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2FyaXRobWV0aWMvaW5jLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hZHQuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9mb3IuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9yZW0uaHBwPgorIworIyAvKiBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0kgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpICYmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSShtYWNybywgZGF0YSwgbGlzdCkgQk9PU1RfUFBfRk9SKChtYWNybywgZGF0YSwgbGlzdCwgMCksIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9QLCBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTywgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX00pCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSShtYWNybywgZGF0YSwgbGlzdCkgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX0kobWFjcm8sIGRhdGEsIGxpc3QpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfSShtYWNybywgZGF0YSwgbGlzdCkgQk9PU1RfUFBfRk9SKChtYWNybywgZGF0YSwgbGlzdCwgMCksIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9QLCBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTywgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX00pCisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX1NUUklDVCgpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfUChyLCB4KSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfUF9EIHgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9QX0QobSwgZCwgbCwgaSkgQk9PU1RfUFBfTElTVF9JU19DT05TKGwpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9QKHIsIHgpIEJPT1NUX1BQX0xJU1RfSVNfQ09OUyhCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDIsIHgpKQorIyBlbmRpZgorIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTyhyLCB4KSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfT19EIHgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9PX0QobSwgZCwgbCwgaSkgKG0sIGQsIEJPT1NUX1BQX0xJU1RfUkVTVChsKSwgQk9PU1RfUFBfSU5DKGkpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTyhyLCB4KSAoQk9PU1RfUFBfVFVQTEVfRUxFTSg0LCAwLCB4KSwgQk9PU1RfUFBfVFVQTEVfRUxFTSg0LCAxLCB4KSwgQk9PU1RfUFBfTElTVF9SRVNUKEJPT1NUX1BQX1RVUExFX0VMRU0oNCwgMiwgeCkpLCBCT09TVF9QUF9JTkMoQk9PU1RfUFBfVFVQTEVfRUxFTSg0LCAzLCB4KSkpCisjIGVuZGlmCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX00ociwgeCkgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX01fRChyLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDAsIHgpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDEsIHgpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDIsIHgpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDQsIDMsIHgpKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTShyLCB4KSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTV9JKHIsIEJPT1NUX1BQX1RVUExFX1JFTV80IHgpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTV9JKHIsIHhfZSkgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX01fRChyLCB4X2UpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTV9EKHIsIG0sIGQsIGwsIGkpIG0ociwgZCwgaSwgQk9PU1RfUFBfTElTVF9GSVJTVChsKSkKKyMKKyMgLyogQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX1IgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfUihyLCBtYWNybywgZGF0YSwgbGlzdCkgQk9PU1RfUFBfRk9SXyAjIyByKChtYWNybywgZGF0YSwgbGlzdCwgMCksIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9QLCBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTywgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX00pCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9SKHIsIG1hY3JvLCBkYXRhLCBsaXN0KSBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfUl9JKHIsIG1hY3JvLCBkYXRhLCBsaXN0KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX1JfSShyLCBtYWNybywgZGF0YSwgbGlzdCkgQk9PU1RfUFBfRk9SXyAjIyByKChtYWNybywgZGF0YSwgbGlzdCwgMCksIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSV9QLCBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0lfTywgQk9PU1RfUFBfTElTVF9GT1JfRUFDSF9JX00pCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9yZXZlcnNlLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9saXN0L3JldmVyc2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1MWRhMDUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9yZXZlcnNlLmhwcApAQCAtMCwwICsxLDQwIEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX1JFVkVSU0VfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfTElTVF9SRVZFUlNFX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9saXN0L2ZvbGRfbGVmdC5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0xJU1RfUkVWRVJTRSAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfUkVWRVJTRShsaXN0KSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVChCT09TVF9QUF9MSVNUX1JFVkVSU0VfTywgQk9PU1RfUFBfTklMLCBsaXN0KQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1JFVkVSU0UobGlzdCkgQk9PU1RfUFBfTElTVF9SRVZFUlNFX0kobGlzdCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9JKGxpc3QpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUKEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9PLCBCT09TVF9QUF9OSUwsIGxpc3QpCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9MSVNUX1JFVkVSU0VfTyhkLCBzLCB4KSAoeCwgcykKKyMKKyMgLyogQk9PU1RfUFBfTElTVF9SRVZFUlNFX0QgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRChkLCBsaXN0KSBCT09TVF9QUF9MSVNUX0ZPTERfTEVGVF8gIyMgZChCT09TVF9QUF9MSVNUX1JFVkVSU0VfTywgQk9PU1RfUFBfTklMLCBsaXN0KQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRChkLCBsaXN0KSBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRF9JKGQsIGxpc3QpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1JFVkVSU0VfRF9JKGQsIGxpc3QpIEJPT1NUX1BQX0xJU1RfRk9MRF9MRUZUXyAjIyBkKEJPT1NUX1BQX0xJU1RfUkVWRVJTRV9PLCBCT09TVF9QUF9OSUwsIGxpc3QpCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvbGlzdC90cmFuc2Zvcm0uaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvdHJhbnNmb3JtLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDBmMzA2Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvdHJhbnNmb3JtLmhwcApAQCAtMCwwICsxLDQ5IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX1RSQU5TRk9STV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9MSVNUX1RSQU5TRk9STV9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb2xkX3JpZ2h0LmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VsZW0uaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvcmVtLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk0gKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1RSQU5TRk9STShvcCwgZGF0YSwgbGlzdCkgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAyLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFQoQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk1fTywgKG9wLCBkYXRhLCBCT09TVF9QUF9OSUwpLCBsaXN0KSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk0ob3AsIGRhdGEsIGxpc3QpIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX0kob3AsIGRhdGEsIGxpc3QpCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1RSQU5TRk9STV9JKG9wLCBkYXRhLCBsaXN0KSBCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDIsIEJPT1NUX1BQX0xJU1RfRk9MRF9SSUdIVChCT09TVF9QUF9MSVNUX1RSQU5TRk9STV9PLCAob3AsIGRhdGEsIEJPT1NUX1BQX05JTCksIGxpc3QpKQorIyBlbmRpZgorIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX08oZCwgb2RyLCBlbGVtKSBCT09TVF9QUF9MSVNUX1RSQU5TRk9STV9PX0QoZCwgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAwLCBvZHIpLCBCT09TVF9QUF9UVVBMRV9FTEVNKDMsIDEsIG9kciksIEJPT1NUX1BQX1RVUExFX0VMRU0oMywgMiwgb2RyKSwgZWxlbSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk1fTyhkLCBvZHIsIGVsZW0pIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX09fSShkLCBCT09TVF9QUF9UVVBMRV9SRU1fMyBvZHIsIGVsZW0pCisjICAgIGRlZmluZSBCT09TVF9QUF9MSVNUX1RSQU5TRk9STV9PX0koZCwgaW0sIGVsZW0pIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX09fRChkLCBpbSwgZWxlbSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX09fRChkLCBvcCwgZGF0YSwgcmVzLCBlbGVtKSAob3AsIGRhdGEsIChvcChkLCBkYXRhLCBlbGVtKSwgcmVzKSkKKyMKKyMgLyogQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk1fRCAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX0QoZCwgb3AsIGRhdGEsIGxpc3QpIEJPT1NUX1BQX1RVUExFX0VMRU0oMywgMiwgQk9PU1RfUFBfTElTVF9GT0xEX1JJR0hUXyAjIyBkKEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX08sIChvcCwgZGF0YSwgQk9PU1RfUFBfTklMKSwgbGlzdCkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX0QoZCwgb3AsIGRhdGEsIGxpc3QpIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX0RfSShkLCBvcCwgZGF0YSwgbGlzdCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0xJU1RfVFJBTlNGT1JNX0RfSShkLCBvcCwgZGF0YSwgbGlzdCkgQk9PU1RfUFBfVFVQTEVfRUxFTSgzLCAyLCBCT09TVF9QUF9MSVNUX0ZPTERfUklHSFRfICMjIGQoQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk1fTywgKG9wLCBkYXRhLCBCT09TVF9QUF9OSUwpLCBsaXN0KSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2FuZC5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9hbmQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1OTAzNjUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9hbmQuaHBwCkBAIC0wLDAgKzEsMzAgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0xPR0lDQUxfQU5EX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xPR0lDQUxfQU5EX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2Jvb2wuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9iaXRhbmQuaHBwPgorIworIyAvKiBCT09TVF9QUF9BTkQgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9BTkQocCwgcSkgQk9PU1RfUFBfQklUQU5EKEJPT1NUX1BQX0JPT0wocCksIEJPT1NUX1BQX0JPT0wocSkpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0FORChwLCBxKSBCT09TVF9QUF9BTkRfSShwLCBxKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQU5EX0kocCwgcSkgQk9PU1RfUFBfQklUQU5EKEJPT1NUX1BQX0JPT0wocCksIEJPT1NUX1BQX0JPT0wocSkpCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9iaXRhbmQuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYml0YW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NGU5NTI3Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYml0YW5kLmhwcApAQCAtMCwwICsxLDM4IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0xPR0lDQUxfQklUQU5EX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xPR0lDQUxfQklUQU5EX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjCisjIC8qIEJPT1NUX1BQX0JJVEFORCAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9CSVRBTkQoeCwgeSkgQk9PU1RfUFBfQklUQU5EX0koeCwgeSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQklUQU5EKHgsIHkpIEJPT1NUX1BQX0JJVEFORF9PTygoeCwgeSkpCisjICAgIGRlZmluZSBCT09TVF9QUF9CSVRBTkRfT08ocGFyKSBCT09TVF9QUF9CSVRBTkRfSSAjIyBwYXIKKyMgZW5kaWYKKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01TVkMoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQklUQU5EX0koeCwgeSkgQk9PU1RfUFBfQklUQU5EXyAjIyB4ICMjIHkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQklUQU5EX0koeCwgeSkgQk9PU1RfUFBfQklUQU5EX0lEKEJPT1NUX1BQX0JJVEFORF8gIyMgeCAjIyB5KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQklUQU5EX0lEKHJlcykgcmVzCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9CSVRBTkRfMDAgMAorIyBkZWZpbmUgQk9PU1RfUFBfQklUQU5EXzAxIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0JJVEFORF8xMCAwCisjIGRlZmluZSBCT09TVF9QUF9CSVRBTkRfMTEgMQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYm9vbC5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9ib29sLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzAxYjViCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvYm9vbC5ocHAKQEAgLTAsMCArMSwyODggQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX0xPR0lDQUxfQk9PTF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9MT0dJQ0FMX0JPT0xfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfQk9PTCAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgIGRlZmluZSBCT09TVF9QUF9CT09MKHgpIEJPT1NUX1BQX0JPT0xfSSh4KQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9CT09MKHgpIEJPT1NUX1BQX0JPT0xfT08oKHgpKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQk9PTF9PTyhwYXIpIEJPT1NUX1BQX0JPT0xfSSAjIyBwYXIKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfSSh4KSBCT09TVF9QUF9CT09MXyAjIyB4CisjCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzAgMAorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMiAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF80IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF83IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfOCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzExIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMyAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzE0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNiAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzE3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMTggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xOSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzIwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMiAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzIzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzI2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMjcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yOCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzI5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMzAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8zMSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzMyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMzMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8zNCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzM1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMzYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8zNyAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzM4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfMzkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF80MCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzQxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNDIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF80MyAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzQ0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNDUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF80NiAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzQ3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNDggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF80OSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzUwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNTEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF81MiAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzUzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNTQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF81NSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzU2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNTcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF81OCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzU5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNjAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF82MSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzYyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNjMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF82NCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzY1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNjYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF82NyAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzY4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNjkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF83MCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzcxIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNzIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF83MyAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzc0IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNzUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF83NiAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzc3IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfNzggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF83OSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzgwIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfODEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF84MiAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzgzIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfODQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF84NSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzg2IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfODcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF84OCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzg5IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfOTAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF85MSAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzkyIDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfOTMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF85NCAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzk1IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfOTYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF85NyAxCisjIGRlZmluZSBCT09TVF9QUF9CT09MXzk4IDEKKyMgZGVmaW5lIEJPT1NUX1BQX0JPT0xfOTkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMDAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMDEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMDIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMDMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMDQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMDUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMDYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMDcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMDggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMDkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMTAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMTEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMTIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMTMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMTQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMTUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMTYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMTcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMTggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMTkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMjAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMjEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMjIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMjMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMjQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMjUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMjYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMjcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMjggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMjkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMzAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMzEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMzIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMzMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMzQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMzUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMzYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMzcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMzggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xMzkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNDAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNDEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNDIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNDMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNDQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNDUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNDYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNDcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNDggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNDkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNTAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNTEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNTIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNTMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNTQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNTUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNTYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNTcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNTggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNTkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNjAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNjEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNjIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNjMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNjQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNjUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNjYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNjcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNjggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNjkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNzAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNzEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNzIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNzMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNzQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNzUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNzYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNzcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNzggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xNzkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xODAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xODEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xODIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xODMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xODQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xODUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xODYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xODcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xODggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xODkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xOTAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xOTEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xOTIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xOTMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xOTQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xOTUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xOTYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xOTcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xOTggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8xOTkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMDAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMDEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMDIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMDMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMDQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMDUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMDYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMDcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMDggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMDkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMTAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMTEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMTIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMTMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMTQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMTUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMTYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMTcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMTggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMTkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMjAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMjEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMjIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMjMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMjQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMjUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMjYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMjcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMjggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMjkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMzAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMzEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMzIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMzMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMzQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMzUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMzYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMzcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMzggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yMzkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNDAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNDEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNDIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNDMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNDQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNDUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNDYgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNDcgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNDggMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNDkgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNTAgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNTEgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNTIgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNTMgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNTQgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNTUgMQorIyBkZWZpbmUgQk9PU1RfUFBfQk9PTF8yNTYgMQorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvY29tcGwuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL2xvZ2ljYWwvY29tcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkNGM3YTQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvbG9naWNhbC9jb21wbC5ocHAKQEAgLTAsMCArMSwzNiBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9MT0dJQ0FMX0NPTVBMX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX0xPR0lDQUxfQ09NUExfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfQ09NUEwgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01XQ0MoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09NUEwoeCkgQk9PU1RfUFBfQ09NUExfSSh4KQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9DT01QTCh4KSBCT09TVF9QUF9DT01QTF9PTygoeCkpCisjICAgIGRlZmluZSBCT09TVF9QUF9DT01QTF9PTyhwYXIpIEJPT1NUX1BQX0NPTVBMX0kgIyMgcGFyCisjIGVuZGlmCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPTVBMX0koeCkgQk9PU1RfUFBfQ09NUExfICMjIHgKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09NUExfSSh4KSBCT09TVF9QUF9DT01QTF9JRChCT09TVF9QUF9DT01QTF8gIyMgeCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPTVBMX0lEKGlkKSBpZAorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfQ09NUExfMCAxCisjIGRlZmluZSBCT09TVF9QUF9DT01QTF8xIDAKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9wdW5jdHVhdGlvbi9jb21tYS5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vY29tbWEuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4YzJlMGUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vY29tbWEuaHBwCkBAIC0wLDAgKzEsMjEgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1BVTkNUVUFUSU9OX0NPTU1BX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1BVTkNUVUFUSU9OX0NPTU1BX0hQUAorIworIyAvKiBCT09TVF9QUF9DT01NQSAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfQ09NTUEoKSAsCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vY29tbWFfaWYuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3B1bmN0dWF0aW9uL2NvbW1hX2lmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzExZjM2Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3B1bmN0dWF0aW9uL2NvbW1hX2lmLmhwcApAQCAtMCwwICsxLDMxIEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9QVU5DVFVBVElPTl9DT01NQV9JRl9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9QVU5DVFVBVElPTl9DT01NQV9JRl9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9pZi5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL2VtcHR5LmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3B1bmN0dWF0aW9uL2NvbW1hLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfQ09NTUFfSUYgKi8KKyMKKyMgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX0VERygpCisjICAgIGRlZmluZSBCT09TVF9QUF9DT01NQV9JRihjb25kKSBCT09TVF9QUF9JRihjb25kLCBCT09TVF9QUF9DT01NQSwgQk9PU1RfUFBfRU1QVFkpKCkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09NTUFfSUYoY29uZCkgQk9PU1RfUFBfQ09NTUFfSUZfSShjb25kKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09NTUFfSUZfSShjb25kKSBCT09TVF9QUF9JRihjb25kLCBCT09TVF9QUF9DT01NQSwgQk9PU1RfUFBfRU1QVFkpKCkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXQuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGVhdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2M0N2VlOAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9yZXBlYXQuaHBwCkBAIC0wLDAgKzEsMTcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRUFUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVBVF9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vcmVwZWF0LmhwcD4KKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9kbWMvZm9yLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9kbWMvZm9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDkwN2ZmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZGV0YWlsL2RtYy9mb3IuaHBwCkBAIC0wLDAgKzEsNTM2IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFVElUSU9OX0RFVEFJTF9GT1JfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9ERVRBSUxfRk9SX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9leHByX2lpZi5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lpZi5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2Jvb2wuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcD4KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xX0MoQk9PU1RfUFBfQk9PTChwIyMoMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzJfQyhCT09TVF9QUF9CT09MKHAjIygzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfM19DKEJPT1NUX1BQX0JPT0wocCMjKDQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80X0MoQk9PU1RfUFBfQk9PTChwIyMoNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzVfQyhCT09TVF9QUF9CT09MKHAjIyg2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNl9DKEJPT1NUX1BQX0JPT0wocCMjKDcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83X0MoQk9PU1RfUFBfQk9PTChwIyMoOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzhfQyhCT09TVF9QUF9CT09MKHAjIyg5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOV9DKEJPT1NUX1BQX0JPT0wocCMjKDEwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwX0MoQk9PU1RfUFBfQk9PTChwIyMoMTEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTFfQyhCT09TVF9QUF9CT09MKHAjIygxMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMl9DKEJPT1NUX1BQX0JPT0wocCMjKDEzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzX0MoQk9PU1RfUFBfQk9PTChwIyMoMTQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTRfQyhCT09TVF9QUF9CT09MKHAjIygxNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNV9DKEJPT1NUX1BQX0JPT0wocCMjKDE2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2X0MoQk9PU1RfUFBfQk9PTChwIyMoMTcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTdfQyhCT09TVF9QUF9CT09MKHAjIygxOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOF9DKEJPT1NUX1BQX0JPT0wocCMjKDE5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5X0MoQk9PU1RfUFBfQk9PTChwIyMoMjAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjBfQyhCT09TVF9QUF9CT09MKHAjIygyMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMV9DKEJPT1NUX1BQX0JPT0wocCMjKDIyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyX0MoQk9PU1RfUFBfQk9PTChwIyMoMjMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjNfQyhCT09TVF9QUF9CT09MKHAjIygyNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNF9DKEJPT1NUX1BQX0JPT0wocCMjKDI1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1X0MoQk9PU1RfUFBfQk9PTChwIyMoMjYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjZfQyhCT09TVF9QUF9CT09MKHAjIygyNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yN19DKEJPT1NUX1BQX0JPT0wocCMjKDI4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI4X0MoQk9PU1RfUFBfQk9PTChwIyMoMjksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjlfQyhCT09TVF9QUF9CT09MKHAjIygzMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zMF9DKEJPT1NUX1BQX0JPT0wocCMjKDMxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzMxX0MoQk9PU1RfUFBfQk9PTChwIyMoMzIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzJfQyhCT09TVF9QUF9CT09MKHAjIygzMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zM19DKEJPT1NUX1BQX0JPT0wocCMjKDM0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM0X0MoQk9PU1RfUFBfQk9PTChwIyMoMzUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzVfQyhCT09TVF9QUF9CT09MKHAjIygzNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zNl9DKEJPT1NUX1BQX0JPT0wocCMjKDM3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM3X0MoQk9PU1RfUFBfQk9PTChwIyMoMzgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzhfQyhCT09TVF9QUF9CT09MKHAjIygzOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zOV9DKEJPT1NUX1BQX0JPT0wocCMjKDQwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQwX0MoQk9PU1RfUFBfQk9PTChwIyMoNDEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNDFfQyhCT09TVF9QUF9CT09MKHAjIyg0MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDQzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQzX0MoQk9PU1RfUFBfQk9PTChwIyMoNDQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNDRfQyhCT09TVF9QUF9CT09MKHAjIyg0NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80NV9DKEJPT1NUX1BQX0JPT0wocCMjKDQ2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ2X0MoQk9PU1RfUFBfQk9PTChwIyMoNDcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNDdfQyhCT09TVF9QUF9CT09MKHAjIyg0OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80OF9DKEJPT1NUX1BQX0JPT0wocCMjKDQ5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ5X0MoQk9PU1RfUFBfQk9PTChwIyMoNTAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTBfQyhCT09TVF9QUF9CT09MKHAjIyg1MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81MV9DKEJPT1NUX1BQX0JPT0wocCMjKDUyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzUyX0MoQk9PU1RfUFBfQk9PTChwIyMoNTMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTNfQyhCT09TVF9QUF9CT09MKHAjIyg1NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81NF9DKEJPT1NUX1BQX0JPT0wocCMjKDU1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU1X0MoQk9PU1RfUFBfQk9PTChwIyMoNTYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTZfQyhCT09TVF9QUF9CT09MKHAjIyg1NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81N19DKEJPT1NUX1BQX0JPT0wocCMjKDU4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU4X0MoQk9PU1RfUFBfQk9PTChwIyMoNTksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTlfQyhCT09TVF9QUF9CT09MKHAjIyg2MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82MF9DKEJPT1NUX1BQX0JPT0wocCMjKDYxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzYxX0MoQk9PU1RfUFBfQk9PTChwIyMoNjIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjJfQyhCT09TVF9QUF9CT09MKHAjIyg2MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82M19DKEJPT1NUX1BQX0JPT0wocCMjKDY0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY0X0MoQk9PU1RfUFBfQk9PTChwIyMoNjUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjVfQyhCT09TVF9QUF9CT09MKHAjIyg2NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDY3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY3X0MoQk9PU1RfUFBfQk9PTChwIyMoNjgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjhfQyhCT09TVF9QUF9CT09MKHAjIyg2OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82OV9DKEJPT1NUX1BQX0JPT0wocCMjKDcwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzcwX0MoQk9PU1RfUFBfQk9PTChwIyMoNzEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNzFfQyhCT09TVF9QUF9CT09MKHAjIyg3MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDczLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzczX0MoQk9PU1RfUFBfQk9PTChwIyMoNzQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNzRfQyhCT09TVF9QUF9CT09MKHAjIyg3NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83NV9DKEJPT1NUX1BQX0JPT0wocCMjKDc2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc2X0MoQk9PU1RfUFBfQk9PTChwIyMoNzcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNzdfQyhCT09TVF9QUF9CT09MKHAjIyg3OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83OF9DKEJPT1NUX1BQX0JPT0wocCMjKDc5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc5X0MoQk9PU1RfUFBfQk9PTChwIyMoODAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODBfQyhCT09TVF9QUF9CT09MKHAjIyg4MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84MV9DKEJPT1NUX1BQX0JPT0wocCMjKDgyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzgyX0MoQk9PU1RfUFBfQk9PTChwIyMoODMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODNfQyhCT09TVF9QUF9CT09MKHAjIyg4NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84NF9DKEJPT1NUX1BQX0JPT0wocCMjKDg1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg1X0MoQk9PU1RfUFBfQk9PTChwIyMoODYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODZfQyhCT09TVF9QUF9CT09MKHAjIyg4NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84N19DKEJPT1NUX1BQX0JPT0wocCMjKDg4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg4X0MoQk9PU1RfUFBfQk9PTChwIyMoODksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODlfQyhCT09TVF9QUF9CT09MKHAjIyg5MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85MF9DKEJPT1NUX1BQX0JPT0wocCMjKDkxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzkxX0MoQk9PU1RfUFBfQk9PTChwIyMoOTIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOTJfQyhCT09TVF9QUF9CT09MKHAjIyg5MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85M19DKEJPT1NUX1BQX0JPT0wocCMjKDk0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk0X0MoQk9PU1RfUFBfQk9PTChwIyMoOTUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOTVfQyhCT09TVF9QUF9CT09MKHAjIyg5NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDk3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk3X0MoQk9PU1RfUFBfQk9PTChwIyMoOTgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOThfQyhCT09TVF9QUF9CT09MKHAjIyg5OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85OV9DKEJPT1NUX1BQX0JPT0wocCMjKDEwMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTAwX0MoQk9PU1RfUFBfQk9PTChwIyMoMTAxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMDFfQyhCT09TVF9QUF9CT09MKHAjIygxMDIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwMl9DKEJPT1NUX1BQX0JPT0wocCMjKDEwMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTAzX0MoQk9PU1RfUFBfQk9PTChwIyMoMTA0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMDRfQyhCT09TVF9QUF9CT09MKHAjIygxMDUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwNV9DKEJPT1NUX1BQX0JPT0wocCMjKDEwNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA2X0MoQk9PU1RfUFBfQk9PTChwIyMoMTA3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMDdfQyhCT09TVF9QUF9CT09MKHAjIygxMDgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwOF9DKEJPT1NUX1BQX0JPT0wocCMjKDEwOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA5X0MoQk9PU1RfUFBfQk9PTChwIyMoMTEwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMTBfQyhCT09TVF9QUF9CT09MKHAjIygxMTEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExMV9DKEJPT1NUX1BQX0JPT0wocCMjKDExMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTEyX0MoQk9PU1RfUFBfQk9PTChwIyMoMTEzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMTNfQyhCT09TVF9QUF9CT09MKHAjIygxMTQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExNF9DKEJPT1NUX1BQX0JPT0wocCMjKDExNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE1X0MoQk9PU1RfUFBfQk9PTChwIyMoMTE2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMTZfQyhCT09TVF9QUF9CT09MKHAjIygxMTcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExN19DKEJPT1NUX1BQX0JPT0wocCMjKDExOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE4X0MoQk9PU1RfUFBfQk9PTChwIyMoMTE5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMTlfQyhCT09TVF9QUF9CT09MKHAjIygxMjAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyMF9DKEJPT1NUX1BQX0JPT0wocCMjKDEyMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTIxX0MoQk9PU1RfUFBfQk9PTChwIyMoMTIyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjJfQyhCT09TVF9QUF9CT09MKHAjIygxMjMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyM19DKEJPT1NUX1BQX0JPT0wocCMjKDEyNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI0X0MoQk9PU1RfUFBfQk9PTChwIyMoMTI1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjVfQyhCT09TVF9QUF9CT09MKHAjIygxMjYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyNl9DKEJPT1NUX1BQX0JPT0wocCMjKDEyNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI3X0MoQk9PU1RfUFBfQk9PTChwIyMoMTI4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjhfQyhCT09TVF9QUF9CT09MKHAjIygxMjksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyOV9DKEJPT1NUX1BQX0JPT0wocCMjKDEzMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTMwX0MoQk9PU1RfUFBfQk9PTChwIyMoMTMxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMzFfQyhCT09TVF9QUF9CT09MKHAjIygxMzIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzMl9DKEJPT1NUX1BQX0JPT0wocCMjKDEzMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTMzX0MoQk9PU1RfUFBfQk9PTChwIyMoMTM0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMzRfQyhCT09TVF9QUF9CT09MKHAjIygxMzUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzNV9DKEJPT1NUX1BQX0JPT0wocCMjKDEzNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM2X0MoQk9PU1RfUFBfQk9PTChwIyMoMTM3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMzdfQyhCT09TVF9QUF9CT09MKHAjIygxMzgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzOF9DKEJPT1NUX1BQX0JPT0wocCMjKDEzOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM5X0MoQk9PU1RfUFBfQk9PTChwIyMoMTQwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNDBfQyhCT09TVF9QUF9CT09MKHAjIygxNDEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0MV9DKEJPT1NUX1BQX0JPT0wocCMjKDE0MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQyX0MoQk9PU1RfUFBfQk9PTChwIyMoMTQzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNDNfQyhCT09TVF9QUF9CT09MKHAjIygxNDQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0NF9DKEJPT1NUX1BQX0JPT0wocCMjKDE0NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ1X0MoQk9PU1RfUFBfQk9PTChwIyMoMTQ2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNDZfQyhCT09TVF9QUF9CT09MKHAjIygxNDcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0N19DKEJPT1NUX1BQX0JPT0wocCMjKDE0OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ4X0MoQk9PU1RfUFBfQk9PTChwIyMoMTQ5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNDlfQyhCT09TVF9QUF9CT09MKHAjIygxNTAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1MF9DKEJPT1NUX1BQX0JPT0wocCMjKDE1MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTUxX0MoQk9PU1RfUFBfQk9PTChwIyMoMTUyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNTJfQyhCT09TVF9QUF9CT09MKHAjIygxNTMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1M19DKEJPT1NUX1BQX0JPT0wocCMjKDE1NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU0X0MoQk9PU1RfUFBfQk9PTChwIyMoMTU1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNTVfQyhCT09TVF9QUF9CT09MKHAjIygxNTYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDE1NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU3X0MoQk9PU1RfUFBfQk9PTChwIyMoMTU4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNThfQyhCT09TVF9QUF9CT09MKHAjIygxNTksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1OV9DKEJPT1NUX1BQX0JPT0wocCMjKDE2MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTYwX0MoQk9PU1RfUFBfQk9PTChwIyMoMTYxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNjFfQyhCT09TVF9QUF9CT09MKHAjIygxNjIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDE2MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTYzX0MoQk9PU1RfUFBfQk9PTChwIyMoMTY0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNjRfQyhCT09TVF9QUF9CT09MKHAjIygxNjUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2NV9DKEJPT1NUX1BQX0JPT0wocCMjKDE2NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY2X0MoQk9PU1RfUFBfQk9PTChwIyMoMTY3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNjdfQyhCT09TVF9QUF9CT09MKHAjIygxNjgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2OF9DKEJPT1NUX1BQX0JPT0wocCMjKDE2OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY5X0MoQk9PU1RfUFBfQk9PTChwIyMoMTcwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNzBfQyhCT09TVF9QUF9CT09MKHAjIygxNzEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3MV9DKEJPT1NUX1BQX0JPT0wocCMjKDE3MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTcyX0MoQk9PU1RfUFBfQk9PTChwIyMoMTczLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTczKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNzNfQyhCT09TVF9QUF9CT09MKHAjIygxNzQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3NF9DKEJPT1NUX1BQX0JPT0wocCMjKDE3NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc1X0MoQk9PU1RfUFBfQk9PTChwIyMoMTc2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNzZfQyhCT09TVF9QUF9CT09MKHAjIygxNzcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3N19DKEJPT1NUX1BQX0JPT0wocCMjKDE3OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc4X0MoQk9PU1RfUFBfQk9PTChwIyMoMTc5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNzlfQyhCT09TVF9QUF9CT09MKHAjIygxODAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4MF9DKEJPT1NUX1BQX0JPT0wocCMjKDE4MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTgxX0MoQk9PU1RfUFBfQk9PTChwIyMoMTgyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODJfQyhCT09TVF9QUF9CT09MKHAjIygxODMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4M19DKEJPT1NUX1BQX0JPT0wocCMjKDE4NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg0X0MoQk9PU1RfUFBfQk9PTChwIyMoMTg1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODVfQyhCT09TVF9QUF9CT09MKHAjIygxODYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDE4NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg3X0MoQk9PU1RfUFBfQk9PTChwIyMoMTg4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODhfQyhCT09TVF9QUF9CT09MKHAjIygxODksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4OV9DKEJPT1NUX1BQX0JPT0wocCMjKDE5MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTkwX0MoQk9PU1RfUFBfQk9PTChwIyMoMTkxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOTFfQyhCT09TVF9QUF9CT09MKHAjIygxOTIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDE5MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTkzX0MoQk9PU1RfUFBfQk9PTChwIyMoMTk0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOTRfQyhCT09TVF9QUF9CT09MKHAjIygxOTUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5NV9DKEJPT1NUX1BQX0JPT0wocCMjKDE5NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk2X0MoQk9PU1RfUFBfQk9PTChwIyMoMTk3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOTdfQyhCT09TVF9QUF9CT09MKHAjIygxOTgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5OF9DKEJPT1NUX1BQX0JPT0wocCMjKDE5OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk5X0MoQk9PU1RfUFBfQk9PTChwIyMoMjAwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMDBfQyhCT09TVF9QUF9CT09MKHAjIygyMDEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwMV9DKEJPT1NUX1BQX0JPT0wocCMjKDIwMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjAyX0MoQk9PU1RfUFBfQk9PTChwIyMoMjAzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMDNfQyhCT09TVF9QUF9CT09MKHAjIygyMDQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwNF9DKEJPT1NUX1BQX0JPT0wocCMjKDIwNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA1X0MoQk9PU1RfUFBfQk9PTChwIyMoMjA2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMDZfQyhCT09TVF9QUF9CT09MKHAjIygyMDcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwN19DKEJPT1NUX1BQX0JPT0wocCMjKDIwOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA4X0MoQk9PU1RfUFBfQk9PTChwIyMoMjA5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMDlfQyhCT09TVF9QUF9CT09MKHAjIygyMTAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxMF9DKEJPT1NUX1BQX0JPT0wocCMjKDIxMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjExX0MoQk9PU1RfUFBfQk9PTChwIyMoMjEyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMTJfQyhCT09TVF9QUF9CT09MKHAjIygyMTMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxM19DKEJPT1NUX1BQX0JPT0wocCMjKDIxNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE0X0MoQk9PU1RfUFBfQk9PTChwIyMoMjE1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMTVfQyhCT09TVF9QUF9CT09MKHAjIygyMTYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxNl9DKEJPT1NUX1BQX0JPT0wocCMjKDIxNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE3X0MoQk9PU1RfUFBfQk9PTChwIyMoMjE4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMThfQyhCT09TVF9QUF9CT09MKHAjIygyMTksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxOV9DKEJPT1NUX1BQX0JPT0wocCMjKDIyMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjIwX0MoQk9PU1RfUFBfQk9PTChwIyMoMjIxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMjFfQyhCT09TVF9QUF9CT09MKHAjIygyMjIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyMl9DKEJPT1NUX1BQX0JPT0wocCMjKDIyMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjIzX0MoQk9PU1RfUFBfQk9PTChwIyMoMjI0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMjRfQyhCT09TVF9QUF9CT09MKHAjIygyMjUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyNV9DKEJPT1NUX1BQX0JPT0wocCMjKDIyNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI2X0MoQk9PU1RfUFBfQk9PTChwIyMoMjI3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMjdfQyhCT09TVF9QUF9CT09MKHAjIygyMjgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyOF9DKEJPT1NUX1BQX0JPT0wocCMjKDIyOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI5X0MoQk9PU1RfUFBfQk9PTChwIyMoMjMwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMzBfQyhCT09TVF9QUF9CT09MKHAjIygyMzEsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzMV9DKEJPT1NUX1BQX0JPT0wocCMjKDIzMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjMyX0MoQk9PU1RfUFBfQk9PTChwIyMoMjMzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMzNfQyhCT09TVF9QUF9CT09MKHAjIygyMzQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzNF9DKEJPT1NUX1BQX0JPT0wocCMjKDIzNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM1X0MoQk9PU1RfUFBfQk9PTChwIyMoMjM2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMzZfQyhCT09TVF9QUF9CT09MKHAjIygyMzcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzN19DKEJPT1NUX1BQX0JPT0wocCMjKDIzOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM4X0MoQk9PU1RfUFBfQk9PTChwIyMoMjM5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMzlfQyhCT09TVF9QUF9CT09MKHAjIygyNDAsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0MF9DKEJPT1NUX1BQX0JPT0wocCMjKDI0MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQxX0MoQk9PU1RfUFBfQk9PTChwIyMoMjQyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDJfQyhCT09TVF9QUF9CT09MKHAjIygyNDMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0M19DKEJPT1NUX1BQX0JPT0wocCMjKDI0NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ0X0MoQk9PU1RfUFBfQk9PTChwIyMoMjQ1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDVfQyhCT09TVF9QUF9CT09MKHAjIygyNDYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0Nl9DKEJPT1NUX1BQX0JPT0wocCMjKDI0NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ3X0MoQk9PU1RfUFBfQk9PTChwIyMoMjQ4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDhfQyhCT09TVF9QUF9CT09MKHAjIygyNDksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0OV9DKEJPT1NUX1BQX0JPT0wocCMjKDI1MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjUwX0MoQk9PU1RfUFBfQk9PTChwIyMoMjUxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNTFfQyhCT09TVF9QUF9CT09MKHAjIygyNTIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1Ml9DKEJPT1NUX1BQX0JPT0wocCMjKDI1MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjUzX0MoQk9PU1RfUFBfQk9PTChwIyMoMjU0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNTRfQyhCT09TVF9QUF9CT09MKHAjIygyNTUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1NV9DKEJPT1NUX1BQX0JPT0wocCMjKDI1NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjU2X0MoQk9PU1RfUFBfQk9PTChwIyMoMjU3LCBzKSksIHMsIHAsIG8sIG0pCisjCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDMwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzMyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDMzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzM1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDM2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzM4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDM5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQ0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQ1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQ3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQ4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzUwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDUxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzUzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDU0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzU2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDU3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNThfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzU5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDYwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzYyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNjIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDYzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzY1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNjUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDY2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzY4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNjgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDY5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzcxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDcyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzc0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDc1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzc3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDc4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzgwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoODAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDgxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfODIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzgzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoODMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDg0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfODUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzg2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoODYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDg3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfODgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzg5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoODksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDkwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzkyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDkzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzk1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDk2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzk4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDk5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTAxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTAxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTA0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTA0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTA3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTA3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTEwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTEwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTEyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTEzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTEzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTE2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTE2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTE5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTE5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMjAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTIyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTIyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMjMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTI1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTI1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMjYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTI4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTI4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMjksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTMxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTMxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTM0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTM0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTM3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTM3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNDEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNDEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNDQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQ2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQ2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNDcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQ5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQ5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTUyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTUyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTU1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTU1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTU4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTU4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNThfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTYxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTYxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTY0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTY0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTY3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTY3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTcwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTcwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNzEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNzEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTcyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTczLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTczLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNzQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTc2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTc2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNzcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTc5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTc5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xODAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxODAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTgyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTgyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xODMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxODMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTg1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTg1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xODYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxODYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTg4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTg4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xODksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxODksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTkxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTkxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTk0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTk0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTk3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTk3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjAwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjAwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMDEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMDEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjAzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjAzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMDQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjA2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjA2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMDcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjA5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjA5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjExLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjExX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjEyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjEyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjE1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjE1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjE4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjE4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMThfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjIxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjIxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjI0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjI0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjI3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjI3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjMwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjMwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMzEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMzEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjMzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjMzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMzQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjM2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjM2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMzcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjM5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjM5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNDAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNDMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQ1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQ1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNDYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQ4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQ4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNDksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI1MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI1MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjUxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjUxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI1MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI1MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjU0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjU0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI1NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI1NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjU3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjU3LCBzKSwgcCwgbywgbSkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9lZGcvZm9yLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9lZGcvZm9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTI5MjFhCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZGV0YWlsL2VkZy9mb3IuaHBwCkBAIC0wLDAgKzEsNTM0IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFVElUSU9OX0RFVEFJTF9FREdfRk9SX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fREVUQUlMX0VER19GT1JfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lmLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VhdC5ocHA+CisjCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfM19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfN19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yN19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zMF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzMxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zM19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zNl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMzhfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zOV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNDFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80Ml9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNDRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80NV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNDdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80OF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81MV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzUyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81NF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81N19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNTlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82MF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzYxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82M19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82Nl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNjhfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82OV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzcwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNzFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83Ml9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzczX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNzRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83NV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfNzdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83OF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84MV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzgyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84NF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84N19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfODlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85MF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzkxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOTJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85M19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOTVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85Nl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfOThfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85OV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMDBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTAxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwMl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMDNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwNV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMDZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwOF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMDlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTEwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExMV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMTJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTEzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExNF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMTVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExN19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMThfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyMF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTIyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyM19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyNl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMjdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyOV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMzBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTMxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzMl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMzNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzNV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMzZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzOF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xMzlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0MV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNDJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0NF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNDVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0N19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNDhfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1MF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNTFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTUyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1M19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNTRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1Nl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNTdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1OV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNjBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTYxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2Ml9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNjNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2NV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNjZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2OF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNjlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTcwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3MV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNzJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTczX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3NF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNzVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3N19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xNzhfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4MF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTgyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4M19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4Nl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xODdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4OV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOTBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTkxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5Ml9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOTNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5NV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOTZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5OF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xOTlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjAwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwMV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMDJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjAzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwNF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMDVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwN19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMDhfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxMF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjExKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMTFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjEyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxM19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMTRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxNl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMTdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxOV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMjBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjIxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyMl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMjNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyNV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMjZfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI3X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyOF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMjlfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjMwX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzMV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMzJfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjMzX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzNF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMzVfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM2X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzN19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yMzhfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM5X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0MF9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDFfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQyX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0M19JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDRfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ1X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0Nl9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNDdfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ4X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0OV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNTBfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjUxX0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1Ml9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNTNfSShzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjU0X0kocywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1NV9JKHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yNTZfSShzLCBwLCBvLCBtKQorIworIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMiwgcykgQk9PU1RfUFBfSUYocCgyLCBzKSwgQk9PU1RfUFBfRk9SXzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMywgcykgQk9PU1RfUFBfSUYocCgzLCBzKSwgQk9PU1RfUFBfRk9SXzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNCwgcykgQk9PU1RfUFBfSUYocCg0LCBzKSwgQk9PU1RfUFBfRk9SXzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNSwgcykgQk9PU1RfUFBfSUYocCg1LCBzKSwgQk9PU1RfUFBfRk9SXzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNiwgcykgQk9PU1RfUFBfSUYocCg2LCBzKSwgQk9PU1RfUFBfRk9SXzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNywgcykgQk9PU1RfUFBfSUYocCg3LCBzKSwgQk9PU1RfUFBfRk9SXzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOCwgcykgQk9PU1RfUFBfSUYocCg4LCBzKSwgQk9PU1RfUFBfRk9SXzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOSwgcykgQk9PU1RfUFBfSUYocCg5LCBzKSwgQk9PU1RfUFBfRk9SXzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwLCBzKSBCT09TVF9QUF9JRihwKDEwLCBzKSwgQk9PU1RfUFBfRk9SXzEwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExLCBzKSBCT09TVF9QUF9JRihwKDExLCBzKSwgQk9PU1RfUFBfRk9SXzExLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyLCBzKSBCT09TVF9QUF9JRihwKDEyLCBzKSwgQk9PU1RfUFBfRk9SXzEyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzLCBzKSBCT09TVF9QUF9JRihwKDEzLCBzKSwgQk9PU1RfUFBfRk9SXzEzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0LCBzKSBCT09TVF9QUF9JRihwKDE0LCBzKSwgQk9PU1RfUFBfRk9SXzE0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1LCBzKSBCT09TVF9QUF9JRihwKDE1LCBzKSwgQk9PU1RfUFBfRk9SXzE1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2LCBzKSBCT09TVF9QUF9JRihwKDE2LCBzKSwgQk9PU1RfUFBfRk9SXzE2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3LCBzKSBCT09TVF9QUF9JRihwKDE3LCBzKSwgQk9PU1RfUFBfRk9SXzE3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4LCBzKSBCT09TVF9QUF9JRihwKDE4LCBzKSwgQk9PU1RfUFBfRk9SXzE4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMThfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5LCBzKSBCT09TVF9QUF9JRihwKDE5LCBzKSwgQk9PU1RfUFBfRk9SXzE5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwLCBzKSBCT09TVF9QUF9JRihwKDIwLCBzKSwgQk9PU1RfUFBfRk9SXzIwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxLCBzKSBCT09TVF9QUF9JRihwKDIxLCBzKSwgQk9PU1RfUFBfRk9SXzIxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyLCBzKSBCT09TVF9QUF9JRihwKDIyLCBzKSwgQk9PU1RfUFBfRk9SXzIyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzLCBzKSBCT09TVF9QUF9JRihwKDIzLCBzKSwgQk9PU1RfUFBfRk9SXzIzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0LCBzKSBCT09TVF9QUF9JRihwKDI0LCBzKSwgQk9PU1RfUFBfRk9SXzI0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1LCBzKSBCT09TVF9QUF9JRihwKDI1LCBzKSwgQk9PU1RfUFBfRk9SXzI1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI2LCBzKSBCT09TVF9QUF9JRihwKDI2LCBzKSwgQk9PU1RfUFBfRk9SXzI2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI3LCBzKSBCT09TVF9QUF9JRihwKDI3LCBzKSwgQk9PU1RfUFBfRk9SXzI3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI4LCBzKSBCT09TVF9QUF9JRihwKDI4LCBzKSwgQk9PU1RfUFBfRk9SXzI4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI5LCBzKSBCT09TVF9QUF9JRihwKDI5LCBzKSwgQk9PU1RfUFBfRk9SXzI5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDMwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMwLCBzKSBCT09TVF9QUF9JRihwKDMwLCBzKSwgQk9PU1RfUFBfRk9SXzMwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDMxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMxLCBzKSBCT09TVF9QUF9JRihwKDMxLCBzKSwgQk9PU1RfUFBfRk9SXzMxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDMyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMyLCBzKSBCT09TVF9QUF9JRihwKDMyLCBzKSwgQk9PU1RfUFBfRk9SXzMyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDMzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMzLCBzKSBCT09TVF9QUF9JRihwKDMzLCBzKSwgQk9PU1RfUFBfRk9SXzMzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDM0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM0LCBzKSBCT09TVF9QUF9JRihwKDM0LCBzKSwgQk9PU1RfUFBfRk9SXzM0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDM1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM1LCBzKSBCT09TVF9QUF9JRihwKDM1LCBzKSwgQk9PU1RfUFBfRk9SXzM1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDM2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM2LCBzKSBCT09TVF9QUF9JRihwKDM2LCBzKSwgQk9PU1RfUFBfRk9SXzM2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDM3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM3LCBzKSBCT09TVF9QUF9JRihwKDM3LCBzKSwgQk9PU1RfUFBfRk9SXzM3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDM4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM4LCBzKSBCT09TVF9QUF9JRihwKDM4LCBzKSwgQk9PU1RfUFBfRk9SXzM4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDM5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM5LCBzKSBCT09TVF9QUF9JRihwKDM5LCBzKSwgQk9PU1RfUFBfRk9SXzM5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQwLCBzKSBCT09TVF9QUF9JRihwKDQwLCBzKSwgQk9PU1RfUFBfRk9SXzQwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQxLCBzKSBCT09TVF9QUF9JRihwKDQxLCBzKSwgQk9PU1RfUFBfRk9SXzQxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQyLCBzKSBCT09TVF9QUF9JRihwKDQyLCBzKSwgQk9PU1RfUFBfRk9SXzQyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQzLCBzKSBCT09TVF9QUF9JRihwKDQzLCBzKSwgQk9PU1RfUFBfRk9SXzQzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQ0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ0LCBzKSBCT09TVF9QUF9JRihwKDQ0LCBzKSwgQk9PU1RfUFBfRk9SXzQ0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQ1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ1LCBzKSBCT09TVF9QUF9JRihwKDQ1LCBzKSwgQk9PU1RfUFBfRk9SXzQ1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQ2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ2LCBzKSBCT09TVF9QUF9JRihwKDQ2LCBzKSwgQk9PU1RfUFBfRk9SXzQ2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQ3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ3LCBzKSBCT09TVF9QUF9JRihwKDQ3LCBzKSwgQk9PU1RfUFBfRk9SXzQ3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQ4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ4LCBzKSBCT09TVF9QUF9JRihwKDQ4LCBzKSwgQk9PU1RfUFBfRk9SXzQ4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQ5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ5LCBzKSBCT09TVF9QUF9JRihwKDQ5LCBzKSwgQk9PU1RfUFBfRk9SXzQ5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDUwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUwLCBzKSBCT09TVF9QUF9JRihwKDUwLCBzKSwgQk9PU1RfUFBfRk9SXzUwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDUxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUxLCBzKSBCT09TVF9QUF9JRihwKDUxLCBzKSwgQk9PU1RfUFBfRk9SXzUxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDUyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUyLCBzKSBCT09TVF9QUF9JRihwKDUyLCBzKSwgQk9PU1RfUFBfRk9SXzUyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDUzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUzLCBzKSBCT09TVF9QUF9JRihwKDUzLCBzKSwgQk9PU1RfUFBfRk9SXzUzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDU0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU0LCBzKSBCT09TVF9QUF9JRihwKDU0LCBzKSwgQk9PU1RfUFBfRk9SXzU0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDU1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU1LCBzKSBCT09TVF9QUF9JRihwKDU1LCBzKSwgQk9PU1RfUFBfRk9SXzU1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDU2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU2LCBzKSBCT09TVF9QUF9JRihwKDU2LCBzKSwgQk9PU1RfUFBfRk9SXzU2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDU3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU3LCBzKSBCT09TVF9QUF9JRihwKDU3LCBzKSwgQk9PU1RfUFBfRk9SXzU3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDU4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU4LCBzKSBCT09TVF9QUF9JRihwKDU4LCBzKSwgQk9PU1RfUFBfRk9SXzU4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNThfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDU5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU5LCBzKSBCT09TVF9QUF9JRihwKDU5LCBzKSwgQk9PU1RfUFBfRk9SXzU5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDYwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYwLCBzKSBCT09TVF9QUF9JRihwKDYwLCBzKSwgQk9PU1RfUFBfRk9SXzYwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDYxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYxLCBzKSBCT09TVF9QUF9JRihwKDYxLCBzKSwgQk9PU1RfUFBfRk9SXzYxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDYyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYyLCBzKSBCT09TVF9QUF9JRihwKDYyLCBzKSwgQk9PU1RfUFBfRk9SXzYyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDYzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYzLCBzKSBCT09TVF9QUF9JRihwKDYzLCBzKSwgQk9PU1RfUFBfRk9SXzYzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDY0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY0LCBzKSBCT09TVF9QUF9JRihwKDY0LCBzKSwgQk9PU1RfUFBfRk9SXzY0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDY1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY1LCBzKSBCT09TVF9QUF9JRihwKDY1LCBzKSwgQk9PU1RfUFBfRk9SXzY1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDY2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY2LCBzKSBCT09TVF9QUF9JRihwKDY2LCBzKSwgQk9PU1RfUFBfRk9SXzY2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDY3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY3LCBzKSBCT09TVF9QUF9JRihwKDY3LCBzKSwgQk9PU1RfUFBfRk9SXzY3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDY4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY4LCBzKSBCT09TVF9QUF9JRihwKDY4LCBzKSwgQk9PU1RfUFBfRk9SXzY4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDY5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY5LCBzKSBCT09TVF9QUF9JRihwKDY5LCBzKSwgQk9PU1RfUFBfRk9SXzY5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDcwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcwLCBzKSBCT09TVF9QUF9JRihwKDcwLCBzKSwgQk9PU1RfUFBfRk9SXzcwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDcxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcxLCBzKSBCT09TVF9QUF9JRihwKDcxLCBzKSwgQk9PU1RfUFBfRk9SXzcxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDcyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcyLCBzKSBCT09TVF9QUF9JRihwKDcyLCBzKSwgQk9PU1RfUFBfRk9SXzcyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDczLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDczLCBzKSBCT09TVF9QUF9JRihwKDczLCBzKSwgQk9PU1RfUFBfRk9SXzczLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDc0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc0LCBzKSBCT09TVF9QUF9JRihwKDc0LCBzKSwgQk9PU1RfUFBfRk9SXzc0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDc1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc1LCBzKSBCT09TVF9QUF9JRihwKDc1LCBzKSwgQk9PU1RfUFBfRk9SXzc1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDc2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc2LCBzKSBCT09TVF9QUF9JRihwKDc2LCBzKSwgQk9PU1RfUFBfRk9SXzc2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDc3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc3LCBzKSBCT09TVF9QUF9JRihwKDc3LCBzKSwgQk9PU1RfUFBfRk9SXzc3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDc4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc4LCBzKSBCT09TVF9QUF9JRihwKDc4LCBzKSwgQk9PU1RfUFBfRk9SXzc4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDc5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc5LCBzKSBCT09TVF9QUF9JRihwKDc5LCBzKSwgQk9PU1RfUFBfRk9SXzc5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDgwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgwLCBzKSBCT09TVF9QUF9JRihwKDgwLCBzKSwgQk9PU1RfUFBfRk9SXzgwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDgxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgxLCBzKSBCT09TVF9QUF9JRihwKDgxLCBzKSwgQk9PU1RfUFBfRk9SXzgxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDgyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgyLCBzKSBCT09TVF9QUF9JRihwKDgyLCBzKSwgQk9PU1RfUFBfRk9SXzgyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDgzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgzLCBzKSBCT09TVF9QUF9JRihwKDgzLCBzKSwgQk9PU1RfUFBfRk9SXzgzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDg0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg0LCBzKSBCT09TVF9QUF9JRihwKDg0LCBzKSwgQk9PU1RfUFBfRk9SXzg0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDg1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg1LCBzKSBCT09TVF9QUF9JRihwKDg1LCBzKSwgQk9PU1RfUFBfRk9SXzg1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDg2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg2LCBzKSBCT09TVF9QUF9JRihwKDg2LCBzKSwgQk9PU1RfUFBfRk9SXzg2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDg3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg3LCBzKSBCT09TVF9QUF9JRihwKDg3LCBzKSwgQk9PU1RfUFBfRk9SXzg3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDg4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg4LCBzKSBCT09TVF9QUF9JRihwKDg4LCBzKSwgQk9PU1RfUFBfRk9SXzg4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDg5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg5LCBzKSBCT09TVF9QUF9JRihwKDg5LCBzKSwgQk9PU1RfUFBfRk9SXzg5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDkwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkwLCBzKSBCT09TVF9QUF9JRihwKDkwLCBzKSwgQk9PU1RfUFBfRk9SXzkwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDkxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkxLCBzKSBCT09TVF9QUF9JRihwKDkxLCBzKSwgQk9PU1RfUFBfRk9SXzkxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDkyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkyLCBzKSBCT09TVF9QUF9JRihwKDkyLCBzKSwgQk9PU1RfUFBfRk9SXzkyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDkzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkzLCBzKSBCT09TVF9QUF9JRihwKDkzLCBzKSwgQk9PU1RfUFBfRk9SXzkzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDk0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk0LCBzKSBCT09TVF9QUF9JRihwKDk0LCBzKSwgQk9PU1RfUFBfRk9SXzk0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDk1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk1LCBzKSBCT09TVF9QUF9JRihwKDk1LCBzKSwgQk9PU1RfUFBfRk9SXzk1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDk2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk2LCBzKSBCT09TVF9QUF9JRihwKDk2LCBzKSwgQk9PU1RfUFBfRk9SXzk2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDk3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk3LCBzKSBCT09TVF9QUF9JRihwKDk3LCBzKSwgQk9PU1RfUFBfRk9SXzk3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDk4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk4LCBzKSBCT09TVF9QUF9JRihwKDk4LCBzKSwgQk9PU1RfUFBfRk9SXzk4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOThfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDk5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk5LCBzKSBCT09TVF9QUF9JRihwKDk5LCBzKSwgQk9PU1RfUFBfRk9SXzk5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDAsIHMpIEJPT1NUX1BQX0lGKHAoMTAwLCBzKSwgQk9PU1RfUFBfRk9SXzEwMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTAwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDEsIHMpIEJPT1NUX1BQX0lGKHAoMTAxLCBzKSwgQk9PU1RfUFBfRk9SXzEwMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTAxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDIsIHMpIEJPT1NUX1BQX0lGKHAoMTAyLCBzKSwgQk9PU1RfUFBfRk9SXzEwMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTAyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDMsIHMpIEJPT1NUX1BQX0lGKHAoMTAzLCBzKSwgQk9PU1RfUFBfRk9SXzEwMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTAzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDQsIHMpIEJPT1NUX1BQX0lGKHAoMTA0LCBzKSwgQk9PU1RfUFBfRk9SXzEwNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTA0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDUsIHMpIEJPT1NUX1BQX0lGKHAoMTA1LCBzKSwgQk9PU1RfUFBfRk9SXzEwNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTA1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDYsIHMpIEJPT1NUX1BQX0lGKHAoMTA2LCBzKSwgQk9PU1RfUFBfRk9SXzEwNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTA2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDcsIHMpIEJPT1NUX1BQX0lGKHAoMTA3LCBzKSwgQk9PU1RfUFBfRk9SXzEwNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTA3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDgsIHMpIEJPT1NUX1BQX0lGKHAoMTA4LCBzKSwgQk9PU1RfUFBfRk9SXzEwOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTA4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDksIHMpIEJPT1NUX1BQX0lGKHAoMTA5LCBzKSwgQk9PU1RfUFBfRk9SXzEwOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTA5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTAsIHMpIEJPT1NUX1BQX0lGKHAoMTEwLCBzKSwgQk9PU1RfUFBfRk9SXzExMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTEwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTEsIHMpIEJPT1NUX1BQX0lGKHAoMTExLCBzKSwgQk9PU1RfUFBfRk9SXzExMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTExLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTIsIHMpIEJPT1NUX1BQX0lGKHAoMTEyLCBzKSwgQk9PU1RfUFBfRk9SXzExMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTEyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTMsIHMpIEJPT1NUX1BQX0lGKHAoMTEzLCBzKSwgQk9PU1RfUFBfRk9SXzExMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTEzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTQsIHMpIEJPT1NUX1BQX0lGKHAoMTE0LCBzKSwgQk9PU1RfUFBfRk9SXzExNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTE0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTUsIHMpIEJPT1NUX1BQX0lGKHAoMTE1LCBzKSwgQk9PU1RfUFBfRk9SXzExNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTE1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTYsIHMpIEJPT1NUX1BQX0lGKHAoMTE2LCBzKSwgQk9PU1RfUFBfRk9SXzExNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTE2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTcsIHMpIEJPT1NUX1BQX0lGKHAoMTE3LCBzKSwgQk9PU1RfUFBfRk9SXzExNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTE3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTgsIHMpIEJPT1NUX1BQX0lGKHAoMTE4LCBzKSwgQk9PU1RfUFBfRk9SXzExOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTE4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMThfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTksIHMpIEJPT1NUX1BQX0lGKHAoMTE5LCBzKSwgQk9PU1RfUFBfRk9SXzExOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTE5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjAsIHMpIEJPT1NUX1BQX0lGKHAoMTIwLCBzKSwgQk9PU1RfUFBfRk9SXzEyMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTIwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjEsIHMpIEJPT1NUX1BQX0lGKHAoMTIxLCBzKSwgQk9PU1RfUFBfRk9SXzEyMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTIxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjIsIHMpIEJPT1NUX1BQX0lGKHAoMTIyLCBzKSwgQk9PU1RfUFBfRk9SXzEyMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTIyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjMsIHMpIEJPT1NUX1BQX0lGKHAoMTIzLCBzKSwgQk9PU1RfUFBfRk9SXzEyMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTIzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjQsIHMpIEJPT1NUX1BQX0lGKHAoMTI0LCBzKSwgQk9PU1RfUFBfRk9SXzEyNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTI0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjUsIHMpIEJPT1NUX1BQX0lGKHAoMTI1LCBzKSwgQk9PU1RfUFBfRk9SXzEyNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTI1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjYsIHMpIEJPT1NUX1BQX0lGKHAoMTI2LCBzKSwgQk9PU1RfUFBfRk9SXzEyNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTI2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjcsIHMpIEJPT1NUX1BQX0lGKHAoMTI3LCBzKSwgQk9PU1RfUFBfRk9SXzEyNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTI3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjgsIHMpIEJPT1NUX1BQX0lGKHAoMTI4LCBzKSwgQk9PU1RfUFBfRk9SXzEyOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTI4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjksIHMpIEJPT1NUX1BQX0lGKHAoMTI5LCBzKSwgQk9PU1RfUFBfRk9SXzEyOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTI5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzAsIHMpIEJPT1NUX1BQX0lGKHAoMTMwLCBzKSwgQk9PU1RfUFBfRk9SXzEzMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTMwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzEsIHMpIEJPT1NUX1BQX0lGKHAoMTMxLCBzKSwgQk9PU1RfUFBfRk9SXzEzMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTMxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzIsIHMpIEJPT1NUX1BQX0lGKHAoMTMyLCBzKSwgQk9PU1RfUFBfRk9SXzEzMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTMyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzMsIHMpIEJPT1NUX1BQX0lGKHAoMTMzLCBzKSwgQk9PU1RfUFBfRk9SXzEzMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTMzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzQsIHMpIEJPT1NUX1BQX0lGKHAoMTM0LCBzKSwgQk9PU1RfUFBfRk9SXzEzNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTM0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzUsIHMpIEJPT1NUX1BQX0lGKHAoMTM1LCBzKSwgQk9PU1RfUFBfRk9SXzEzNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTM1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzYsIHMpIEJPT1NUX1BQX0lGKHAoMTM2LCBzKSwgQk9PU1RfUFBfRk9SXzEzNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTM2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzcsIHMpIEJPT1NUX1BQX0lGKHAoMTM3LCBzKSwgQk9PU1RfUFBfRk9SXzEzNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTM3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzgsIHMpIEJPT1NUX1BQX0lGKHAoMTM4LCBzKSwgQk9PU1RfUFBfRk9SXzEzOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTM4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzksIHMpIEJPT1NUX1BQX0lGKHAoMTM5LCBzKSwgQk9PU1RfUFBfRk9SXzEzOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTM5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDAsIHMpIEJPT1NUX1BQX0lGKHAoMTQwLCBzKSwgQk9PU1RfUFBfRk9SXzE0MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDEsIHMpIEJPT1NUX1BQX0lGKHAoMTQxLCBzKSwgQk9PU1RfUFBfRk9SXzE0MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDIsIHMpIEJPT1NUX1BQX0lGKHAoMTQyLCBzKSwgQk9PU1RfUFBfRk9SXzE0MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDMsIHMpIEJPT1NUX1BQX0lGKHAoMTQzLCBzKSwgQk9PU1RfUFBfRk9SXzE0MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDQsIHMpIEJPT1NUX1BQX0lGKHAoMTQ0LCBzKSwgQk9PU1RfUFBfRk9SXzE0NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQ0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDUsIHMpIEJPT1NUX1BQX0lGKHAoMTQ1LCBzKSwgQk9PU1RfUFBfRk9SXzE0NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQ1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDYsIHMpIEJPT1NUX1BQX0lGKHAoMTQ2LCBzKSwgQk9PU1RfUFBfRk9SXzE0NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQ2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDcsIHMpIEJPT1NUX1BQX0lGKHAoMTQ3LCBzKSwgQk9PU1RfUFBfRk9SXzE0NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQ3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDgsIHMpIEJPT1NUX1BQX0lGKHAoMTQ4LCBzKSwgQk9PU1RfUFBfRk9SXzE0OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQ4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDksIHMpIEJPT1NUX1BQX0lGKHAoMTQ5LCBzKSwgQk9PU1RfUFBfRk9SXzE0OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQ5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTAsIHMpIEJPT1NUX1BQX0lGKHAoMTUwLCBzKSwgQk9PU1RfUFBfRk9SXzE1MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTUwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTEsIHMpIEJPT1NUX1BQX0lGKHAoMTUxLCBzKSwgQk9PU1RfUFBfRk9SXzE1MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTUxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTIsIHMpIEJPT1NUX1BQX0lGKHAoMTUyLCBzKSwgQk9PU1RfUFBfRk9SXzE1MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTUyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTMsIHMpIEJPT1NUX1BQX0lGKHAoMTUzLCBzKSwgQk9PU1RfUFBfRk9SXzE1MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTUzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTQsIHMpIEJPT1NUX1BQX0lGKHAoMTU0LCBzKSwgQk9PU1RfUFBfRk9SXzE1NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTU0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTUsIHMpIEJPT1NUX1BQX0lGKHAoMTU1LCBzKSwgQk9PU1RfUFBfRk9SXzE1NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTU1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTYsIHMpIEJPT1NUX1BQX0lGKHAoMTU2LCBzKSwgQk9PU1RfUFBfRk9SXzE1NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTU2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTcsIHMpIEJPT1NUX1BQX0lGKHAoMTU3LCBzKSwgQk9PU1RfUFBfRk9SXzE1NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTU3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTgsIHMpIEJPT1NUX1BQX0lGKHAoMTU4LCBzKSwgQk9PU1RfUFBfRk9SXzE1OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTU4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNThfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTksIHMpIEJPT1NUX1BQX0lGKHAoMTU5LCBzKSwgQk9PU1RfUFBfRk9SXzE1OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTU5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjAsIHMpIEJPT1NUX1BQX0lGKHAoMTYwLCBzKSwgQk9PU1RfUFBfRk9SXzE2MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTYwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjEsIHMpIEJPT1NUX1BQX0lGKHAoMTYxLCBzKSwgQk9PU1RfUFBfRk9SXzE2MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTYxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjIsIHMpIEJPT1NUX1BQX0lGKHAoMTYyLCBzKSwgQk9PU1RfUFBfRk9SXzE2MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTYyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjMsIHMpIEJPT1NUX1BQX0lGKHAoMTYzLCBzKSwgQk9PU1RfUFBfRk9SXzE2MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTYzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjQsIHMpIEJPT1NUX1BQX0lGKHAoMTY0LCBzKSwgQk9PU1RfUFBfRk9SXzE2NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTY0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjUsIHMpIEJPT1NUX1BQX0lGKHAoMTY1LCBzKSwgQk9PU1RfUFBfRk9SXzE2NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTY1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjYsIHMpIEJPT1NUX1BQX0lGKHAoMTY2LCBzKSwgQk9PU1RfUFBfRk9SXzE2NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTY2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjcsIHMpIEJPT1NUX1BQX0lGKHAoMTY3LCBzKSwgQk9PU1RfUFBfRk9SXzE2NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTY3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjgsIHMpIEJPT1NUX1BQX0lGKHAoMTY4LCBzKSwgQk9PU1RfUFBfRk9SXzE2OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTY4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjksIHMpIEJPT1NUX1BQX0lGKHAoMTY5LCBzKSwgQk9PU1RfUFBfRk9SXzE2OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTY5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzAsIHMpIEJPT1NUX1BQX0lGKHAoMTcwLCBzKSwgQk9PU1RfUFBfRk9SXzE3MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTcwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzEsIHMpIEJPT1NUX1BQX0lGKHAoMTcxLCBzKSwgQk9PU1RfUFBfRk9SXzE3MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTcxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzIsIHMpIEJPT1NUX1BQX0lGKHAoMTcyLCBzKSwgQk9PU1RfUFBfRk9SXzE3MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTcyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzMsIHMpIEJPT1NUX1BQX0lGKHAoMTczLCBzKSwgQk9PU1RfUFBfRk9SXzE3MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTczLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzQsIHMpIEJPT1NUX1BQX0lGKHAoMTc0LCBzKSwgQk9PU1RfUFBfRk9SXzE3NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTc0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzUsIHMpIEJPT1NUX1BQX0lGKHAoMTc1LCBzKSwgQk9PU1RfUFBfRk9SXzE3NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTc1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzYsIHMpIEJPT1NUX1BQX0lGKHAoMTc2LCBzKSwgQk9PU1RfUFBfRk9SXzE3NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTc2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzcsIHMpIEJPT1NUX1BQX0lGKHAoMTc3LCBzKSwgQk9PU1RfUFBfRk9SXzE3NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTc3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzgsIHMpIEJPT1NUX1BQX0lGKHAoMTc4LCBzKSwgQk9PU1RfUFBfRk9SXzE3OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTc4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzksIHMpIEJPT1NUX1BQX0lGKHAoMTc5LCBzKSwgQk9PU1RfUFBfRk9SXzE3OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTc5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODAsIHMpIEJPT1NUX1BQX0lGKHAoMTgwLCBzKSwgQk9PU1RfUFBfRk9SXzE4MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTgwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODEsIHMpIEJPT1NUX1BQX0lGKHAoMTgxLCBzKSwgQk9PU1RfUFBfRk9SXzE4MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTgxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODIsIHMpIEJPT1NUX1BQX0lGKHAoMTgyLCBzKSwgQk9PU1RfUFBfRk9SXzE4MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTgyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODMsIHMpIEJPT1NUX1BQX0lGKHAoMTgzLCBzKSwgQk9PU1RfUFBfRk9SXzE4MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTgzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODQsIHMpIEJPT1NUX1BQX0lGKHAoMTg0LCBzKSwgQk9PU1RfUFBfRk9SXzE4NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTg0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODUsIHMpIEJPT1NUX1BQX0lGKHAoMTg1LCBzKSwgQk9PU1RfUFBfRk9SXzE4NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTg1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODYsIHMpIEJPT1NUX1BQX0lGKHAoMTg2LCBzKSwgQk9PU1RfUFBfRk9SXzE4NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTg2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODcsIHMpIEJPT1NUX1BQX0lGKHAoMTg3LCBzKSwgQk9PU1RfUFBfRk9SXzE4NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTg3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODgsIHMpIEJPT1NUX1BQX0lGKHAoMTg4LCBzKSwgQk9PU1RfUFBfRk9SXzE4OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTg4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODksIHMpIEJPT1NUX1BQX0lGKHAoMTg5LCBzKSwgQk9PU1RfUFBfRk9SXzE4OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTg5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTAsIHMpIEJPT1NUX1BQX0lGKHAoMTkwLCBzKSwgQk9PU1RfUFBfRk9SXzE5MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTkwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTEsIHMpIEJPT1NUX1BQX0lGKHAoMTkxLCBzKSwgQk9PU1RfUFBfRk9SXzE5MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTkxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTIsIHMpIEJPT1NUX1BQX0lGKHAoMTkyLCBzKSwgQk9PU1RfUFBfRk9SXzE5MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTkyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTMsIHMpIEJPT1NUX1BQX0lGKHAoMTkzLCBzKSwgQk9PU1RfUFBfRk9SXzE5MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTkzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTQsIHMpIEJPT1NUX1BQX0lGKHAoMTk0LCBzKSwgQk9PU1RfUFBfRk9SXzE5NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTk0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTUsIHMpIEJPT1NUX1BQX0lGKHAoMTk1LCBzKSwgQk9PU1RfUFBfRk9SXzE5NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTk1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTYsIHMpIEJPT1NUX1BQX0lGKHAoMTk2LCBzKSwgQk9PU1RfUFBfRk9SXzE5NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTk2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTcsIHMpIEJPT1NUX1BQX0lGKHAoMTk3LCBzKSwgQk9PU1RfUFBfRk9SXzE5NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTk3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTgsIHMpIEJPT1NUX1BQX0lGKHAoMTk4LCBzKSwgQk9PU1RfUFBfRk9SXzE5OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTk4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOThfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTksIHMpIEJPT1NUX1BQX0lGKHAoMTk5LCBzKSwgQk9PU1RfUFBfRk9SXzE5OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTk5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDAsIHMpIEJPT1NUX1BQX0lGKHAoMjAwLCBzKSwgQk9PU1RfUFBfRk9SXzIwMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjAwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDEsIHMpIEJPT1NUX1BQX0lGKHAoMjAxLCBzKSwgQk9PU1RfUFBfRk9SXzIwMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjAxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDIsIHMpIEJPT1NUX1BQX0lGKHAoMjAyLCBzKSwgQk9PU1RfUFBfRk9SXzIwMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjAyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDMsIHMpIEJPT1NUX1BQX0lGKHAoMjAzLCBzKSwgQk9PU1RfUFBfRk9SXzIwMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjAzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDQsIHMpIEJPT1NUX1BQX0lGKHAoMjA0LCBzKSwgQk9PU1RfUFBfRk9SXzIwNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjA0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDUsIHMpIEJPT1NUX1BQX0lGKHAoMjA1LCBzKSwgQk9PU1RfUFBfRk9SXzIwNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjA1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDYsIHMpIEJPT1NUX1BQX0lGKHAoMjA2LCBzKSwgQk9PU1RfUFBfRk9SXzIwNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjA2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDcsIHMpIEJPT1NUX1BQX0lGKHAoMjA3LCBzKSwgQk9PU1RfUFBfRk9SXzIwNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjA3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDgsIHMpIEJPT1NUX1BQX0lGKHAoMjA4LCBzKSwgQk9PU1RfUFBfRk9SXzIwOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjA4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDksIHMpIEJPT1NUX1BQX0lGKHAoMjA5LCBzKSwgQk9PU1RfUFBfRk9SXzIwOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjA5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTAsIHMpIEJPT1NUX1BQX0lGKHAoMjEwLCBzKSwgQk9PU1RfUFBfRk9SXzIxMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjEwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTEsIHMpIEJPT1NUX1BQX0lGKHAoMjExLCBzKSwgQk9PU1RfUFBfRk9SXzIxMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjExLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTIsIHMpIEJPT1NUX1BQX0lGKHAoMjEyLCBzKSwgQk9PU1RfUFBfRk9SXzIxMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjEyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTMsIHMpIEJPT1NUX1BQX0lGKHAoMjEzLCBzKSwgQk9PU1RfUFBfRk9SXzIxMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjEzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTQsIHMpIEJPT1NUX1BQX0lGKHAoMjE0LCBzKSwgQk9PU1RfUFBfRk9SXzIxNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjE0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTUsIHMpIEJPT1NUX1BQX0lGKHAoMjE1LCBzKSwgQk9PU1RfUFBfRk9SXzIxNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjE1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTYsIHMpIEJPT1NUX1BQX0lGKHAoMjE2LCBzKSwgQk9PU1RfUFBfRk9SXzIxNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjE2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTcsIHMpIEJPT1NUX1BQX0lGKHAoMjE3LCBzKSwgQk9PU1RfUFBfRk9SXzIxNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjE3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTgsIHMpIEJPT1NUX1BQX0lGKHAoMjE4LCBzKSwgQk9PU1RfUFBfRk9SXzIxOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjE4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMThfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTksIHMpIEJPT1NUX1BQX0lGKHAoMjE5LCBzKSwgQk9PU1RfUFBfRk9SXzIxOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjE5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjAsIHMpIEJPT1NUX1BQX0lGKHAoMjIwLCBzKSwgQk9PU1RfUFBfRk9SXzIyMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjIwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjEsIHMpIEJPT1NUX1BQX0lGKHAoMjIxLCBzKSwgQk9PU1RfUFBfRk9SXzIyMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjIxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjIsIHMpIEJPT1NUX1BQX0lGKHAoMjIyLCBzKSwgQk9PU1RfUFBfRk9SXzIyMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjIyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjMsIHMpIEJPT1NUX1BQX0lGKHAoMjIzLCBzKSwgQk9PU1RfUFBfRk9SXzIyMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjIzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjQsIHMpIEJPT1NUX1BQX0lGKHAoMjI0LCBzKSwgQk9PU1RfUFBfRk9SXzIyNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjI0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjUsIHMpIEJPT1NUX1BQX0lGKHAoMjI1LCBzKSwgQk9PU1RfUFBfRk9SXzIyNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjI1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjYsIHMpIEJPT1NUX1BQX0lGKHAoMjI2LCBzKSwgQk9PU1RfUFBfRk9SXzIyNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjI2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjcsIHMpIEJPT1NUX1BQX0lGKHAoMjI3LCBzKSwgQk9PU1RfUFBfRk9SXzIyNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjI3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjgsIHMpIEJPT1NUX1BQX0lGKHAoMjI4LCBzKSwgQk9PU1RfUFBfRk9SXzIyOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjI4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjksIHMpIEJPT1NUX1BQX0lGKHAoMjI5LCBzKSwgQk9PU1RfUFBfRk9SXzIyOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjI5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzAsIHMpIEJPT1NUX1BQX0lGKHAoMjMwLCBzKSwgQk9PU1RfUFBfRk9SXzIzMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjMwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzEsIHMpIEJPT1NUX1BQX0lGKHAoMjMxLCBzKSwgQk9PU1RfUFBfRk9SXzIzMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjMxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzIsIHMpIEJPT1NUX1BQX0lGKHAoMjMyLCBzKSwgQk9PU1RfUFBfRk9SXzIzMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjMyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzMsIHMpIEJPT1NUX1BQX0lGKHAoMjMzLCBzKSwgQk9PU1RfUFBfRk9SXzIzMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjMzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzQsIHMpIEJPT1NUX1BQX0lGKHAoMjM0LCBzKSwgQk9PU1RfUFBfRk9SXzIzNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjM0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzUsIHMpIEJPT1NUX1BQX0lGKHAoMjM1LCBzKSwgQk9PU1RfUFBfRk9SXzIzNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjM1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzYsIHMpIEJPT1NUX1BQX0lGKHAoMjM2LCBzKSwgQk9PU1RfUFBfRk9SXzIzNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjM2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzcsIHMpIEJPT1NUX1BQX0lGKHAoMjM3LCBzKSwgQk9PU1RfUFBfRk9SXzIzNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjM3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzgsIHMpIEJPT1NUX1BQX0lGKHAoMjM4LCBzKSwgQk9PU1RfUFBfRk9SXzIzOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjM4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzksIHMpIEJPT1NUX1BQX0lGKHAoMjM5LCBzKSwgQk9PU1RfUFBfRk9SXzIzOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjM5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDAsIHMpIEJPT1NUX1BQX0lGKHAoMjQwLCBzKSwgQk9PU1RfUFBfRk9SXzI0MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDEsIHMpIEJPT1NUX1BQX0lGKHAoMjQxLCBzKSwgQk9PU1RfUFBfRk9SXzI0MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDIsIHMpIEJPT1NUX1BQX0lGKHAoMjQyLCBzKSwgQk9PU1RfUFBfRk9SXzI0MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDMsIHMpIEJPT1NUX1BQX0lGKHAoMjQzLCBzKSwgQk9PU1RfUFBfRk9SXzI0MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDQsIHMpIEJPT1NUX1BQX0lGKHAoMjQ0LCBzKSwgQk9PU1RfUFBfRk9SXzI0NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQ0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDUsIHMpIEJPT1NUX1BQX0lGKHAoMjQ1LCBzKSwgQk9PU1RfUFBfRk9SXzI0NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQ1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDYsIHMpIEJPT1NUX1BQX0lGKHAoMjQ2LCBzKSwgQk9PU1RfUFBfRk9SXzI0NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQ2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDcsIHMpIEJPT1NUX1BQX0lGKHAoMjQ3LCBzKSwgQk9PU1RfUFBfRk9SXzI0NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQ3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDdfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDgsIHMpIEJPT1NUX1BQX0lGKHAoMjQ4LCBzKSwgQk9PU1RfUFBfRk9SXzI0OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQ4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDhfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDksIHMpIEJPT1NUX1BQX0lGKHAoMjQ5LCBzKSwgQk9PU1RfUFBfRk9SXzI0OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQ5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDlfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTAsIHMpIEJPT1NUX1BQX0lGKHAoMjUwLCBzKSwgQk9PU1RfUFBfRk9SXzI1MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjUwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTBfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTEsIHMpIEJPT1NUX1BQX0lGKHAoMjUxLCBzKSwgQk9PU1RfUFBfRk9SXzI1MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjUxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTFfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTIsIHMpIEJPT1NUX1BQX0lGKHAoMjUyLCBzKSwgQk9PU1RfUFBfRk9SXzI1MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjUyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTJfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTMsIHMpIEJPT1NUX1BQX0lGKHAoMjUzLCBzKSwgQk9PU1RfUFBfRk9SXzI1MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjUzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTNfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTQsIHMpIEJPT1NUX1BQX0lGKHAoMjU0LCBzKSwgQk9PU1RfUFBfRk9SXzI1NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjU0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTRfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTUsIHMpIEJPT1NUX1BQX0lGKHAoMjU1LCBzKSwgQk9PU1RfUFBfRk9SXzI1NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjU1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTVfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTYsIHMpIEJPT1NUX1BQX0lGKHAoMjU2LCBzKSwgQk9PU1RfUFBfRk9SXzI1NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjU2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTZfSShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTcsIHMpIEJPT1NUX1BQX0lGKHAoMjU3LCBzKSwgQk9PU1RfUFBfRk9SXzI1NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjU3LCBzKSwgcCwgbywgbSkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9mb3IuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZGV0YWlsL2Zvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc3MGYyYwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9mb3IuaHBwCkBAIC0wLDAgKzEsNTM2IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFVElUSU9OX0RFVEFJTF9GT1JfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9ERVRBSUxfRk9SX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29udHJvbC9leHByX2lpZi5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lpZi5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9sb2dpY2FsL2Jvb2wuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWF0LmhwcD4KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8xX0MoQk9PU1RfUFBfQk9PTChwKDIsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8yX0MoQk9PU1RfUFBfQk9PTChwKDMsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl8zX0MoQk9PU1RfUFBfQk9PTChwKDQsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl80X0MoQk9PU1RfUFBfQk9PTChwKDUsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl81X0MoQk9PU1RfUFBfQk9PTChwKDYsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl82X0MoQk9PU1RfUFBfQk9PTChwKDcsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl83X0MoQk9PU1RfUFBfQk9PTChwKDgsIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl84X0MoQk9PU1RfUFBfQk9PTChwKDksIHMpKSwgcywgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0ZPUl85X0MoQk9PU1RfUFBfQk9PTChwKDEwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEwX0MoQk9PU1RfUFBfQk9PTChwKDExLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzExX0MoQk9PU1RfUFBfQk9PTChwKDEyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEyX0MoQk9PU1RfUFBfQk9PTChwKDEzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzEzX0MoQk9PU1RfUFBfQk9PTChwKDE0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE0X0MoQk9PU1RfUFBfQk9PTChwKDE1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE1X0MoQk9PU1RfUFBfQk9PTChwKDE2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE2X0MoQk9PU1RfUFBfQk9PTChwKDE3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE3X0MoQk9PU1RfUFBfQk9PTChwKDE4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE4X0MoQk9PU1RfUFBfQk9PTChwKDE5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzE5X0MoQk9PU1RfUFBfQk9PTChwKDIwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIwX0MoQk9PU1RfUFBfQk9PTChwKDIxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIxX0MoQk9PU1RfUFBfQk9PTChwKDIyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIyX0MoQk9PU1RfUFBfQk9PTChwKDIzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzIzX0MoQk9PU1RfUFBfQk9PTChwKDI0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI0X0MoQk9PU1RfUFBfQk9PTChwKDI1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI1X0MoQk9PU1RfUFBfQk9PTChwKDI2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI2X0MoQk9PU1RfUFBfQk9PTChwKDI3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI3X0MoQk9PU1RfUFBfQk9PTChwKDI4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI4X0MoQk9PU1RfUFBfQk9PTChwKDI5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzI5X0MoQk9PU1RfUFBfQk9PTChwKDMwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzMwX0MoQk9PU1RfUFBfQk9PTChwKDMxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzMxX0MoQk9PU1RfUFBfQk9PTChwKDMyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzMyX0MoQk9PU1RfUFBfQk9PTChwKDMzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzMzX0MoQk9PU1RfUFBfQk9PTChwKDM0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM0X0MoQk9PU1RfUFBfQk9PTChwKDM1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM1X0MoQk9PU1RfUFBfQk9PTChwKDM2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM2X0MoQk9PU1RfUFBfQk9PTChwKDM3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM3X0MoQk9PU1RfUFBfQk9PTChwKDM4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM4X0MoQk9PU1RfUFBfQk9PTChwKDM5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzM5X0MoQk9PU1RfUFBfQk9PTChwKDQwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQwX0MoQk9PU1RfUFBfQk9PTChwKDQxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQxX0MoQk9PU1RfUFBfQk9PTChwKDQyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQyX0MoQk9PU1RfUFBfQk9PTChwKDQzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQzX0MoQk9PU1RfUFBfQk9PTChwKDQ0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ0X0MoQk9PU1RfUFBfQk9PTChwKDQ1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ1X0MoQk9PU1RfUFBfQk9PTChwKDQ2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ2X0MoQk9PU1RfUFBfQk9PTChwKDQ3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ3X0MoQk9PU1RfUFBfQk9PTChwKDQ4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ4X0MoQk9PU1RfUFBfQk9PTChwKDQ5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzQ5X0MoQk9PU1RfUFBfQk9PTChwKDUwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzUwX0MoQk9PU1RfUFBfQk9PTChwKDUxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzUxX0MoQk9PU1RfUFBfQk9PTChwKDUyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzUyX0MoQk9PU1RfUFBfQk9PTChwKDUzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzUzX0MoQk9PU1RfUFBfQk9PTChwKDU0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU0X0MoQk9PU1RfUFBfQk9PTChwKDU1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU1X0MoQk9PU1RfUFBfQk9PTChwKDU2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU2X0MoQk9PU1RfUFBfQk9PTChwKDU3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU3X0MoQk9PU1RfUFBfQk9PTChwKDU4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU4X0MoQk9PU1RfUFBfQk9PTChwKDU5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzU5X0MoQk9PU1RfUFBfQk9PTChwKDYwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzYwX0MoQk9PU1RfUFBfQk9PTChwKDYxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzYxX0MoQk9PU1RfUFBfQk9PTChwKDYyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzYyX0MoQk9PU1RfUFBfQk9PTChwKDYzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzYzX0MoQk9PU1RfUFBfQk9PTChwKDY0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY0X0MoQk9PU1RfUFBfQk9PTChwKDY1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY1X0MoQk9PU1RfUFBfQk9PTChwKDY2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY2X0MoQk9PU1RfUFBfQk9PTChwKDY3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY3X0MoQk9PU1RfUFBfQk9PTChwKDY4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY4X0MoQk9PU1RfUFBfQk9PTChwKDY5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzY5X0MoQk9PU1RfUFBfQk9PTChwKDcwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzcwX0MoQk9PU1RfUFBfQk9PTChwKDcxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzcxX0MoQk9PU1RfUFBfQk9PTChwKDcyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzcyX0MoQk9PU1RfUFBfQk9PTChwKDczLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzczX0MoQk9PU1RfUFBfQk9PTChwKDc0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc0X0MoQk9PU1RfUFBfQk9PTChwKDc1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc1X0MoQk9PU1RfUFBfQk9PTChwKDc2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc2X0MoQk9PU1RfUFBfQk9PTChwKDc3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc3X0MoQk9PU1RfUFBfQk9PTChwKDc4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc4X0MoQk9PU1RfUFBfQk9PTChwKDc5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzc5X0MoQk9PU1RfUFBfQk9PTChwKDgwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzgwX0MoQk9PU1RfUFBfQk9PTChwKDgxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzgxX0MoQk9PU1RfUFBfQk9PTChwKDgyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzgyX0MoQk9PU1RfUFBfQk9PTChwKDgzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzgzX0MoQk9PU1RfUFBfQk9PTChwKDg0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg0X0MoQk9PU1RfUFBfQk9PTChwKDg1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg1X0MoQk9PU1RfUFBfQk9PTChwKDg2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg2X0MoQk9PU1RfUFBfQk9PTChwKDg3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg3X0MoQk9PU1RfUFBfQk9PTChwKDg4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg4X0MoQk9PU1RfUFBfQk9PTChwKDg5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzg5X0MoQk9PU1RfUFBfQk9PTChwKDkwLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTAocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzkwX0MoQk9PU1RfUFBfQk9PTChwKDkxLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTEocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzkxX0MoQk9PU1RfUFBfQk9PTChwKDkyLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTIocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzkyX0MoQk9PU1RfUFBfQk9PTChwKDkzLCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTMocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzkzX0MoQk9PU1RfUFBfQk9PTChwKDk0LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTQocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk0X0MoQk9PU1RfUFBfQk9PTChwKDk1LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTUocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk1X0MoQk9PU1RfUFBfQk9PTChwKDk2LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTYocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk2X0MoQk9PU1RfUFBfQk9PTChwKDk3LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTcocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk3X0MoQk9PU1RfUFBfQk9PTChwKDk4LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTgocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk4X0MoQk9PU1RfUFBfQk9PTChwKDk5LCBzKSksIHMsIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTkocywgcCwgbywgbSkgQk9PU1RfUFBfRk9SXzk5X0MoQk9PU1RfUFBfQk9PTChwKDEwMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTAwX0MoQk9PU1RfUFBfQk9PTChwKDEwMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTAxX0MoQk9PU1RfUFBfQk9PTChwKDEwMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTAyX0MoQk9PU1RfUFBfQk9PTChwKDEwMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTAzX0MoQk9PU1RfUFBfQk9PTChwKDEwNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA0X0MoQk9PU1RfUFBfQk9PTChwKDEwNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA1X0MoQk9PU1RfUFBfQk9PTChwKDEwNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA2X0MoQk9PU1RfUFBfQk9PTChwKDEwNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA3X0MoQk9PU1RfUFBfQk9PTChwKDEwOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA4X0MoQk9PU1RfUFBfQk9PTChwKDEwOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTA5X0MoQk9PU1RfUFBfQk9PTChwKDExMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTEwX0MoQk9PU1RfUFBfQk9PTChwKDExMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTExX0MoQk9PU1RfUFBfQk9PTChwKDExMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTEyX0MoQk9PU1RfUFBfQk9PTChwKDExMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTEzX0MoQk9PU1RfUFBfQk9PTChwKDExNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE0X0MoQk9PU1RfUFBfQk9PTChwKDExNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE1X0MoQk9PU1RfUFBfQk9PTChwKDExNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE2X0MoQk9PU1RfUFBfQk9PTChwKDExNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE3X0MoQk9PU1RfUFBfQk9PTChwKDExOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE4X0MoQk9PU1RfUFBfQk9PTChwKDExOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTE5X0MoQk9PU1RfUFBfQk9PTChwKDEyMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTIwX0MoQk9PU1RfUFBfQk9PTChwKDEyMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTIxX0MoQk9PU1RfUFBfQk9PTChwKDEyMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTIyX0MoQk9PU1RfUFBfQk9PTChwKDEyMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTIzX0MoQk9PU1RfUFBfQk9PTChwKDEyNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI0X0MoQk9PU1RfUFBfQk9PTChwKDEyNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI1X0MoQk9PU1RfUFBfQk9PTChwKDEyNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI2X0MoQk9PU1RfUFBfQk9PTChwKDEyNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI3X0MoQk9PU1RfUFBfQk9PTChwKDEyOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI4X0MoQk9PU1RfUFBfQk9PTChwKDEyOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTI5X0MoQk9PU1RfUFBfQk9PTChwKDEzMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTMwX0MoQk9PU1RfUFBfQk9PTChwKDEzMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTMxX0MoQk9PU1RfUFBfQk9PTChwKDEzMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTMyX0MoQk9PU1RfUFBfQk9PTChwKDEzMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTMzX0MoQk9PU1RfUFBfQk9PTChwKDEzNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM0X0MoQk9PU1RfUFBfQk9PTChwKDEzNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM1X0MoQk9PU1RfUFBfQk9PTChwKDEzNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM2X0MoQk9PU1RfUFBfQk9PTChwKDEzNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM3X0MoQk9PU1RfUFBfQk9PTChwKDEzOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM4X0MoQk9PU1RfUFBfQk9PTChwKDEzOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTM5X0MoQk9PU1RfUFBfQk9PTChwKDE0MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQwX0MoQk9PU1RfUFBfQk9PTChwKDE0MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQxX0MoQk9PU1RfUFBfQk9PTChwKDE0MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQyX0MoQk9PU1RfUFBfQk9PTChwKDE0MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQzX0MoQk9PU1RfUFBfQk9PTChwKDE0NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ0X0MoQk9PU1RfUFBfQk9PTChwKDE0NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ1X0MoQk9PU1RfUFBfQk9PTChwKDE0NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ2X0MoQk9PU1RfUFBfQk9PTChwKDE0NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ3X0MoQk9PU1RfUFBfQk9PTChwKDE0OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ4X0MoQk9PU1RfUFBfQk9PTChwKDE0OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTQ5X0MoQk9PU1RfUFBfQk9PTChwKDE1MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTUwX0MoQk9PU1RfUFBfQk9PTChwKDE1MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTUxX0MoQk9PU1RfUFBfQk9PTChwKDE1MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTUyX0MoQk9PU1RfUFBfQk9PTChwKDE1MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTUzX0MoQk9PU1RfUFBfQk9PTChwKDE1NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU0X0MoQk9PU1RfUFBfQk9PTChwKDE1NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU1X0MoQk9PU1RfUFBfQk9PTChwKDE1NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU2X0MoQk9PU1RfUFBfQk9PTChwKDE1NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU3X0MoQk9PU1RfUFBfQk9PTChwKDE1OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU4X0MoQk9PU1RfUFBfQk9PTChwKDE1OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTU5X0MoQk9PU1RfUFBfQk9PTChwKDE2MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTYwX0MoQk9PU1RfUFBfQk9PTChwKDE2MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTYxX0MoQk9PU1RfUFBfQk9PTChwKDE2MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTYyX0MoQk9PU1RfUFBfQk9PTChwKDE2MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTYzX0MoQk9PU1RfUFBfQk9PTChwKDE2NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY0X0MoQk9PU1RfUFBfQk9PTChwKDE2NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY1X0MoQk9PU1RfUFBfQk9PTChwKDE2NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY2X0MoQk9PU1RfUFBfQk9PTChwKDE2NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY3X0MoQk9PU1RfUFBfQk9PTChwKDE2OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY4X0MoQk9PU1RfUFBfQk9PTChwKDE2OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTY5X0MoQk9PU1RfUFBfQk9PTChwKDE3MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTcwX0MoQk9PU1RfUFBfQk9PTChwKDE3MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTcxX0MoQk9PU1RfUFBfQk9PTChwKDE3MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTcyX0MoQk9PU1RfUFBfQk9PTChwKDE3MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTczX0MoQk9PU1RfUFBfQk9PTChwKDE3NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc0X0MoQk9PU1RfUFBfQk9PTChwKDE3NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc1X0MoQk9PU1RfUFBfQk9PTChwKDE3NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc2X0MoQk9PU1RfUFBfQk9PTChwKDE3NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc3X0MoQk9PU1RfUFBfQk9PTChwKDE3OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc4X0MoQk9PU1RfUFBfQk9PTChwKDE3OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTc5X0MoQk9PU1RfUFBfQk9PTChwKDE4MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTgwX0MoQk9PU1RfUFBfQk9PTChwKDE4MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTgxX0MoQk9PU1RfUFBfQk9PTChwKDE4MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTgyX0MoQk9PU1RfUFBfQk9PTChwKDE4MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTgzX0MoQk9PU1RfUFBfQk9PTChwKDE4NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg0X0MoQk9PU1RfUFBfQk9PTChwKDE4NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg1X0MoQk9PU1RfUFBfQk9PTChwKDE4NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg2X0MoQk9PU1RfUFBfQk9PTChwKDE4NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg3X0MoQk9PU1RfUFBfQk9PTChwKDE4OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg4X0MoQk9PU1RfUFBfQk9PTChwKDE4OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTg5X0MoQk9PU1RfUFBfQk9PTChwKDE5MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTkwX0MoQk9PU1RfUFBfQk9PTChwKDE5MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTkxX0MoQk9PU1RfUFBfQk9PTChwKDE5MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTkyX0MoQk9PU1RfUFBfQk9PTChwKDE5MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTkzX0MoQk9PU1RfUFBfQk9PTChwKDE5NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk0X0MoQk9PU1RfUFBfQk9PTChwKDE5NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk1X0MoQk9PU1RfUFBfQk9PTChwKDE5NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk2X0MoQk9PU1RfUFBfQk9PTChwKDE5NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk3X0MoQk9PU1RfUFBfQk9PTChwKDE5OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk4X0MoQk9PU1RfUFBfQk9PTChwKDE5OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMTk5X0MoQk9PU1RfUFBfQk9PTChwKDIwMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjAwX0MoQk9PU1RfUFBfQk9PTChwKDIwMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjAxX0MoQk9PU1RfUFBfQk9PTChwKDIwMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjAyX0MoQk9PU1RfUFBfQk9PTChwKDIwMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjAzX0MoQk9PU1RfUFBfQk9PTChwKDIwNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA0X0MoQk9PU1RfUFBfQk9PTChwKDIwNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA1X0MoQk9PU1RfUFBfQk9PTChwKDIwNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA2X0MoQk9PU1RfUFBfQk9PTChwKDIwNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA3X0MoQk9PU1RfUFBfQk9PTChwKDIwOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA4X0MoQk9PU1RfUFBfQk9PTChwKDIwOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjA5X0MoQk9PU1RfUFBfQk9PTChwKDIxMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjEwX0MoQk9PU1RfUFBfQk9PTChwKDIxMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjExX0MoQk9PU1RfUFBfQk9PTChwKDIxMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjEyX0MoQk9PU1RfUFBfQk9PTChwKDIxMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjEzX0MoQk9PU1RfUFBfQk9PTChwKDIxNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE0X0MoQk9PU1RfUFBfQk9PTChwKDIxNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE1X0MoQk9PU1RfUFBfQk9PTChwKDIxNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE2X0MoQk9PU1RfUFBfQk9PTChwKDIxNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE3X0MoQk9PU1RfUFBfQk9PTChwKDIxOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE4X0MoQk9PU1RfUFBfQk9PTChwKDIxOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjE5X0MoQk9PU1RfUFBfQk9PTChwKDIyMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjIwX0MoQk9PU1RfUFBfQk9PTChwKDIyMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjIxX0MoQk9PU1RfUFBfQk9PTChwKDIyMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjIyX0MoQk9PU1RfUFBfQk9PTChwKDIyMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjIzX0MoQk9PU1RfUFBfQk9PTChwKDIyNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI0X0MoQk9PU1RfUFBfQk9PTChwKDIyNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI1X0MoQk9PU1RfUFBfQk9PTChwKDIyNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI2X0MoQk9PU1RfUFBfQk9PTChwKDIyNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI3X0MoQk9PU1RfUFBfQk9PTChwKDIyOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI4X0MoQk9PU1RfUFBfQk9PTChwKDIyOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjI5X0MoQk9PU1RfUFBfQk9PTChwKDIzMCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjMwX0MoQk9PU1RfUFBfQk9PTChwKDIzMSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjMxX0MoQk9PU1RfUFBfQk9PTChwKDIzMiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjMyX0MoQk9PU1RfUFBfQk9PTChwKDIzMywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjMzX0MoQk9PU1RfUFBfQk9PTChwKDIzNCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM0X0MoQk9PU1RfUFBfQk9PTChwKDIzNSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM1X0MoQk9PU1RfUFBfQk9PTChwKDIzNiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM2X0MoQk9PU1RfUFBfQk9PTChwKDIzNywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM3X0MoQk9PU1RfUFBfQk9PTChwKDIzOCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzOChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM4X0MoQk9PU1RfUFBfQk9PTChwKDIzOSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzOShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjM5X0MoQk9PU1RfUFBfQk9PTChwKDI0MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQwX0MoQk9PU1RfUFBfQk9PTChwKDI0MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQxX0MoQk9PU1RfUFBfQk9PTChwKDI0MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQyX0MoQk9PU1RfUFBfQk9PTChwKDI0MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQzX0MoQk9PU1RfUFBfQk9PTChwKDI0NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ0X0MoQk9PU1RfUFBfQk9PTChwKDI0NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ1X0MoQk9PU1RfUFBfQk9PTChwKDI0NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ2X0MoQk9PU1RfUFBfQk9PTChwKDI0NywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ3X0MoQk9PU1RfUFBfQk9PTChwKDI0OCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0OChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ4X0MoQk9PU1RfUFBfQk9PTChwKDI0OSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0OShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjQ5X0MoQk9PU1RfUFBfQk9PTChwKDI1MCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjUwX0MoQk9PU1RfUFBfQk9PTChwKDI1MSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjUxX0MoQk9PU1RfUFBfQk9PTChwKDI1MiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjUyX0MoQk9PU1RfUFBfQk9PTChwKDI1MywgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjUzX0MoQk9PU1RfUFBfQk9PTChwKDI1NCwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1NChzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjU0X0MoQk9PU1RfUFBfQk9PTChwKDI1NSwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1NShzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjU1X0MoQk9PU1RfUFBfQk9PTChwKDI1NiwgcykpLCBzLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1NihzLCBwLCBvLCBtKSBCT09TVF9QUF9GT1JfMjU2X0MoQk9PU1RfUFBfQk9PTChwKDI1NywgcykpLCBzLCBwLCBvLCBtKQorIworIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMThfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzMxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMzEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDMyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzM0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMzQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDM1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzM3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMzcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8zOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDM4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgzOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQ0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQ2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl80NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDQ3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg0OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzQ5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNDksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDUwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzUyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDUzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzU1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDU2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg1NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzU4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl81OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDU5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzYxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNjEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDYyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzY0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNjQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDY1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzY3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNjcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl82OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDY4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNjksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg2OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzcwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDcxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDczLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzczLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzczX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDc0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzc2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl83NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDc3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfNzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg3OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzc5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoNzksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDgwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfODEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzgyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoODIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDgzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfODQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzg1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoODUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDg2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfODcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg4NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzg4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoODgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl84OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDg5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzkxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDkyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzk0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDk1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzk3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoOTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl85OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDk4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfOTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSg5OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTAyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTAyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTA1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTA1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEwNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEwNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTA4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTA4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMDksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTEwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTExLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTExLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTEzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTE0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTE0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTE3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTE3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzExOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDExOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTIwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTIwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMjEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTIzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTIzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMjQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTI2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTI2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMjcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEyOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEyOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTI5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTI5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTMyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTMyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTM1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTM1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzEzNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDEzNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTM4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTM4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xMzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxMzksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQ0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQ0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTQ3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTQ3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE0OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE0OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTUwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTUwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTUzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTUzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTU2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTU2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE1OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE1OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTU5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTU5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTYyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTYyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTY1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTY1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE2NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE2NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTY4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTY4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNjksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTcwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTcxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTcxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3MiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3Ml9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTczLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTczX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTc0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTc0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3NSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTc3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTc3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3OCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xNzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxNzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3OF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE3OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE3OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTgwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTgwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xODEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxODEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTgzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTgzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xODQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxODQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTg2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTg2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xODcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxODcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE4OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE4OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTg5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTg5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTkyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTkyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTk1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTk1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzE5NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDE5NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMTk4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMTk4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOThfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5OSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8xOTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgxOTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5OV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjAxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjAxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjA0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjA0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjA3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjA3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIwOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIwOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjEwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjEwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxMSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjEzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjEzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxNCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjE2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjE2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxNywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxN19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIxOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIxOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjE5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjE5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyMCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjIyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjIyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyMywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyM19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjI1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjI1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyNiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIyNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIyNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI3X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjgsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjI4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjI4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjhfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyOSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMjksIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyOV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMwLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMwX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzEsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjMxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjMxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzFfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzMiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMzLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMzX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzQsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjM0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjM0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzRfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzNSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM2LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM2X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzcsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjM3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjM3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzdfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzOCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yMzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyMzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzOF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM5LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzIzOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDIzOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM5X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDAsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDBfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0MSwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNDEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNDEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MV9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQyLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQyX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDMsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDNfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0NCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNDQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ1LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ1X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDYsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQ2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQ2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDZfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0NywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNDcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0N19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ4LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI0OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI0OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ4X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDksIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjQ5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjQ5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDlfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1MCwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MF9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUxLCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI1MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI1MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUxX0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTIsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjUyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjUyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTJfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1MywgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1M19DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU0LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI1NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI1NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU0X0MoYywgcywgcCwgbywgbSkgQk9PU1RfUFBfSUlGKGMsIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTUsIHMpIEJPT1NUX1BQX0lJRihjLCBCT09TVF9QUF9GT1JfMjU1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkoQk9PU1RfUFBfRVhQUl9JSUYoYywgbykoMjU1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTVfQyhjLCBzLCBwLCBvLCBtKSBCT09TVF9QUF9JSUYoYywgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1NiwgcykgQk9PU1RfUFBfSUlGKGMsIEJPT1NUX1BQX0ZPUl8yNTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShCT09TVF9QUF9FWFBSX0lJRihjLCBvKSgyNTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1Nl9DKGMsIHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lJRihjLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU3LCBzKSBCT09TVF9QUF9JSUYoYywgQk9PU1RfUFBfRk9SXzI1NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKEJPT1NUX1BQX0VYUFJfSUlGKGMsIG8pKDI1NywgcyksIHAsIG8sIG0pCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9kZXRhaWwvbXN2Yy9mb3IuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZGV0YWlsL21zdmMvZm9yLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWMxOTk2Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZGV0YWlsL21zdmMvZm9yLmhwcApAQCAtMCwwICsxLDI3NyBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9ERVRBSUxfTVNWQ19GT1JfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9ERVRBSUxfTVNWQ19GT1JfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lmLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VhdC5ocHA+CisjCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMiwgcykgQk9PU1RfUFBfSUYocCgyLCBzKSwgQk9PU1RfUFBfRk9SXzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMsIHMpIEJPT1NUX1BQX0lGKHAoMywgcyksIEJPT1NUX1BQX0ZPUl8zLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0LCBzKSBCT09TVF9QUF9JRihwKDQsIHMpLCBCT09TVF9QUF9GT1JfNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNSwgcykgQk9PU1RfUFBfSUYocCg1LCBzKSwgQk9PU1RfUFBfRk9SXzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYsIHMpIEJPT1NUX1BQX0lGKHAoNiwgcyksIEJPT1NUX1BQX0ZPUl82LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3LCBzKSBCT09TVF9QUF9JRihwKDcsIHMpLCBCT09TVF9QUF9GT1JfNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOCwgcykgQk9PU1RfUFBfSUYocCg4LCBzKSwgQk9PU1RfUFBfRk9SXzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDksIHMpIEJPT1NUX1BQX0lGKHAoOSwgcyksIEJPT1NUX1BQX0ZPUl85LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAsIHMpIEJPT1NUX1BQX0lGKHAoMTAsIHMpLCBCT09TVF9QUF9GT1JfMTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExLCBzKSBCT09TVF9QUF9JRihwKDExLCBzKSwgQk9PU1RfUFBfRk9SXzExLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMiwgcykgQk9PU1RfUFBfSUYocCgxMiwgcyksIEJPT1NUX1BQX0ZPUl8xMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMsIHMpIEJPT1NUX1BQX0lGKHAoMTMsIHMpLCBCT09TVF9QUF9GT1JfMTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0LCBzKSBCT09TVF9QUF9JRihwKDE0LCBzKSwgQk9PU1RfUFBfRk9SXzE0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNSwgcykgQk9PU1RfUFBfSUYocCgxNSwgcyksIEJPT1NUX1BQX0ZPUl8xNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYsIHMpIEJPT1NUX1BQX0lGKHAoMTYsIHMpLCBCT09TVF9QUF9GT1JfMTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3LCBzKSBCT09TVF9QUF9JRihwKDE3LCBzKSwgQk9PU1RfUFBfRk9SXzE3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOCwgcykgQk9PU1RfUFBfSUYocCgxOCwgcyksIEJPT1NUX1BQX0ZPUl8xOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTksIHMpIEJPT1NUX1BQX0lGKHAoMTksIHMpLCBCT09TVF9QUF9GT1JfMTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwLCBzKSBCT09TVF9QUF9JRihwKDIwLCBzKSwgQk9PU1RfUFBfRk9SXzIwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMSwgcykgQk9PU1RfUFBfSUYocCgyMSwgcyksIEJPT1NUX1BQX0ZPUl8yMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIsIHMpIEJPT1NUX1BQX0lGKHAoMjIsIHMpLCBCT09TVF9QUF9GT1JfMjIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzLCBzKSBCT09TVF9QUF9JRihwKDIzLCBzKSwgQk9PU1RfUFBfRk9SXzIzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNCwgcykgQk9PU1RfUFBfSUYocCgyNCwgcyksIEJPT1NUX1BQX0ZPUl8yNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUsIHMpIEJPT1NUX1BQX0lGKHAoMjUsIHMpLCBCT09TVF9QUF9GT1JfMjUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI2LCBzKSBCT09TVF9QUF9JRihwKDI2LCBzKSwgQk9PU1RfUFBfRk9SXzI2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNywgcykgQk9PU1RfUFBfSUYocCgyNywgcyksIEJPT1NUX1BQX0ZPUl8yNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjgsIHMpIEJPT1NUX1BQX0lGKHAoMjgsIHMpLCBCT09TVF9QUF9GT1JfMjgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yOChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI5LCBzKSBCT09TVF9QUF9JRihwKDI5LCBzKSwgQk9PU1RfUFBfRk9SXzI5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMCwgcykgQk9PU1RfUFBfSUYocCgzMCwgcyksIEJPT1NUX1BQX0ZPUl8zMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMzEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzEsIHMpIEJPT1NUX1BQX0lGKHAoMzEsIHMpLCBCT09TVF9QUF9GT1JfMzEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDMxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zMShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDMyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDMyLCBzKSBCT09TVF9QUF9JRihwKDMyLCBzKSwgQk9PU1RfUFBfRk9SXzMyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzMywgcykgQk9PU1RfUFBfSUYocCgzMywgcyksIEJPT1NUX1BQX0ZPUl8zMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzMzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMzQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzQsIHMpIEJPT1NUX1BQX0lGKHAoMzQsIHMpLCBCT09TVF9QUF9GT1JfMzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDM0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zNChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDM1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM1LCBzKSBCT09TVF9QUF9JRihwKDM1LCBzKSwgQk9PU1RfUFBfRk9SXzM1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzNiwgcykgQk9PU1RfUFBfSUYocCgzNiwgcyksIEJPT1NUX1BQX0ZPUl8zNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMzcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMzcsIHMpIEJPT1NUX1BQX0lGKHAoMzcsIHMpLCBCT09TVF9QUF9GT1JfMzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDM3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8zNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDM4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDM4LCBzKSBCT09TVF9QUF9JRihwKDM4LCBzKSwgQk9PU1RfUFBfRk9SXzM4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygzOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMzgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgzOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgzOSwgcykgQk9PU1RfUFBfSUYocCgzOSwgcyksIEJPT1NUX1BQX0ZPUl8zOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMzksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzM5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNDAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDAsIHMpIEJPT1NUX1BQX0lGKHAoNDAsIHMpLCBCT09TVF9QUF9GT1JfNDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDQwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80MChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQxLCBzKSBCT09TVF9QUF9JRihwKDQxLCBzKSwgQk9PU1RfUFBfRk9SXzQxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0MiwgcykgQk9PU1RfUFBfSUYocCg0MiwgcyksIEJPT1NUX1BQX0ZPUl80MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNDMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDMsIHMpIEJPT1NUX1BQX0lGKHAoNDMsIHMpLCBCT09TVF9QUF9GT1JfNDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDQzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQ0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ0LCBzKSBCT09TVF9QUF9JRihwKDQ0LCBzKSwgQk9PU1RfUFBfRk9SXzQ0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0NSwgcykgQk9PU1RfUFBfSUYocCg0NSwgcyksIEJPT1NUX1BQX0ZPUl80NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNDYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDYsIHMpIEJPT1NUX1BQX0lGKHAoNDYsIHMpLCBCT09TVF9QUF9GT1JfNDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDQ2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80NihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDQ3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDQ3LCBzKSBCT09TVF9QUF9JRihwKDQ3LCBzKSwgQk9PU1RfUFBfRk9SXzQ3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg0NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNDcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg0OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg0OCwgcykgQk9PU1RfUFBfSUYocCg0OCwgcyksIEJPT1NUX1BQX0ZPUl80OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzQ4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNDksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNDksIHMpIEJPT1NUX1BQX0lGKHAoNDksIHMpLCBCT09TVF9QUF9GT1JfNDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDQ5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl80OShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDUwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUwLCBzKSBCT09TVF9QUF9JRihwKDUwLCBzKSwgQk9PU1RfUFBfRk9SXzUwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1MSwgcykgQk9PU1RfUFBfSUYocCg1MSwgcyksIEJPT1NUX1BQX0ZPUl81MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzUxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNTIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTIsIHMpIEJPT1NUX1BQX0lGKHAoNTIsIHMpLCBCT09TVF9QUF9GT1JfNTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDUyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81MihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDUzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDUzLCBzKSBCT09TVF9QUF9JRihwKDUzLCBzKSwgQk9PU1RfUFBfRk9SXzUzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NCwgcykgQk9PU1RfUFBfSUYocCg1NCwgcyksIEJPT1NUX1BQX0ZPUl81NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNTUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTUsIHMpIEJPT1NUX1BQX0lGKHAoNTUsIHMpLCBCT09TVF9QUF9GT1JfNTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDU1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81NShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDU2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU2LCBzKSBCT09TVF9QUF9JRihwKDU2LCBzKSwgQk9PU1RfUFBfRk9SXzU2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg1NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg1NywgcykgQk9PU1RfUFBfSUYocCg1NywgcyksIEJPT1NUX1BQX0ZPUl81NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzU3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNTgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNTgsIHMpIEJPT1NUX1BQX0lGKHAoNTgsIHMpLCBCT09TVF9QUF9GT1JfNTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDU4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl81OChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDU5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDU5LCBzKSBCT09TVF9QUF9JRihwKDU5LCBzKSwgQk9PU1RfUFBfRk9SXzU5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg1OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNTkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MCwgcykgQk9PU1RfUFBfSUYocCg2MCwgcyksIEJPT1NUX1BQX0ZPUl82MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNjEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjEsIHMpIEJPT1NUX1BQX0lGKHAoNjEsIHMpLCBCT09TVF9QUF9GT1JfNjEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDYxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82MShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDYyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDYyLCBzKSBCT09TVF9QUF9JRihwKDYyLCBzKSwgQk9PU1RfUFBfRk9SXzYyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2MywgcykgQk9PU1RfUFBfSUYocCg2MywgcyksIEJPT1NUX1BQX0ZPUl82MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzYzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNjQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjQsIHMpIEJPT1NUX1BQX0lGKHAoNjQsIHMpLCBCT09TVF9QUF9GT1JfNjQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDY0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82NChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDY1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY1LCBzKSBCT09TVF9QUF9JRihwKDY1LCBzKSwgQk9PU1RfUFBfRk9SXzY1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2NiwgcykgQk9PU1RfUFBfSUYocCg2NiwgcyksIEJPT1NUX1BQX0ZPUl82NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNjcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNjcsIHMpIEJPT1NUX1BQX0lGKHAoNjcsIHMpLCBCT09TVF9QUF9GT1JfNjcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDY3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl82NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDY4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDY4LCBzKSBCT09TVF9QUF9JRihwKDY4LCBzKSwgQk9PU1RfUFBfRk9SXzY4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg2OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNjgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg2OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg2OSwgcykgQk9PU1RfUFBfSUYocCg2OSwgcyksIEJPT1NUX1BQX0ZPUl82OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzY5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNzAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzAsIHMpIEJPT1NUX1BQX0lGKHAoNzAsIHMpLCBCT09TVF9QUF9GT1JfNzAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDcwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83MChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDcxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDcxLCBzKSBCT09TVF9QUF9JRihwKDcxLCBzKSwgQk9PU1RfUFBfRk9SXzcxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3MiwgcykgQk9PU1RfUFBfSUYocCg3MiwgcyksIEJPT1NUX1BQX0ZPUl83MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzcyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNzMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzMsIHMpIEJPT1NUX1BQX0lGKHAoNzMsIHMpLCBCT09TVF9QUF9GT1JfNzMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDczLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDc0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc0LCBzKSBCT09TVF9QUF9JRihwKDc0LCBzKSwgQk9PU1RfUFBfRk9SXzc0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3NSwgcykgQk9PU1RfUFBfSUYocCg3NSwgcyksIEJPT1NUX1BQX0ZPUl83NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNzYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzYsIHMpIEJPT1NUX1BQX0lGKHAoNzYsIHMpLCBCT09TVF9QUF9GT1JfNzYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDc2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83NihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDc3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDc3LCBzKSBCT09TVF9QUF9JRihwKDc3LCBzKSwgQk9PU1RfUFBfRk9SXzc3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg3NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfNzcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg3OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg3OCwgcykgQk9PU1RfUFBfSUYocCg3OCwgcyksIEJPT1NUX1BQX0ZPUl83OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oNzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzc4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoNzksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoNzksIHMpIEJPT1NUX1BQX0lGKHAoNzksIHMpLCBCT09TVF9QUF9GT1JfNzksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDc5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl83OShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDgwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgwLCBzKSBCT09TVF9QUF9JRihwKDgwLCBzKSwgQk9PU1RfUFBfRk9SXzgwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4MSwgcykgQk9PU1RfUFBfSUYocCg4MSwgcyksIEJPT1NUX1BQX0ZPUl84MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzgxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoODIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODIsIHMpIEJPT1NUX1BQX0lGKHAoODIsIHMpLCBCT09TVF9QUF9GT1JfODIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDgyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84MihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDgzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDgzLCBzKSBCT09TVF9QUF9JRihwKDgzLCBzKSwgQk9PU1RfUFBfRk9SXzgzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NCwgcykgQk9PU1RfUFBfSUYocCg4NCwgcyksIEJPT1NUX1BQX0ZPUl84NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoODUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODUsIHMpIEJPT1NUX1BQX0lGKHAoODUsIHMpLCBCT09TVF9QUF9GT1JfODUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDg1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84NShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDg2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg2LCBzKSBCT09TVF9QUF9JRihwKDg2LCBzKSwgQk9PU1RfUFBfRk9SXzg2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg4NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg4NywgcykgQk9PU1RfUFBfSUYocCg4NywgcyksIEJPT1NUX1BQX0ZPUl84NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oODcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzg3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoODgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoODgsIHMpIEJPT1NUX1BQX0lGKHAoODgsIHMpLCBCT09TVF9QUF9GT1JfODgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDg4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl84OChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDg5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDg5LCBzKSBCT09TVF9QUF9JRihwKDg5LCBzKSwgQk9PU1RfUFBfRk9SXzg5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg4OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfODkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MCwgcykgQk9PU1RfUFBfSUYocCg5MCwgcyksIEJPT1NUX1BQX0ZPUl85MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoOTEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTEsIHMpIEJPT1NUX1BQX0lGKHAoOTEsIHMpLCBCT09TVF9QUF9GT1JfOTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDkxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85MShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDkyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDkyLCBzKSBCT09TVF9QUF9JRihwKDkyLCBzKSwgQk9PU1RfUFBfRk9SXzkyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5MywgcykgQk9PU1RfUFBfSUYocCg5MywgcyksIEJPT1NUX1BQX0ZPUl85MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzkzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoOTQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTQsIHMpIEJPT1NUX1BQX0lGKHAoOTQsIHMpLCBCT09TVF9QUF9GT1JfOTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDk0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85NChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDk1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk1LCBzKSBCT09TVF9QUF9JRihwKDk1LCBzKSwgQk9PU1RfUFBfRk9SXzk1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5NiwgcykgQk9PU1RfUFBfSUYocCg5NiwgcyksIEJPT1NUX1BQX0ZPUl85NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoOTcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoOTcsIHMpIEJPT1NUX1BQX0lGKHAoOTcsIHMpLCBCT09TVF9QUF9GT1JfOTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDk3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl85NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDk4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDk4LCBzKSBCT09TVF9QUF9JRihwKDk4LCBzKSwgQk9PU1RfUFBfRk9SXzk4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobyg5OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfOTgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCg5OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSg5OSwgcykgQk9PU1RfUFBfSUYocCg5OSwgcyksIEJPT1NUX1BQX0ZPUl85OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oOTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzk5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTAwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwMCwgcykgQk9PU1RfUFBfSUYocCgxMDAsIHMpLCBCT09TVF9QUF9GT1JfMTAwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMDAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDEsIHMpIEJPT1NUX1BQX0lGKHAoMTAxLCBzKSwgQk9PU1RfUFBfRk9SXzEwMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTAxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTAyLCBzKSBCT09TVF9QUF9JRihwKDEwMiwgcyksIEJPT1NUX1BQX0ZPUl8xMDIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTAyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTAzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwMywgcykgQk9PU1RfUFBfSUYocCgxMDMsIHMpLCBCT09TVF9QUF9GT1JfMTAzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMDMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDQsIHMpIEJPT1NUX1BQX0lGKHAoMTA0LCBzKSwgQk9PU1RfUFBfRk9SXzEwNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTA0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA1LCBzKSBCT09TVF9QUF9JRihwKDEwNSwgcyksIEJPT1NUX1BQX0ZPUl8xMDUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTA2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwNiwgcykgQk9PU1RfUFBfSUYocCgxMDYsIHMpLCBCT09TVF9QUF9GT1JfMTA2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMDYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwNihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEwNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMDcsIHMpIEJPT1NUX1BQX0lGKHAoMTA3LCBzKSwgQk9PU1RfUFBfRk9SXzEwNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTA3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMDcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMDgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTA4LCBzKSBCT09TVF9QUF9JRihwKDEwOCwgcyksIEJPT1NUX1BQX0ZPUl8xMDgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEwOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTA4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTA5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEwOSwgcykgQk9PU1RfUFBfSUYocCgxMDksIHMpLCBCT09TVF9QUF9GT1JfMTA5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMDksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEwOShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTAsIHMpIEJPT1NUX1BQX0lGKHAoMTEwLCBzKSwgQk9PU1RfUFBfRk9SXzExMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTEwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTExLCBzKSBCT09TVF9QUF9JRihwKDExMSwgcyksIEJPT1NUX1BQX0ZPUl8xMTEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTExKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTEyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExMiwgcykgQk9PU1RfUFBfSUYocCgxMTIsIHMpLCBCT09TVF9QUF9GT1JfMTEyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMTIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExMihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTMsIHMpIEJPT1NUX1BQX0lGKHAoMTEzLCBzKSwgQk9PU1RfUFBfRk9SXzExMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTEzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE0LCBzKSBCT09TVF9QUF9JRihwKDExNCwgcyksIEJPT1NUX1BQX0ZPUl8xMTQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTE1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExNSwgcykgQk9PU1RfUFBfSUYocCgxMTUsIHMpLCBCT09TVF9QUF9GT1JfMTE1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMTUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExNShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTYsIHMpIEJPT1NUX1BQX0lGKHAoMTE2LCBzKSwgQk9PU1RfUFBfRk9SXzExNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTE2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMTcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTE3LCBzKSBCT09TVF9QUF9JRihwKDExNywgcyksIEJPT1NUX1BQX0ZPUl8xMTcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDExNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTE3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTE4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDExOCwgcykgQk9PU1RfUFBfSUYocCgxMTgsIHMpLCBCT09TVF9QUF9GT1JfMTE4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMTgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzExOChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDExOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMTksIHMpIEJPT1NUX1BQX0lGKHAoMTE5LCBzKSwgQk9PU1RfUFBfRk9SXzExOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTE5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMTkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIwLCBzKSBCT09TVF9QUF9JRihwKDEyMCwgcyksIEJPT1NUX1BQX0ZPUl8xMjAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTIxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyMSwgcykgQk9PU1RfUFBfSUYocCgxMjEsIHMpLCBCT09TVF9QUF9GT1JfMTIxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMjEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyMShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjIsIHMpIEJPT1NUX1BQX0lGKHAoMTIyLCBzKSwgQk9PU1RfUFBfRk9SXzEyMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTIyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTIzLCBzKSBCT09TVF9QUF9JRihwKDEyMywgcyksIEJPT1NUX1BQX0ZPUl8xMjMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTIzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTI0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyNCwgcykgQk9PU1RfUFBfSUYocCgxMjQsIHMpLCBCT09TVF9QUF9GT1JfMTI0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMjQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjUsIHMpIEJPT1NUX1BQX0lGKHAoMTI1LCBzKSwgQk9PU1RfUFBfRk9SXzEyNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTI1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI2LCBzKSBCT09TVF9QUF9JRihwKDEyNiwgcyksIEJPT1NUX1BQX0ZPUl8xMjYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTI3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEyNywgcykgQk9PU1RfUFBfSUYocCgxMjcsIHMpLCBCT09TVF9QUF9GT1JfMTI3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMjcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEyNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEyOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMjgsIHMpIEJPT1NUX1BQX0lGKHAoMTI4LCBzKSwgQk9PU1RfUFBfRk9SXzEyOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTI4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMjgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMjksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTI5LCBzKSBCT09TVF9QUF9JRihwKDEyOSwgcyksIEJPT1NUX1BQX0ZPUl8xMjksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEyOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTI5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTMwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzMCwgcykgQk9PU1RfUFBfSUYocCgxMzAsIHMpLCBCT09TVF9QUF9GT1JfMTMwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMzAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzEsIHMpIEJPT1NUX1BQX0lGKHAoMTMxLCBzKSwgQk9PU1RfUFBfRk9SXzEzMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTMxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTMyLCBzKSBCT09TVF9QUF9JRihwKDEzMiwgcyksIEJPT1NUX1BQX0ZPUl8xMzIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTMyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTMzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzMywgcykgQk9PU1RfUFBfSUYocCgxMzMsIHMpLCBCT09TVF9QUF9GT1JfMTMzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMzMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzQsIHMpIEJPT1NUX1BQX0lGKHAoMTM0LCBzKSwgQk9PU1RfUFBfRk9SXzEzNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTM0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM1LCBzKSBCT09TVF9QUF9JRihwKDEzNSwgcyksIEJPT1NUX1BQX0ZPUl8xMzUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTM2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzNiwgcykgQk9PU1RfUFBfSUYocCgxMzYsIHMpLCBCT09TVF9QUF9GT1JfMTM2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMzYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzNihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDEzNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxMzcsIHMpIEJPT1NUX1BQX0lGKHAoMTM3LCBzKSwgQk9PU1RfUFBfRk9SXzEzNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTM3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xMzcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxMzgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTM4LCBzKSBCT09TVF9QUF9JRihwKDEzOCwgcyksIEJPT1NUX1BQX0ZPUl8xMzgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDEzOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTM4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTM5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDEzOSwgcykgQk9PU1RfUFBfSUYocCgxMzksIHMpLCBCT09TVF9QUF9GT1JfMTM5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxMzksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzEzOShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDAsIHMpIEJPT1NUX1BQX0lGKHAoMTQwLCBzKSwgQk9PU1RfUFBfRk9SXzE0MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQxLCBzKSBCT09TVF9QUF9JRihwKDE0MSwgcyksIEJPT1NUX1BQX0ZPUl8xNDEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTQyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0MiwgcykgQk9PU1RfUFBfSUYocCgxNDIsIHMpLCBCT09TVF9QUF9GT1JfMTQyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0MihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDMsIHMpIEJPT1NUX1BQX0lGKHAoMTQzLCBzKSwgQk9PU1RfUFBfRk9SXzE0MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ0LCBzKSBCT09TVF9QUF9JRihwKDE0NCwgcyksIEJPT1NUX1BQX0ZPUl8xNDQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTQ1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0NSwgcykgQk9PU1RfUFBfSUYocCgxNDUsIHMpLCBCT09TVF9QUF9GT1JfMTQ1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0NShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDYsIHMpIEJPT1NUX1BQX0lGKHAoMTQ2LCBzKSwgQk9PU1RfUFBfRk9SXzE0NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQ2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNDcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTQ3LCBzKSBCT09TVF9QUF9JRihwKDE0NywgcyksIEJPT1NUX1BQX0ZPUl8xNDcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE0NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTQ3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTQ4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE0OCwgcykgQk9PU1RfUFBfSUYocCgxNDgsIHMpLCBCT09TVF9QUF9GT1JfMTQ4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE0OChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE0OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNDksIHMpIEJPT1NUX1BQX0lGKHAoMTQ5LCBzKSwgQk9PU1RfUFBfRk9SXzE0OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTQ5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNDkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUwLCBzKSBCT09TVF9QUF9JRihwKDE1MCwgcyksIEJPT1NUX1BQX0ZPUl8xNTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTUxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1MSwgcykgQk9PU1RfUFBfSUYocCgxNTEsIHMpLCBCT09TVF9QUF9GT1JfMTUxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1MShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTIsIHMpIEJPT1NUX1BQX0lGKHAoMTUyLCBzKSwgQk9PU1RfUFBfRk9SXzE1MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTUyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTUzLCBzKSBCT09TVF9QUF9JRihwKDE1MywgcyksIEJPT1NUX1BQX0ZPUl8xNTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTUzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTU0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1NCwgcykgQk9PU1RfUFBfSUYocCgxNTQsIHMpLCBCT09TVF9QUF9GT1JfMTU0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTUsIHMpIEJPT1NUX1BQX0lGKHAoMTU1LCBzKSwgQk9PU1RfUFBfRk9SXzE1NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTU1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU2LCBzKSBCT09TVF9QUF9JRihwKDE1NiwgcyksIEJPT1NUX1BQX0ZPUl8xNTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTU3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE1NywgcykgQk9PU1RfUFBfSUYocCgxNTcsIHMpLCBCT09TVF9QUF9GT1JfMTU3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE1NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE1OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNTgsIHMpIEJPT1NUX1BQX0lGKHAoMTU4LCBzKSwgQk9PU1RfUFBfRk9SXzE1OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTU4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNTgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNTksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTU5LCBzKSBCT09TVF9QUF9JRihwKDE1OSwgcyksIEJPT1NUX1BQX0ZPUl8xNTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE1OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTU5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTYwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2MCwgcykgQk9PU1RfUFBfSUYocCgxNjAsIHMpLCBCT09TVF9QUF9GT1JfMTYwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjEsIHMpIEJPT1NUX1BQX0lGKHAoMTYxLCBzKSwgQk9PU1RfUFBfRk9SXzE2MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTYxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTYyLCBzKSBCT09TVF9QUF9JRihwKDE2MiwgcyksIEJPT1NUX1BQX0ZPUl8xNjIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTYyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTYzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2MywgcykgQk9PU1RfUFBfSUYocCgxNjMsIHMpLCBCT09TVF9QUF9GT1JfMTYzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjQsIHMpIEJPT1NUX1BQX0lGKHAoMTY0LCBzKSwgQk9PU1RfUFBfRk9SXzE2NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTY0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY1LCBzKSBCT09TVF9QUF9JRihwKDE2NSwgcyksIEJPT1NUX1BQX0ZPUl8xNjUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTY2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2NiwgcykgQk9PU1RfUFBfSUYocCgxNjYsIHMpLCBCT09TVF9QUF9GT1JfMTY2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2NihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE2NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNjcsIHMpIEJPT1NUX1BQX0lGKHAoMTY3LCBzKSwgQk9PU1RfUFBfRk9SXzE2NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTY3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNjcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNjgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTY4LCBzKSBCT09TVF9QUF9JRihwKDE2OCwgcyksIEJPT1NUX1BQX0ZPUl8xNjgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE2OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTY4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTY5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE2OSwgcykgQk9PU1RfUFBfSUYocCgxNjksIHMpLCBCT09TVF9QUF9GT1JfMTY5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE2OShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3MCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzAsIHMpIEJPT1NUX1BQX0lGKHAoMTcwLCBzKSwgQk9PU1RfUFBfRk9SXzE3MCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTcwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTcxLCBzKSBCT09TVF9QUF9JRihwKDE3MSwgcyksIEJPT1NUX1BQX0ZPUl8xNzEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3MSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTcxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTcyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3MiwgcykgQk9PU1RfUFBfSUYocCgxNzIsIHMpLCBCT09TVF9QUF9GT1JfMTcyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3MihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3MywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzMsIHMpIEJPT1NUX1BQX0lGKHAoMTczLCBzKSwgQk9PU1RfUFBfRk9SXzE3MywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTczLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc0LCBzKSBCT09TVF9QUF9JRihwKDE3NCwgcyksIEJPT1NUX1BQX0ZPUl8xNzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3NCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTc1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3NSwgcykgQk9PU1RfUFBfSUYocCgxNzUsIHMpLCBCT09TVF9QUF9GT1JfMTc1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3NShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3NiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzYsIHMpIEJPT1NUX1BQX0lGKHAoMTc2LCBzKSwgQk9PU1RfUFBfRk9SXzE3NiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTc2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxNzcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTc3LCBzKSBCT09TVF9QUF9JRihwKDE3NywgcyksIEJPT1NUX1BQX0ZPUl8xNzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE3NywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTc3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTc4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE3OCwgcykgQk9PU1RfUFBfSUYocCgxNzgsIHMpLCBCT09TVF9QUF9GT1JfMTc4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxNzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE3OChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE3OSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxNzksIHMpIEJPT1NUX1BQX0lGKHAoMTc5LCBzKSwgQk9PU1RfUFBfRk9SXzE3OSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTc5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xNzkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgwLCBzKSBCT09TVF9QUF9JRihwKDE4MCwgcyksIEJPT1NUX1BQX0ZPUl8xODAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTgxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4MSwgcykgQk9PU1RfUFBfSUYocCgxODEsIHMpLCBCT09TVF9QUF9GT1JfMTgxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxODEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4MShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODIsIHMpIEJPT1NUX1BQX0lGKHAoMTgyLCBzKSwgQk9PU1RfUFBfRk9SXzE4MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTgyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTgzLCBzKSBCT09TVF9QUF9JRihwKDE4MywgcyksIEJPT1NUX1BQX0ZPUl8xODMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTgzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTg0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4NCwgcykgQk9PU1RfUFBfSUYocCgxODQsIHMpLCBCT09TVF9QUF9GT1JfMTg0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxODQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODUsIHMpIEJPT1NUX1BQX0lGKHAoMTg1LCBzKSwgQk9PU1RfUFBfRk9SXzE4NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTg1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg2LCBzKSBCT09TVF9QUF9JRihwKDE4NiwgcyksIEJPT1NUX1BQX0ZPUl8xODYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTg3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE4NywgcykgQk9PU1RfUFBfSUYocCgxODcsIHMpLCBCT09TVF9QUF9GT1JfMTg3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxODcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE4NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE4OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxODgsIHMpIEJPT1NUX1BQX0lGKHAoMTg4LCBzKSwgQk9PU1RfUFBfRk9SXzE4OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTg4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xODgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxODksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTg5LCBzKSBCT09TVF9QUF9JRihwKDE4OSwgcyksIEJPT1NUX1BQX0ZPUl8xODksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE4OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTg5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTkwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5MCwgcykgQk9PU1RfUFBfSUYocCgxOTAsIHMpLCBCT09TVF9QUF9GT1JfMTkwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxOTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTEsIHMpIEJPT1NUX1BQX0lGKHAoMTkxLCBzKSwgQk9PU1RfUFBfRk9SXzE5MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTkxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTkyLCBzKSBCT09TVF9QUF9JRihwKDE5MiwgcyksIEJPT1NUX1BQX0ZPUl8xOTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTkyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTkzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5MywgcykgQk9PU1RfUFBfSUYocCgxOTMsIHMpLCBCT09TVF9QUF9GT1JfMTkzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxOTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTQsIHMpIEJPT1NUX1BQX0lGKHAoMTk0LCBzKSwgQk9PU1RfUFBfRk9SXzE5NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTk0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk1LCBzKSBCT09TVF9QUF9JRihwKDE5NSwgcyksIEJPT1NUX1BQX0ZPUl8xOTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTk2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5NiwgcykgQk9PU1RfUFBfSUYocCgxOTYsIHMpLCBCT09TVF9QUF9GT1JfMTk2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxOTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5NihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDE5NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgxOTcsIHMpIEJPT1NUX1BQX0lGKHAoMTk3LCBzKSwgQk9PU1RfUFBfRk9SXzE5NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMTk3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8xOTcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgxOTgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMTk4LCBzKSBCT09TVF9QUF9JRihwKDE5OCwgcyksIEJPT1NUX1BQX0ZPUl8xOTgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDE5OCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMTk4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMTk5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDE5OSwgcykgQk9PU1RfUFBfSUYocCgxOTksIHMpLCBCT09TVF9QUF9GT1JfMTk5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygxOTksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzE5OShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDAsIHMpIEJPT1NUX1BQX0lGKHAoMjAwLCBzKSwgQk9PU1RfUFBfRk9SXzIwMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjAwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjAxLCBzKSBCT09TVF9QUF9JRihwKDIwMSwgcyksIEJPT1NUX1BQX0ZPUl8yMDEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjAxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjAyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwMiwgcykgQk9PU1RfUFBfSUYocCgyMDIsIHMpLCBCT09TVF9QUF9GT1JfMjAyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMDIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwMihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDMsIHMpIEJPT1NUX1BQX0lGKHAoMjAzLCBzKSwgQk9PU1RfUFBfRk9SXzIwMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjAzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA0LCBzKSBCT09TVF9QUF9JRihwKDIwNCwgcyksIEJPT1NUX1BQX0ZPUl8yMDQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjA1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwNSwgcykgQk9PU1RfUFBfSUYocCgyMDUsIHMpLCBCT09TVF9QUF9GT1JfMjA1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMDUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwNShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDYsIHMpIEJPT1NUX1BQX0lGKHAoMjA2LCBzKSwgQk9PU1RfUFBfRk9SXzIwNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjA2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMDcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjA3LCBzKSBCT09TVF9QUF9JRihwKDIwNywgcyksIEJPT1NUX1BQX0ZPUl8yMDcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIwNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjA3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjA4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIwOCwgcykgQk9PU1RfUFBfSUYocCgyMDgsIHMpLCBCT09TVF9QUF9GT1JfMjA4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMDgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIwOChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIwOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMDksIHMpIEJPT1NUX1BQX0lGKHAoMjA5LCBzKSwgQk9PU1RfUFBfRk9SXzIwOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjA5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMDkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEwLCBzKSBCT09TVF9QUF9JRihwKDIxMCwgcyksIEJPT1NUX1BQX0ZPUl8yMTAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxMCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjExLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxMSwgcykgQk9PU1RfUFBfSUYocCgyMTEsIHMpLCBCT09TVF9QUF9GT1JfMjExLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMTEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxMShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxMiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTIsIHMpIEJPT1NUX1BQX0lGKHAoMjEyLCBzKSwgQk9PU1RfUFBfRk9SXzIxMiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjEyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjEzLCBzKSBCT09TVF9QUF9JRihwKDIxMywgcyksIEJPT1NUX1BQX0ZPUl8yMTMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxMywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjEzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjE0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxNCwgcykgQk9PU1RfUFBfSUYocCgyMTQsIHMpLCBCT09TVF9QUF9GT1JfMjE0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMTQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxNSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTUsIHMpIEJPT1NUX1BQX0lGKHAoMjE1LCBzKSwgQk9PU1RfUFBfRk9SXzIxNSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjE1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE2LCBzKSBCT09TVF9QUF9JRihwKDIxNiwgcyksIEJPT1NUX1BQX0ZPUl8yMTYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxNiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjE3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIxNywgcykgQk9PU1RfUFBfSUYocCgyMTcsIHMpLCBCT09TVF9QUF9GT1JfMjE3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMTcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIxNyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIxOCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMTgsIHMpIEJPT1NUX1BQX0lGKHAoMjE4LCBzKSwgQk9PU1RfUFBfRk9SXzIxOCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjE4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMTgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMTksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjE5LCBzKSBCT09TVF9QUF9JRihwKDIxOSwgcyksIEJPT1NUX1BQX0ZPUl8yMTksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIxOSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjE5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjIwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyMCwgcykgQk9PU1RfUFBfSUYocCgyMjAsIHMpLCBCT09TVF9QUF9GT1JfMjIwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMjAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyMSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjEsIHMpIEJPT1NUX1BQX0lGKHAoMjIxLCBzKSwgQk9PU1RfUFBfRk9SXzIyMSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjIxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjIyLCBzKSBCT09TVF9QUF9JRihwKDIyMiwgcyksIEJPT1NUX1BQX0ZPUl8yMjIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyMiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjIyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjIzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyMywgcykgQk9PU1RfUFBfSUYocCgyMjMsIHMpLCBCT09TVF9QUF9GT1JfMjIzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMjMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyMyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyNCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjQsIHMpIEJPT1NUX1BQX0lGKHAoMjI0LCBzKSwgQk9PU1RfUFBfRk9SXzIyNCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjI0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI1LCBzKSBCT09TVF9QUF9JRihwKDIyNSwgcyksIEJPT1NUX1BQX0ZPUl8yMjUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyNSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjI2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyNiwgcykgQk9PU1RfUFBfSUYocCgyMjYsIHMpLCBCT09TVF9QUF9GT1JfMjI2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMjYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyNihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIyNywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMjcsIHMpIEJPT1NUX1BQX0lGKHAoMjI3LCBzKSwgQk9PU1RfUFBfRk9SXzIyNywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjI3LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMjcocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMjgsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjI4LCBzKSBCT09TVF9QUF9JRihwKDIyOCwgcyksIEJPT1NUX1BQX0ZPUl8yMjgsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIyOCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjI4KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjI5LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIyOSwgcykgQk9PU1RfUFBfSUYocCgyMjksIHMpLCBCT09TVF9QUF9GT1JfMjI5LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMjksIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIyOShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzMCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzAsIHMpIEJPT1NUX1BQX0lGKHAoMjMwLCBzKSwgQk9PU1RfUFBfRk9SXzIzMCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjMwLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzAocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzEsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjMxLCBzKSBCT09TVF9QUF9JRihwKDIzMSwgcyksIEJPT1NUX1BQX0ZPUl8yMzEsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzMSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjMxKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjMyLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzMiwgcykgQk9PU1RfUFBfSUYocCgyMzIsIHMpLCBCT09TVF9QUF9GT1JfMjMyLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMzIsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzMihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzMywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzMsIHMpIEJPT1NUX1BQX0lGKHAoMjMzLCBzKSwgQk9PU1RfUFBfRk9SXzIzMywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjMzLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzMocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzQsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM0LCBzKSBCT09TVF9QUF9JRihwKDIzNCwgcyksIEJPT1NUX1BQX0ZPUl8yMzQsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzNCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM0KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjM1LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzNSwgcykgQk9PU1RfUFBfSUYocCgyMzUsIHMpLCBCT09TVF9QUF9GT1JfMjM1LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMzUsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzNShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzNiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzYsIHMpIEJPT1NUX1BQX0lGKHAoMjM2LCBzKSwgQk9PU1RfUFBfRk9SXzIzNiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjM2LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzYocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyMzcsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjM3LCBzKSBCT09TVF9QUF9JRihwKDIzNywgcyksIEJPT1NUX1BQX0ZPUl8yMzcsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDIzNywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjM3KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjM4LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDIzOCwgcykgQk9PU1RfUFBfSUYocCgyMzgsIHMpLCBCT09TVF9QUF9GT1JfMjM4LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyMzgsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzIzOChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDIzOSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyMzksIHMpIEJPT1NUX1BQX0lGKHAoMjM5LCBzKSwgQk9PU1RfUFBfRk9SXzIzOSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjM5LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yMzkocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDAsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQwLCBzKSBCT09TVF9QUF9JRihwKDI0MCwgcyksIEJPT1NUX1BQX0ZPUl8yNDAsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0MCwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQwKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjQxLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0MSwgcykgQk9PU1RfUFBfSUYocCgyNDEsIHMpLCBCT09TVF9QUF9GT1JfMjQxLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNDEsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0MShzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0MiwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDIsIHMpIEJPT1NUX1BQX0lGKHAoMjQyLCBzKSwgQk9PU1RfUFBfRk9SXzI0MiwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQyLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDIocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDMsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQzLCBzKSBCT09TVF9QUF9JRihwKDI0MywgcyksIEJPT1NUX1BQX0ZPUl8yNDMsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0MywgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQzKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjQ0LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0NCwgcykgQk9PU1RfUFBfSUYocCgyNDQsIHMpLCBCT09TVF9QUF9GT1JfMjQ0LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNDQsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0NSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDUsIHMpIEJPT1NUX1BQX0lGKHAoMjQ1LCBzKSwgQk9PU1RfUFBfRk9SXzI0NSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQ1LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDUocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDYsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ2LCBzKSBCT09TVF9QUF9JRihwKDI0NiwgcyksIEJPT1NUX1BQX0ZPUl8yNDYsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0NiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ2KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjQ3LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI0NywgcykgQk9PU1RfUFBfSUYocCgyNDcsIHMpLCBCT09TVF9QUF9GT1JfMjQ3LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNDcsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI0NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI0OCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNDgsIHMpIEJPT1NUX1BQX0lGKHAoMjQ4LCBzKSwgQk9PU1RfUFBfRk9SXzI0OCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjQ4LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNDgocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNDksIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjQ5LCBzKSBCT09TVF9QUF9JRihwKDI0OSwgcyksIEJPT1NUX1BQX0ZPUl8yNDksIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI0OSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjQ5KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjUwLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1MCwgcykgQk9PU1RfUFBfSUYocCgyNTAsIHMpLCBCT09TVF9QUF9GT1JfMjUwLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNTAsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MChzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1MSwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTEsIHMpIEJPT1NUX1BQX0lGKHAoMjUxLCBzKSwgQk9PU1RfUFBfRk9SXzI1MSwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjUxLCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTEocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNTIsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjUyLCBzKSBCT09TVF9QUF9JRihwKDI1MiwgcyksIEJPT1NUX1BQX0ZPUl8yNTIsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1MiwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjUyKHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjUzLCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1MywgcykgQk9PU1RfUFBfSUYocCgyNTMsIHMpLCBCT09TVF9QUF9GT1JfMjUzLCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNTMsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1MyhzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1NCwgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTQsIHMpIEJPT1NUX1BQX0lGKHAoMjU0LCBzKSwgQk9PU1RfUFBfRk9SXzI1NCwgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjU0LCBzKSwgcCwgbywgbSkKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl8yNTQocywgcCwgbywgbSkgQk9PU1RfUFBfSUYocCgyNTUsIHMpLCBtLCBCT09TVF9QUF9UVVBMRV9FQVRfMikoMjU1LCBzKSBCT09TVF9QUF9JRihwKDI1NSwgcyksIEJPT1NUX1BQX0ZPUl8yNTUsIEJPT1NUX1BQX1RVUExFX0VBVF80KShvKDI1NSwgcyksIHAsIG8sIG0pCisjIGRlZmluZSBCT09TVF9QUF9GT1JfMjU1KHMsIHAsIG8sIG0pIEJPT1NUX1BQX0lGKHAoMjU2LCBzKSwgbSwgQk9PU1RfUFBfVFVQTEVfRUFUXzIpKDI1NiwgcykgQk9PU1RfUFBfSUYocCgyNTYsIHMpLCBCT09TVF9QUF9GT1JfMjU2LCBCT09TVF9QUF9UVVBMRV9FQVRfNCkobygyNTYsIHMpLCBwLCBvLCBtKQorIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1NihzLCBwLCBvLCBtKSBCT09TVF9QUF9JRihwKDI1NywgcyksIG0sIEJPT1NUX1BQX1RVUExFX0VBVF8yKSgyNTcsIHMpIEJPT1NUX1BQX0lGKHAoMjU3LCBzKSwgQk9PU1RfUFBfRk9SXzI1NywgQk9PU1RfUFBfVFVQTEVfRUFUXzQpKG8oMjU3LCBzKSwgcCwgbywgbSkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fcGFyYW1zLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2VudW1fcGFyYW1zLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWEyMzY5Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bV9wYXJhbXMuaHBwCkBAIC0wLDAgKzEsNDEgQEAKKyMgLyogQ29weXJpZ2h0IChDKSAyMDAxCisjICAqIEhvdXNlbWFycXVlIE95CisjICAqIGh0dHA6Ly93d3cuaG91c2VtYXJxdWUuY29tCisjICAqCisjICAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqLworIworIyAvKiBSZXZpc2VkIGJ5IFBhdWwgTWVuc29uaWRlcyAoMjAwMikgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1JFUEVUSVRJT05fRU5VTV9QQVJBTVNfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfUkVQRVRJVElPTl9FTlVNX1BBUkFNU19IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvcHVuY3R1YXRpb24vY29tbWFfaWYuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXQuaHBwPgorIworIyAvKiBCT09TVF9QUF9FTlVNX1BBUkFNUyAqLworIworIyBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fUEFSQU1TKGNvdW50LCBwYXJhbSkgQk9PU1RfUFBfUkVQRUFUKGNvdW50LCBCT09TVF9QUF9FTlVNX1BBUkFNU19NLCBwYXJhbSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9QQVJBTVMoY291bnQsIHBhcmFtKSBCT09TVF9QUF9FTlVNX1BBUkFNU19JKGNvdW50LCBwYXJhbSkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fUEFSQU1TX0koY291bnQsIHBhcmFtKSBCT09TVF9QUF9SRVBFQVQoY291bnQsIEJPT1NUX1BQX0VOVU1fUEFSQU1TX00sIHBhcmFtKQorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfRU5VTV9QQVJBTVNfTSh6LCBuLCBwYXJhbSkgQk9PU1RfUFBfQ09NTUFfSUYobikgcGFyYW0gIyMgbgorIworIyAvKiBCT09TVF9QUF9FTlVNX1BBUkFNU19aICovCisjCisjIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9QQVJBTVNfWih6LCBjb3VudCwgcGFyYW0pIEJPT1NUX1BQX1JFUEVBVF8gIyMgeihjb3VudCwgQk9PU1RfUFBfRU5VTV9QQVJBTVNfTSwgcGFyYW0pCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0VOVU1fUEFSQU1TX1ooeiwgY291bnQsIHBhcmFtKSBCT09TVF9QUF9FTlVNX1BBUkFNU19aX0koeiwgY291bnQsIHBhcmFtKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfRU5VTV9QQVJBTVNfWl9JKHosIGNvdW50LCBwYXJhbSkgQk9PU1RfUFBfUkVQRUFUXyAjIyB6KGNvdW50LCBCT09TVF9QUF9FTlVNX1BBUkFNU19NLCBwYXJhbSkKKyMgZW5kaWYKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2Zvci5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9mb3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNjM3NTMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9mb3IuaHBwCkBAIC0wLDAgKzEsMzA2IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFVElUSU9OX0ZPUl9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFVElUSU9OX0ZPUl9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9kZWJ1Zy9lcnJvci5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9kZXRhaWwvYXV0b19yZWMuaHBwPgorIworIyAvKiBCT09TVF9QUF9GT1IgKi8KKyMKKyMgaWYgMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfRk9SKHN0YXRlLCBwcmVkLCBvcCwgbWFjcm8pCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9GT1IgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0ZPUl8sIEJPT1NUX1BQX0FVVE9fUkVDKEJPT1NUX1BQX0ZPUl9QLCAyNTYpKQorIworIyBkZWZpbmUgQk9PU1RfUFBfRk9SX1AobikgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX0ZPUl9DSEVDS18sIEJPT1NUX1BQX0ZPUl8gIyMgbigxLCBCT09TVF9QUF9GT1JfU1JfUCwgQk9PU1RfUFBfRk9SX1NSX08sIEJPT1NUX1BQX0ZPUl9TUl9NKSkKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9TUl9QKHIsIHMpIHMKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9TUl9PKHIsIHMpIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9TUl9NKHIsIHMpIEJPT1NUX1BQX05JTAorIworIyBpZiBCT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19FREcoKQorIyAgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9kZXRhaWwvZWRnL2Zvci5ocHA+CisjIGVsaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVNWQygpCisjICAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9tc3ZjL2Zvci5ocHA+CisjIGVsaWYgQk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRE1DKCkKKyMgICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZGV0YWlsL2RtYy9mb3IuaHBwPgorIyBlbHNlCisjICAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL2RldGFpbC9mb3IuaHBwPgorIyBlbmRpZgorIworIyBkZWZpbmUgQk9PU1RfUFBfRk9SXzI1NyhzLCBwLCBvLCBtKSBCT09TVF9QUF9FUlJPUigweDAwMDIpCisjCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfTklMIDEKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8zKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl82KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNyhzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl85KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xMShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzEyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzE1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8xNyhzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzE4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzIxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yMyhzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzI0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yNihzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzI3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8yOShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzMwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMzEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8zMihzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzMzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMzQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8zNShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzM2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMzcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl8zOChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzM5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNDAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl80MShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzQyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNDMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl80NChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzQ1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNDYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl80NyhzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzQ4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNDkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl81MChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzUxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNTIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl81MyhzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzU0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNTUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl81NihzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzU3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNTgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl81OShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzYwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNjEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl82MihzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzYzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNjQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl82NShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzY2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNjcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl82OChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzY5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNzAocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl83MShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzcyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNzMocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl83NChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzc1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNzYocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl83NyhzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzc4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfNzkocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl84MChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzgxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfODIocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl84MyhzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzg0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfODUocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl84NihzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzg3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfODgocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl84OShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzkwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfOTEocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl85MihzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzkzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfOTQocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl85NShzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzk2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfOTcocywgcCwgbywgbSkgMAorIyBkZWZpbmUgQk9PU1RfUFBfRk9SX0NIRUNLX0JPT1NUX1BQX0ZPUl85OChzLCBwLCBvLCBtKSAwCisjIGRlZmluZSBCT09TVF9QUF9GT1JfQ0hFQ0tfQk9PU1RfUFBfRk9SXzk5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTAwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTAxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTAyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTAzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTA0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTA1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTA2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTA3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTA4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTA5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTEwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTExKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTEyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTEzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTE0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTE1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTE2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTE3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTE4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTE5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTIwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTIxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTIyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTIzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTI0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTI1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTI2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTI3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTI4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTI5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTMwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTMxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTMyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTMzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTM0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTM1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTM2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTM3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTM4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTM5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTQwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTQxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTQyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTQzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTQ0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTQ1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTQ2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTQ3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTQ4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTQ5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTUwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTUxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTUyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTUzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTU0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTU1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTU2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTU3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTU4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTU5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTYwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTYxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTYyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTYzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTY0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTY1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTY2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTY3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTY4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTY5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTcwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTcxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTcyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTczKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTc0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTc1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTc2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTc3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTc4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTc5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTgwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTgxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTgyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTgzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTg0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTg1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTg2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTg3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTg4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTg5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTkwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTkxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTkyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTkzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTk0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTk1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTk2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTk3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTk4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMTk5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjAwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjAxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjAyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjAzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjA0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjA1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjA2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjA3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjA4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjA5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjEwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjExKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjEyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjEzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjE0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjE1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjE2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjE3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjE4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjE5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjIwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjIxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjIyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjIzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjI0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjI1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjI2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjI3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjI4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjI5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjMwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjMxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjMyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjMzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjM0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjM1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjM2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjM3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjM4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjM5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjQwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjQxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjQyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjQzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjQ0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjQ1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjQ2KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjQ3KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjQ4KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjQ5KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjUwKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjUxKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjUyKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjUzKHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjU0KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjU1KHMsIHAsIG8sIG0pIDAKKyMgZGVmaW5lIEJPT1NUX1BQX0ZPUl9DSEVDS19CT09TVF9QUF9GT1JfMjU2KHMsIHAsIG8sIG0pIDAKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9yZXBldGl0aW9uL3JlcGVhdC5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxNzI3MzgKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvcmVwZXRpdGlvbi9yZXBlYXQuaHBwCkBAIC0wLDAgKzEsODI1IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDIpICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFVElUSU9OX1JFUEVBVF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9SRVBFVElUSU9OX1JFUEVBVF9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2RlYnVnL2Vycm9yLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2RldGFpbC9hdXRvX3JlYy5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lYXQuaHBwPgorIworIyAvKiBCT09TVF9QUF9SRVBFQVQgKi8KKyMKKyMgaWYgMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUKGNvdW50LCBtYWNybywgZGF0YSkKKyMgZW5kaWYKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVCBCT09TVF9QUF9DQVQoQk9PU1RfUFBfUkVQRUFUXywgQk9PU1RfUFBfQVVUT19SRUMoQk9PU1RfUFBfUkVQRUFUX1AsIDQpKQorIworIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUX1AobikgQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1JFUEVBVF9DSEVDS18sIEJPT1NUX1BQX1JFUEVBVF8gIyMgbigxLCBCT09TVF9QUF9OSUwgQk9PU1RfUFBfVFVQTEVfRUFUXzMsIEJPT1NUX1BQX05JTCkpCisjCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfQ0hFQ0tfQk9PU1RfUFBfTklMIDEKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF9DSEVDS19CT09TVF9QUF9SRVBFQVRfMShjLCBtLCBkKSAwCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfQ0hFQ0tfQk9PU1RfUFBfUkVQRUFUXzIoYywgbSwgZCkgMAorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUX0NIRUNLX0JPT1NUX1BQX1JFUEVBVF8zKGMsIG0sIGQpIDAKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xKGMsIG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xX0koYywgbSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yKGMsIG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yX0koYywgbSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zKGMsIG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zX0koYywgbSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF80KGMsIG0sIGQpIEJPT1NUX1BQX0VSUk9SKDB4MDAwMykKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xX0koYywgbSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfICMjIGMobSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yX0koYywgbSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfICMjIGMobSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zX0koYywgbSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfICMjIGMobSwgZCkKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xU1QgQk9PU1RfUFBfUkVQRUFUXzEKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yTkQgQk9PU1RfUFBfUkVQRUFUXzIKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zUkQgQk9PU1RfUFBfUkVQRUFUXzMKKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzAobSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEobSwgZCkgbSgyLCAwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xKG0sIGQpIG0oMiwgMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMihtLCBkKSBtKDIsIDIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV80KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzMobSwgZCkgbSgyLCAzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV80KG0sIGQpIG0oMiwgNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNShtLCBkKSBtKDIsIDUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV83KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzYobSwgZCkgbSgyLCA2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV83KG0sIGQpIG0oMiwgNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfOChtLCBkKSBtKDIsIDgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV85KG0sIGQpIG0oMiwgOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzExKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEwKG0sIGQpIG0oMiwgMTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMShtLCBkKSBtKDIsIDExLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTIobSwgZCkgbSgyLCAxMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEzKG0sIGQpIG0oMiwgMTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNChtLCBkKSBtKDIsIDE0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTUobSwgZCkgbSgyLCAxNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE2KG0sIGQpIG0oMiwgMTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNyhtLCBkKSBtKDIsIDE3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTgobSwgZCkgbSgyLCAxOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE5KG0sIGQpIG0oMiwgMTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMChtLCBkKSBtKDIsIDIwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjEobSwgZCkgbSgyLCAyMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIyKG0sIGQpIG0oMiwgMjIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMyhtLCBkKSBtKDIsIDIzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjQobSwgZCkgbSgyLCAyNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI1KG0sIGQpIG0oMiwgMjUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNihtLCBkKSBtKDIsIDI2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjcobSwgZCkgbSgyLCAyNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI4KG0sIGQpIG0oMiwgMjgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8zMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yOShtLCBkKSBtKDIsIDI5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMzEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMzAobSwgZCkgbSgyLCAzMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzMyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzMxKG0sIGQpIG0oMiwgMzEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8zMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8zMihtLCBkKSBtKDIsIDMyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMzQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMzMobSwgZCkgbSgyLCAzMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzM1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzM0KG0sIGQpIG0oMiwgMzQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8zNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8zNShtLCBkKSBtKDIsIDM1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMzcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMzYobSwgZCkgbSgyLCAzNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzM4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzM3KG0sIGQpIG0oMiwgMzcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8zOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8zOChtLCBkKSBtKDIsIDM4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNDAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMzkobSwgZCkgbSgyLCAzOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzQxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzQwKG0sIGQpIG0oMiwgNDAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV80MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV80MShtLCBkKSBtKDIsIDQxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNDMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNDIobSwgZCkgbSgyLCA0MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzQ0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzQzKG0sIGQpIG0oMiwgNDMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV80NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV80NChtLCBkKSBtKDIsIDQ0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNDYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNDUobSwgZCkgbSgyLCA0NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzQ3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzQ2KG0sIGQpIG0oMiwgNDYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV80OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV80NyhtLCBkKSBtKDIsIDQ3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNDkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNDgobSwgZCkgbSgyLCA0OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzUwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzQ5KG0sIGQpIG0oMiwgNDksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV81MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV81MChtLCBkKSBtKDIsIDUwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNTEobSwgZCkgbSgyLCA1MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzUzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzUyKG0sIGQpIG0oMiwgNTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV81NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV81MyhtLCBkKSBtKDIsIDUzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNTQobSwgZCkgbSgyLCA1NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzU2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzU1KG0sIGQpIG0oMiwgNTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV81NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV81NihtLCBkKSBtKDIsIDU2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNTcobSwgZCkgbSgyLCA1NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzU5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzU4KG0sIGQpIG0oMiwgNTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV82MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV81OShtLCBkKSBtKDIsIDU5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNjEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNjAobSwgZCkgbSgyLCA2MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzYyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzYxKG0sIGQpIG0oMiwgNjEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV82MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV82MihtLCBkKSBtKDIsIDYyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNjQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNjMobSwgZCkgbSgyLCA2MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzY1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzY0KG0sIGQpIG0oMiwgNjQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV82NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV82NShtLCBkKSBtKDIsIDY1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNjcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNjYobSwgZCkgbSgyLCA2NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzY4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzY3KG0sIGQpIG0oMiwgNjcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV82OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV82OChtLCBkKSBtKDIsIDY4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNzAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNjkobSwgZCkgbSgyLCA2OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzcxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzcwKG0sIGQpIG0oMiwgNzAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV83MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV83MShtLCBkKSBtKDIsIDcxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNzMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNzIobSwgZCkgbSgyLCA3MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzc0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzczKG0sIGQpIG0oMiwgNzMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV83NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV83NChtLCBkKSBtKDIsIDc0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNzYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNzUobSwgZCkgbSgyLCA3NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzc3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzc2KG0sIGQpIG0oMiwgNzYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV83OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV83NyhtLCBkKSBtKDIsIDc3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfNzkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfNzgobSwgZCkgbSgyLCA3OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzgwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzc5KG0sIGQpIG0oMiwgNzksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV84MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV84MChtLCBkKSBtKDIsIDgwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfODIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfODEobSwgZCkgbSgyLCA4MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzgzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzgyKG0sIGQpIG0oMiwgODIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV84NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV84MyhtLCBkKSBtKDIsIDgzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfODUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfODQobSwgZCkgbSgyLCA4NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzg2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzg1KG0sIGQpIG0oMiwgODUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV84NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV84NihtLCBkKSBtKDIsIDg2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfODgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfODcobSwgZCkgbSgyLCA4NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzg5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzg4KG0sIGQpIG0oMiwgODgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV85MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV84OShtLCBkKSBtKDIsIDg5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfOTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfOTAobSwgZCkgbSgyLCA5MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzkyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzkxKG0sIGQpIG0oMiwgOTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV85MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV85MihtLCBkKSBtKDIsIDkyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfOTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfOTMobSwgZCkgbSgyLCA5MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzk1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzk0KG0sIGQpIG0oMiwgOTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV85NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV85NShtLCBkKSBtKDIsIDk1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfOTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfOTYobSwgZCkgbSgyLCA5NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzk4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzk3KG0sIGQpIG0oMiwgOTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV85OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV85OChtLCBkKSBtKDIsIDk4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTAwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzk5KG0sIGQpIG0oMiwgOTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMDEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTAwKG0sIGQpIG0oMiwgMTAwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTAyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEwMShtLCBkKSBtKDIsIDEwMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEwMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMDIobSwgZCkgbSgyLCAxMDIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMDQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTAzKG0sIGQpIG0oMiwgMTAzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTA1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEwNChtLCBkKSBtKDIsIDEwNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEwNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMDUobSwgZCkgbSgyLCAxMDUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMDcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTA2KG0sIGQpIG0oMiwgMTA2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTA4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEwNyhtLCBkKSBtKDIsIDEwNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEwOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMDgobSwgZCkgbSgyLCAxMDgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTA5KG0sIGQpIG0oMiwgMTA5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTExKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzExMChtLCBkKSBtKDIsIDExMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzExMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMTEobSwgZCkgbSgyLCAxMTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTEyKG0sIGQpIG0oMiwgMTEyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTE0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzExMyhtLCBkKSBtKDIsIDExMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzExNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMTQobSwgZCkgbSgyLCAxMTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTE1KG0sIGQpIG0oMiwgMTE1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTE3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzExNihtLCBkKSBtKDIsIDExNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzExOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMTcobSwgZCkgbSgyLCAxMTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTE4KG0sIGQpIG0oMiwgMTE4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTIwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzExOShtLCBkKSBtKDIsIDExOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEyMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMjAobSwgZCkgbSgyLCAxMjAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMjIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTIxKG0sIGQpIG0oMiwgMTIxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTIzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEyMihtLCBkKSBtKDIsIDEyMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEyNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMjMobSwgZCkgbSgyLCAxMjMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMjUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTI0KG0sIGQpIG0oMiwgMTI0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTI2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEyNShtLCBkKSBtKDIsIDEyNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEyNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMjYobSwgZCkgbSgyLCAxMjYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMjgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTI3KG0sIGQpIG0oMiwgMTI3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTI5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEyOChtLCBkKSBtKDIsIDEyOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEzMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMjkobSwgZCkgbSgyLCAxMjksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMzEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTMwKG0sIGQpIG0oMiwgMTMwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTMyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEzMShtLCBkKSBtKDIsIDEzMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEzMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMzIobSwgZCkgbSgyLCAxMzIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMzQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTMzKG0sIGQpIG0oMiwgMTMzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTM1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEzNChtLCBkKSBtKDIsIDEzNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEzNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMzUobSwgZCkgbSgyLCAxMzUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xMzcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTM2KG0sIGQpIG0oMiwgMTM2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTM4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzEzNyhtLCBkKSBtKDIsIDEzNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzEzOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xMzgobSwgZCkgbSgyLCAxMzgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNDAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTM5KG0sIGQpIG0oMiwgMTM5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTQxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE0MChtLCBkKSBtKDIsIDE0MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE0MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNDEobSwgZCkgbSgyLCAxNDEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNDMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTQyKG0sIGQpIG0oMiwgMTQyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTQ0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE0MyhtLCBkKSBtKDIsIDE0MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE0NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNDQobSwgZCkgbSgyLCAxNDQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNDYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTQ1KG0sIGQpIG0oMiwgMTQ1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTQ3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE0NihtLCBkKSBtKDIsIDE0NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE0OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNDcobSwgZCkgbSgyLCAxNDcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNDkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTQ4KG0sIGQpIG0oMiwgMTQ4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTUwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE0OShtLCBkKSBtKDIsIDE0OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE1MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNTAobSwgZCkgbSgyLCAxNTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTUxKG0sIGQpIG0oMiwgMTUxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTUzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE1MihtLCBkKSBtKDIsIDE1MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE1NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNTMobSwgZCkgbSgyLCAxNTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTU0KG0sIGQpIG0oMiwgMTU0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTU2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE1NShtLCBkKSBtKDIsIDE1NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE1NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNTYobSwgZCkgbSgyLCAxNTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTU3KG0sIGQpIG0oMiwgMTU3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTU5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE1OChtLCBkKSBtKDIsIDE1OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE2MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNTkobSwgZCkgbSgyLCAxNTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNjEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTYwKG0sIGQpIG0oMiwgMTYwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTYyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE2MShtLCBkKSBtKDIsIDE2MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE2MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNjIobSwgZCkgbSgyLCAxNjIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNjQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTYzKG0sIGQpIG0oMiwgMTYzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTY1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE2NChtLCBkKSBtKDIsIDE2NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE2NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNjUobSwgZCkgbSgyLCAxNjUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNjcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTY2KG0sIGQpIG0oMiwgMTY2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTY4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE2NyhtLCBkKSBtKDIsIDE2NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE2OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNjgobSwgZCkgbSgyLCAxNjgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNzAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTY5KG0sIGQpIG0oMiwgMTY5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTcxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE3MChtLCBkKSBtKDIsIDE3MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE3MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNzEobSwgZCkgbSgyLCAxNzEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNzMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTcyKG0sIGQpIG0oMiwgMTcyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTc0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE3MyhtLCBkKSBtKDIsIDE3MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE3NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNzQobSwgZCkgbSgyLCAxNzQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNzYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTc1KG0sIGQpIG0oMiwgMTc1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTc3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE3NihtLCBkKSBtKDIsIDE3NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE3OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xNzcobSwgZCkgbSgyLCAxNzcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xNzkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTc4KG0sIGQpIG0oMiwgMTc4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTgwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE3OShtLCBkKSBtKDIsIDE3OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE4MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xODAobSwgZCkgbSgyLCAxODAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xODIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTgxKG0sIGQpIG0oMiwgMTgxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTgzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE4MihtLCBkKSBtKDIsIDE4MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE4NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xODMobSwgZCkgbSgyLCAxODMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xODUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTg0KG0sIGQpIG0oMiwgMTg0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTg2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE4NShtLCBkKSBtKDIsIDE4NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE4NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xODYobSwgZCkgbSgyLCAxODYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xODgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTg3KG0sIGQpIG0oMiwgMTg3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTg5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE4OChtLCBkKSBtKDIsIDE4OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE5MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xODkobSwgZCkgbSgyLCAxODksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xOTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTkwKG0sIGQpIG0oMiwgMTkwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTkyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE5MShtLCBkKSBtKDIsIDE5MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE5MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xOTIobSwgZCkgbSgyLCAxOTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xOTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTkzKG0sIGQpIG0oMiwgMTkzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTk1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE5NChtLCBkKSBtKDIsIDE5NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE5NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xOTUobSwgZCkgbSgyLCAxOTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8xOTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTk2KG0sIGQpIG0oMiwgMTk2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMTk4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzE5NyhtLCBkKSBtKDIsIDE5NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzE5OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8xOTgobSwgZCkgbSgyLCAxOTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMDAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMTk5KG0sIGQpIG0oMiwgMTk5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjAxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIwMChtLCBkKSBtKDIsIDIwMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIwMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMDEobSwgZCkgbSgyLCAyMDEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMDMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjAyKG0sIGQpIG0oMiwgMjAyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjA0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIwMyhtLCBkKSBtKDIsIDIwMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIwNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMDQobSwgZCkgbSgyLCAyMDQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMDYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjA1KG0sIGQpIG0oMiwgMjA1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjA3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIwNihtLCBkKSBtKDIsIDIwNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIwOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMDcobSwgZCkgbSgyLCAyMDcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMDkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjA4KG0sIGQpIG0oMiwgMjA4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjEwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIwOShtLCBkKSBtKDIsIDIwOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIxMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMTAobSwgZCkgbSgyLCAyMTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjExKG0sIGQpIG0oMiwgMjExLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjEzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIxMihtLCBkKSBtKDIsIDIxMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIxNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMTMobSwgZCkgbSgyLCAyMTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjE0KG0sIGQpIG0oMiwgMjE0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjE2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIxNShtLCBkKSBtKDIsIDIxNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIxNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMTYobSwgZCkgbSgyLCAyMTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjE3KG0sIGQpIG0oMiwgMjE3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjE5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIxOChtLCBkKSBtKDIsIDIxOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIyMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMTkobSwgZCkgbSgyLCAyMTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMjEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjIwKG0sIGQpIG0oMiwgMjIwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjIyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIyMShtLCBkKSBtKDIsIDIyMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIyMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMjIobSwgZCkgbSgyLCAyMjIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMjQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjIzKG0sIGQpIG0oMiwgMjIzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjI1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIyNChtLCBkKSBtKDIsIDIyNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIyNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMjUobSwgZCkgbSgyLCAyMjUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMjcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjI2KG0sIGQpIG0oMiwgMjI2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjI4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIyNyhtLCBkKSBtKDIsIDIyNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIyOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMjgobSwgZCkgbSgyLCAyMjgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMzAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjI5KG0sIGQpIG0oMiwgMjI5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjMxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIzMChtLCBkKSBtKDIsIDIzMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIzMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMzEobSwgZCkgbSgyLCAyMzEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMzMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjMyKG0sIGQpIG0oMiwgMjMyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjM0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIzMyhtLCBkKSBtKDIsIDIzMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIzNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMzQobSwgZCkgbSgyLCAyMzQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMzYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjM1KG0sIGQpIG0oMiwgMjM1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjM3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIzNihtLCBkKSBtKDIsIDIzNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzIzOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yMzcobSwgZCkgbSgyLCAyMzcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yMzkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjM4KG0sIGQpIG0oMiwgMjM4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjQwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzIzOShtLCBkKSBtKDIsIDIzOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI0MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNDAobSwgZCkgbSgyLCAyNDAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNDIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjQxKG0sIGQpIG0oMiwgMjQxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjQzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI0MihtLCBkKSBtKDIsIDI0MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI0NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNDMobSwgZCkgbSgyLCAyNDMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNDUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjQ0KG0sIGQpIG0oMiwgMjQ0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjQ2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI0NShtLCBkKSBtKDIsIDI0NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI0NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNDYobSwgZCkgbSgyLCAyNDYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNDgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjQ3KG0sIGQpIG0oMiwgMjQ3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjQ5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI0OChtLCBkKSBtKDIsIDI0OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI1MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNDkobSwgZCkgbSgyLCAyNDksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjUwKG0sIGQpIG0oMiwgMjUwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjUyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI1MShtLCBkKSBtKDIsIDI1MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI1MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNTIobSwgZCkgbSgyLCAyNTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMV8yNTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzFfMjUzKG0sIGQpIG0oMiwgMjUzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzFfMjU1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8xXzI1NChtLCBkKSBtKDIsIDI1NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8xXzI1NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMV8yNTUobSwgZCkgbSgyLCAyNTUsIGQpCisjCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8wKG0sIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xKG0sIGQpIG0oMywgMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMShtLCBkKSBtKDMsIDEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8zKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIobSwgZCkgbSgzLCAyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8zKG0sIGQpIG0oMywgMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNChtLCBkKSBtKDMsIDQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl82KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzUobSwgZCkgbSgzLCA1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl82KG0sIGQpIG0oMywgNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNyhtLCBkKSBtKDMsIDcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl85KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzgobSwgZCkgbSgzLCA4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfOShtLCBkKSBtKDMsIDksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMChtLCBkKSBtKDMsIDEwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTEobSwgZCkgbSgzLCAxMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEyKG0sIGQpIG0oMywgMTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMyhtLCBkKSBtKDMsIDEzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTQobSwgZCkgbSgzLCAxNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE1KG0sIGQpIG0oMywgMTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNihtLCBkKSBtKDMsIDE2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTcobSwgZCkgbSgzLCAxNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE4KG0sIGQpIG0oMywgMTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xOShtLCBkKSBtKDMsIDE5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjAobSwgZCkgbSgzLCAyMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIxKG0sIGQpIG0oMywgMjEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMihtLCBkKSBtKDMsIDIyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjMobSwgZCkgbSgzLCAyMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI0KG0sIGQpIG0oMywgMjQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yNShtLCBkKSBtKDMsIDI1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjYobSwgZCkgbSgzLCAyNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI3KG0sIGQpIG0oMywgMjcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yOChtLCBkKSBtKDMsIDI4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMzAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjkobSwgZCkgbSgzLCAyOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzMxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzMwKG0sIGQpIG0oMywgMzAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8zMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8zMShtLCBkKSBtKDMsIDMxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMzMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMzIobSwgZCkgbSgzLCAzMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzM0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzMzKG0sIGQpIG0oMywgMzMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8zNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8zNChtLCBkKSBtKDMsIDM0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMzYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMzUobSwgZCkgbSgzLCAzNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzM3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzM2KG0sIGQpIG0oMywgMzYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8zOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8zNyhtLCBkKSBtKDMsIDM3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMzkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMzgobSwgZCkgbSgzLCAzOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzQwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzM5KG0sIGQpIG0oMywgMzksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl80MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl80MChtLCBkKSBtKDMsIDQwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNDIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNDEobSwgZCkgbSgzLCA0MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzQzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzQyKG0sIGQpIG0oMywgNDIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl80NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl80MyhtLCBkKSBtKDMsIDQzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNDUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNDQobSwgZCkgbSgzLCA0NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzQ2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzQ1KG0sIGQpIG0oMywgNDUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl80NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl80NihtLCBkKSBtKDMsIDQ2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNDgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNDcobSwgZCkgbSgzLCA0NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzQ5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzQ4KG0sIGQpIG0oMywgNDgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl81MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl80OShtLCBkKSBtKDMsIDQ5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNTAobSwgZCkgbSgzLCA1MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzUyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzUxKG0sIGQpIG0oMywgNTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl81MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl81MihtLCBkKSBtKDMsIDUyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNTMobSwgZCkgbSgzLCA1MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzU1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzU0KG0sIGQpIG0oMywgNTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl81NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl81NShtLCBkKSBtKDMsIDU1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNTYobSwgZCkgbSgzLCA1NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzU4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzU3KG0sIGQpIG0oMywgNTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl81OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl81OChtLCBkKSBtKDMsIDU4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNjAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNTkobSwgZCkgbSgzLCA1OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzYxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzYwKG0sIGQpIG0oMywgNjAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl82MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl82MShtLCBkKSBtKDMsIDYxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNjMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNjIobSwgZCkgbSgzLCA2MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzY0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzYzKG0sIGQpIG0oMywgNjMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl82NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl82NChtLCBkKSBtKDMsIDY0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNjYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNjUobSwgZCkgbSgzLCA2NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzY3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzY2KG0sIGQpIG0oMywgNjYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl82OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl82NyhtLCBkKSBtKDMsIDY3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNjkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNjgobSwgZCkgbSgzLCA2OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzcwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzY5KG0sIGQpIG0oMywgNjksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl83MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl83MChtLCBkKSBtKDMsIDcwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNzIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNzEobSwgZCkgbSgzLCA3MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzczKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzcyKG0sIGQpIG0oMywgNzIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl83NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl83MyhtLCBkKSBtKDMsIDczLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNzUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNzQobSwgZCkgbSgzLCA3NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzc2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzc1KG0sIGQpIG0oMywgNzUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl83NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl83NihtLCBkKSBtKDMsIDc2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfNzgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfNzcobSwgZCkgbSgzLCA3NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzc5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzc4KG0sIGQpIG0oMywgNzgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl84MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl83OShtLCBkKSBtKDMsIDc5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfODEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfODAobSwgZCkgbSgzLCA4MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzgyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzgxKG0sIGQpIG0oMywgODEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl84MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl84MihtLCBkKSBtKDMsIDgyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfODQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfODMobSwgZCkgbSgzLCA4MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzg1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzg0KG0sIGQpIG0oMywgODQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl84NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl84NShtLCBkKSBtKDMsIDg1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfODcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfODYobSwgZCkgbSgzLCA4NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzg4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzg3KG0sIGQpIG0oMywgODcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl84OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl84OChtLCBkKSBtKDMsIDg4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfOTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfODkobSwgZCkgbSgzLCA4OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzkxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzkwKG0sIGQpIG0oMywgOTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl85MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl85MShtLCBkKSBtKDMsIDkxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfOTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfOTIobSwgZCkgbSgzLCA5MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzk0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzkzKG0sIGQpIG0oMywgOTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl85NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl85NChtLCBkKSBtKDMsIDk0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfOTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfOTUobSwgZCkgbSgzLCA5NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzk3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzk2KG0sIGQpIG0oMywgOTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl85OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl85NyhtLCBkKSBtKDMsIDk3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfOTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfOTgobSwgZCkgbSgzLCA5OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEwMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl85OShtLCBkKSBtKDMsIDk5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTAxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEwMChtLCBkKSBtKDMsIDEwMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEwMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMDEobSwgZCkgbSgzLCAxMDEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMDMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTAyKG0sIGQpIG0oMywgMTAyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTA0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEwMyhtLCBkKSBtKDMsIDEwMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEwNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMDQobSwgZCkgbSgzLCAxMDQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMDYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTA1KG0sIGQpIG0oMywgMTA1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTA3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEwNihtLCBkKSBtKDMsIDEwNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEwOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMDcobSwgZCkgbSgzLCAxMDcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMDkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTA4KG0sIGQpIG0oMywgMTA4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTEwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEwOShtLCBkKSBtKDMsIDEwOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzExMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMTAobSwgZCkgbSgzLCAxMTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTExKG0sIGQpIG0oMywgMTExLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTEzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzExMihtLCBkKSBtKDMsIDExMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzExNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMTMobSwgZCkgbSgzLCAxMTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTE0KG0sIGQpIG0oMywgMTE0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTE2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzExNShtLCBkKSBtKDMsIDExNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzExNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMTYobSwgZCkgbSgzLCAxMTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTE3KG0sIGQpIG0oMywgMTE3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTE5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzExOChtLCBkKSBtKDMsIDExOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEyMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMTkobSwgZCkgbSgzLCAxMTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMjEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTIwKG0sIGQpIG0oMywgMTIwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTIyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEyMShtLCBkKSBtKDMsIDEyMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEyMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMjIobSwgZCkgbSgzLCAxMjIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMjQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTIzKG0sIGQpIG0oMywgMTIzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTI1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEyNChtLCBkKSBtKDMsIDEyNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEyNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMjUobSwgZCkgbSgzLCAxMjUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMjcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTI2KG0sIGQpIG0oMywgMTI2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTI4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEyNyhtLCBkKSBtKDMsIDEyNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEyOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMjgobSwgZCkgbSgzLCAxMjgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMzAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTI5KG0sIGQpIG0oMywgMTI5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTMxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEzMChtLCBkKSBtKDMsIDEzMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEzMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMzEobSwgZCkgbSgzLCAxMzEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMzMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTMyKG0sIGQpIG0oMywgMTMyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTM0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEzMyhtLCBkKSBtKDMsIDEzMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEzNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMzQobSwgZCkgbSgzLCAxMzQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMzYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTM1KG0sIGQpIG0oMywgMTM1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTM3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEzNihtLCBkKSBtKDMsIDEzNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzEzOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xMzcobSwgZCkgbSgzLCAxMzcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xMzkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTM4KG0sIGQpIG0oMywgMTM4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTQwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzEzOShtLCBkKSBtKDMsIDEzOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE0MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNDAobSwgZCkgbSgzLCAxNDAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNDIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTQxKG0sIGQpIG0oMywgMTQxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTQzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE0MihtLCBkKSBtKDMsIDE0MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE0NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNDMobSwgZCkgbSgzLCAxNDMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNDUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTQ0KG0sIGQpIG0oMywgMTQ0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTQ2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE0NShtLCBkKSBtKDMsIDE0NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE0NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNDYobSwgZCkgbSgzLCAxNDYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNDgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTQ3KG0sIGQpIG0oMywgMTQ3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTQ5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE0OChtLCBkKSBtKDMsIDE0OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE1MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNDkobSwgZCkgbSgzLCAxNDksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTUwKG0sIGQpIG0oMywgMTUwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTUyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE1MShtLCBkKSBtKDMsIDE1MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE1MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNTIobSwgZCkgbSgzLCAxNTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTUzKG0sIGQpIG0oMywgMTUzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTU1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE1NChtLCBkKSBtKDMsIDE1NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE1NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNTUobSwgZCkgbSgzLCAxNTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTU2KG0sIGQpIG0oMywgMTU2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTU4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE1NyhtLCBkKSBtKDMsIDE1NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE1OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNTgobSwgZCkgbSgzLCAxNTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNjAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTU5KG0sIGQpIG0oMywgMTU5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTYxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE2MChtLCBkKSBtKDMsIDE2MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE2MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNjEobSwgZCkgbSgzLCAxNjEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNjMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTYyKG0sIGQpIG0oMywgMTYyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTY0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE2MyhtLCBkKSBtKDMsIDE2MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE2NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNjQobSwgZCkgbSgzLCAxNjQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNjYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTY1KG0sIGQpIG0oMywgMTY1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTY3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE2NihtLCBkKSBtKDMsIDE2NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE2OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNjcobSwgZCkgbSgzLCAxNjcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNjkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTY4KG0sIGQpIG0oMywgMTY4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTcwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE2OShtLCBkKSBtKDMsIDE2OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE3MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNzAobSwgZCkgbSgzLCAxNzAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNzIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTcxKG0sIGQpIG0oMywgMTcxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTczKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE3MihtLCBkKSBtKDMsIDE3MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE3NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNzMobSwgZCkgbSgzLCAxNzMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNzUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTc0KG0sIGQpIG0oMywgMTc0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTc2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE3NShtLCBkKSBtKDMsIDE3NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE3NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNzYobSwgZCkgbSgzLCAxNzYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xNzgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTc3KG0sIGQpIG0oMywgMTc3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTc5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE3OChtLCBkKSBtKDMsIDE3OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE4MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xNzkobSwgZCkgbSgzLCAxNzksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xODEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTgwKG0sIGQpIG0oMywgMTgwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTgyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE4MShtLCBkKSBtKDMsIDE4MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE4MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xODIobSwgZCkgbSgzLCAxODIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xODQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTgzKG0sIGQpIG0oMywgMTgzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTg1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE4NChtLCBkKSBtKDMsIDE4NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE4NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xODUobSwgZCkgbSgzLCAxODUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xODcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTg2KG0sIGQpIG0oMywgMTg2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTg4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE4NyhtLCBkKSBtKDMsIDE4NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE4OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xODgobSwgZCkgbSgzLCAxODgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xOTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTg5KG0sIGQpIG0oMywgMTg5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTkxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE5MChtLCBkKSBtKDMsIDE5MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE5MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xOTEobSwgZCkgbSgzLCAxOTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xOTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTkyKG0sIGQpIG0oMywgMTkyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTk0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE5MyhtLCBkKSBtKDMsIDE5MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE5NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xOTQobSwgZCkgbSgzLCAxOTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xOTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTk1KG0sIGQpIG0oMywgMTk1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMTk3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE5NihtLCBkKSBtKDMsIDE5NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzE5OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8xOTcobSwgZCkgbSgzLCAxOTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8xOTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMTk4KG0sIGQpIG0oMywgMTk4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjAwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzE5OShtLCBkKSBtKDMsIDE5OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIwMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMDAobSwgZCkgbSgzLCAyMDAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMDIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjAxKG0sIGQpIG0oMywgMjAxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjAzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIwMihtLCBkKSBtKDMsIDIwMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIwNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMDMobSwgZCkgbSgzLCAyMDMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMDUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjA0KG0sIGQpIG0oMywgMjA0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjA2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIwNShtLCBkKSBtKDMsIDIwNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIwNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMDYobSwgZCkgbSgzLCAyMDYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMDgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjA3KG0sIGQpIG0oMywgMjA3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjA5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIwOChtLCBkKSBtKDMsIDIwOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIxMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMDkobSwgZCkgbSgzLCAyMDksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjEwKG0sIGQpIG0oMywgMjEwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjEyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIxMShtLCBkKSBtKDMsIDIxMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIxMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMTIobSwgZCkgbSgzLCAyMTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjEzKG0sIGQpIG0oMywgMjEzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjE1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIxNChtLCBkKSBtKDMsIDIxNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIxNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMTUobSwgZCkgbSgzLCAyMTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjE2KG0sIGQpIG0oMywgMjE2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjE4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIxNyhtLCBkKSBtKDMsIDIxNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIxOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMTgobSwgZCkgbSgzLCAyMTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMjAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjE5KG0sIGQpIG0oMywgMjE5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjIxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIyMChtLCBkKSBtKDMsIDIyMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIyMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMjEobSwgZCkgbSgzLCAyMjEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMjMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjIyKG0sIGQpIG0oMywgMjIyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjI0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIyMyhtLCBkKSBtKDMsIDIyMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIyNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMjQobSwgZCkgbSgzLCAyMjQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMjYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjI1KG0sIGQpIG0oMywgMjI1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjI3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIyNihtLCBkKSBtKDMsIDIyNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIyOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMjcobSwgZCkgbSgzLCAyMjcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMjkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjI4KG0sIGQpIG0oMywgMjI4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjMwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIyOShtLCBkKSBtKDMsIDIyOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIzMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMzAobSwgZCkgbSgzLCAyMzAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMzIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjMxKG0sIGQpIG0oMywgMjMxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjMzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIzMihtLCBkKSBtKDMsIDIzMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIzNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMzMobSwgZCkgbSgzLCAyMzMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMzUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjM0KG0sIGQpIG0oMywgMjM0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjM2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIzNShtLCBkKSBtKDMsIDIzNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzIzNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMzYobSwgZCkgbSgzLCAyMzYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yMzgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjM3KG0sIGQpIG0oMywgMjM3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjM5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzIzOChtLCBkKSBtKDMsIDIzOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI0MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yMzkobSwgZCkgbSgzLCAyMzksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNDEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjQwKG0sIGQpIG0oMywgMjQwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjQyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI0MShtLCBkKSBtKDMsIDI0MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI0MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yNDIobSwgZCkgbSgzLCAyNDIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNDQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjQzKG0sIGQpIG0oMywgMjQzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjQ1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI0NChtLCBkKSBtKDMsIDI0NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI0NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yNDUobSwgZCkgbSgzLCAyNDUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNDcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjQ2KG0sIGQpIG0oMywgMjQ2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjQ4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI0NyhtLCBkKSBtKDMsIDI0NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI0OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yNDgobSwgZCkgbSgzLCAyNDgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjQ5KG0sIGQpIG0oMywgMjQ5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjUxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI1MChtLCBkKSBtKDMsIDI1MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI1MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yNTEobSwgZCkgbSgzLCAyNTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjUyKG0sIGQpIG0oMywgMjUyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzJfMjU0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8yXzI1MyhtLCBkKSBtKDMsIDI1MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8yXzI1NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfMl8yNTQobSwgZCkgbSgzLCAyNTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfMl8yNTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzJfMjU1KG0sIGQpIG0oMywgMjU1LCBkKQorIworIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMChtLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMShtLCBkKSBtKDQsIDAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEobSwgZCkgbSg0LCAxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yKG0sIGQpIG0oNCwgMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMyhtLCBkKSBtKDQsIDMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM181KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzQobSwgZCkgbSg0LCA0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM181KG0sIGQpIG0oNCwgNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNihtLCBkKSBtKDQsIDYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM184KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzcobSwgZCkgbSg0LCA3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM184KG0sIGQpIG0oNCwgOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzkobSwgZCkgbSg0LCA5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTAobSwgZCkgbSg0LCAxMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzExKG0sIGQpIG0oNCwgMTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMihtLCBkKSBtKDQsIDEyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTMobSwgZCkgbSg0LCAxMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE0KG0sIGQpIG0oNCwgMTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNShtLCBkKSBtKDQsIDE1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTYobSwgZCkgbSg0LCAxNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE3KG0sIGQpIG0oNCwgMTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xOChtLCBkKSBtKDQsIDE4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTkobSwgZCkgbSg0LCAxOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIwKG0sIGQpIG0oNCwgMjAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMShtLCBkKSBtKDQsIDIxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjIobSwgZCkgbSg0LCAyMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIzKG0sIGQpIG0oNCwgMjMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yNChtLCBkKSBtKDQsIDI0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjUobSwgZCkgbSg0LCAyNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI2KG0sIGQpIG0oNCwgMjYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yNyhtLCBkKSBtKDQsIDI3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjgobSwgZCkgbSg0LCAyOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzMwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI5KG0sIGQpIG0oNCwgMjksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18zMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18zMChtLCBkKSBtKDQsIDMwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMzIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMzEobSwgZCkgbSg0LCAzMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzMzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzMyKG0sIGQpIG0oNCwgMzIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18zNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18zMyhtLCBkKSBtKDQsIDMzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMzUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMzQobSwgZCkgbSg0LCAzNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzM2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzM1KG0sIGQpIG0oNCwgMzUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18zNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18zNihtLCBkKSBtKDQsIDM2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMzgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMzcobSwgZCkgbSg0LCAzNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzM5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzM4KG0sIGQpIG0oNCwgMzgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM180MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18zOShtLCBkKSBtKDQsIDM5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNDEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNDAobSwgZCkgbSg0LCA0MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzQyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzQxKG0sIGQpIG0oNCwgNDEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM180MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM180MihtLCBkKSBtKDQsIDQyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNDQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNDMobSwgZCkgbSg0LCA0MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzQ1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzQ0KG0sIGQpIG0oNCwgNDQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM180NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM180NShtLCBkKSBtKDQsIDQ1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNDcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNDYobSwgZCkgbSg0LCA0NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzQ4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzQ3KG0sIGQpIG0oNCwgNDcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM180OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM180OChtLCBkKSBtKDQsIDQ4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNDkobSwgZCkgbSg0LCA0OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzUxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzUwKG0sIGQpIG0oNCwgNTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM181MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM181MShtLCBkKSBtKDQsIDUxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNTIobSwgZCkgbSg0LCA1MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzU0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzUzKG0sIGQpIG0oNCwgNTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM181NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM181NChtLCBkKSBtKDQsIDU0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNTUobSwgZCkgbSg0LCA1NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzU3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzU2KG0sIGQpIG0oNCwgNTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM181OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM181NyhtLCBkKSBtKDQsIDU3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNTgobSwgZCkgbSg0LCA1OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzYwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzU5KG0sIGQpIG0oNCwgNTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM182MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM182MChtLCBkKSBtKDQsIDYwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNjIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNjEobSwgZCkgbSg0LCA2MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzYzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzYyKG0sIGQpIG0oNCwgNjIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM182NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM182MyhtLCBkKSBtKDQsIDYzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNjUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNjQobSwgZCkgbSg0LCA2NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzY2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzY1KG0sIGQpIG0oNCwgNjUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM182NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM182NihtLCBkKSBtKDQsIDY2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNjgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNjcobSwgZCkgbSg0LCA2NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzY5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzY4KG0sIGQpIG0oNCwgNjgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM183MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM182OShtLCBkKSBtKDQsIDY5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNzEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNzAobSwgZCkgbSg0LCA3MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzcyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzcxKG0sIGQpIG0oNCwgNzEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM183MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM183MihtLCBkKSBtKDQsIDcyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNzQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNzMobSwgZCkgbSg0LCA3MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzc1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzc0KG0sIGQpIG0oNCwgNzQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM183NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM183NShtLCBkKSBtKDQsIDc1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfNzcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNzYobSwgZCkgbSg0LCA3NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzc4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzc3KG0sIGQpIG0oNCwgNzcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM183OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM183OChtLCBkKSBtKDQsIDc4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfODAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfNzkobSwgZCkgbSg0LCA3OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzgxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzgwKG0sIGQpIG0oNCwgODAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM184MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM184MShtLCBkKSBtKDQsIDgxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfODMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfODIobSwgZCkgbSg0LCA4MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzg0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzgzKG0sIGQpIG0oNCwgODMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM184NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM184NChtLCBkKSBtKDQsIDg0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfODYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfODUobSwgZCkgbSg0LCA4NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzg3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzg2KG0sIGQpIG0oNCwgODYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM184OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM184NyhtLCBkKSBtKDQsIDg3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfODkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfODgobSwgZCkgbSg0LCA4OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzkwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzg5KG0sIGQpIG0oNCwgODksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM185MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM185MChtLCBkKSBtKDQsIDkwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfOTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfOTEobSwgZCkgbSg0LCA5MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzkzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzkyKG0sIGQpIG0oNCwgOTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM185NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM185MyhtLCBkKSBtKDQsIDkzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfOTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfOTQobSwgZCkgbSg0LCA5NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzk2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzk1KG0sIGQpIG0oNCwgOTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM185NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM185NihtLCBkKSBtKDQsIDk2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfOTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfOTcobSwgZCkgbSg0LCA5NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzk5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzk4KG0sIGQpIG0oNCwgOTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMDAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfOTkobSwgZCkgbSg0LCA5OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEwMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMDAobSwgZCkgbSg0LCAxMDAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMDIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTAxKG0sIGQpIG0oNCwgMTAxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTAzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEwMihtLCBkKSBtKDQsIDEwMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEwNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMDMobSwgZCkgbSg0LCAxMDMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMDUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTA0KG0sIGQpIG0oNCwgMTA0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTA2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEwNShtLCBkKSBtKDQsIDEwNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEwNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMDYobSwgZCkgbSg0LCAxMDYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMDgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTA3KG0sIGQpIG0oNCwgMTA3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTA5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEwOChtLCBkKSBtKDQsIDEwOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzExMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMDkobSwgZCkgbSg0LCAxMDksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMTEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTEwKG0sIGQpIG0oNCwgMTEwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTEyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzExMShtLCBkKSBtKDQsIDExMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzExMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMTIobSwgZCkgbSg0LCAxMTIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMTQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTEzKG0sIGQpIG0oNCwgMTEzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTE1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzExNChtLCBkKSBtKDQsIDExNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzExNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMTUobSwgZCkgbSg0LCAxMTUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMTcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTE2KG0sIGQpIG0oNCwgMTE2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTE4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzExNyhtLCBkKSBtKDQsIDExNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzExOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMTgobSwgZCkgbSg0LCAxMTgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMjAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTE5KG0sIGQpIG0oNCwgMTE5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTIxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEyMChtLCBkKSBtKDQsIDEyMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEyMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMjEobSwgZCkgbSg0LCAxMjEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMjMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTIyKG0sIGQpIG0oNCwgMTIyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTI0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEyMyhtLCBkKSBtKDQsIDEyMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEyNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMjQobSwgZCkgbSg0LCAxMjQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMjYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTI1KG0sIGQpIG0oNCwgMTI1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTI3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEyNihtLCBkKSBtKDQsIDEyNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEyOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMjcobSwgZCkgbSg0LCAxMjcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMjkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTI4KG0sIGQpIG0oNCwgMTI4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTMwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEyOShtLCBkKSBtKDQsIDEyOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEzMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMzAobSwgZCkgbSg0LCAxMzAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMzIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTMxKG0sIGQpIG0oNCwgMTMxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTMzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEzMihtLCBkKSBtKDQsIDEzMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEzNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMzMobSwgZCkgbSg0LCAxMzMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMzUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTM0KG0sIGQpIG0oNCwgMTM0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTM2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEzNShtLCBkKSBtKDQsIDEzNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzEzNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMzYobSwgZCkgbSg0LCAxMzYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xMzgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTM3KG0sIGQpIG0oNCwgMTM3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTM5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzEzOChtLCBkKSBtKDQsIDEzOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE0MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xMzkobSwgZCkgbSg0LCAxMzksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNDEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTQwKG0sIGQpIG0oNCwgMTQwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTQyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE0MShtLCBkKSBtKDQsIDE0MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE0MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNDIobSwgZCkgbSg0LCAxNDIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNDQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTQzKG0sIGQpIG0oNCwgMTQzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTQ1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE0NChtLCBkKSBtKDQsIDE0NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE0NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNDUobSwgZCkgbSg0LCAxNDUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNDcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTQ2KG0sIGQpIG0oNCwgMTQ2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTQ4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE0NyhtLCBkKSBtKDQsIDE0NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE0OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNDgobSwgZCkgbSg0LCAxNDgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTQ5KG0sIGQpIG0oNCwgMTQ5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTUxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE1MChtLCBkKSBtKDQsIDE1MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE1MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNTEobSwgZCkgbSg0LCAxNTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTUyKG0sIGQpIG0oNCwgMTUyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTU0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE1MyhtLCBkKSBtKDQsIDE1MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE1NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNTQobSwgZCkgbSg0LCAxNTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTU1KG0sIGQpIG0oNCwgMTU1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTU3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE1NihtLCBkKSBtKDQsIDE1NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE1OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNTcobSwgZCkgbSg0LCAxNTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTU4KG0sIGQpIG0oNCwgMTU4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTYwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE1OShtLCBkKSBtKDQsIDE1OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE2MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNjAobSwgZCkgbSg0LCAxNjAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNjIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTYxKG0sIGQpIG0oNCwgMTYxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTYzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE2MihtLCBkKSBtKDQsIDE2MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE2NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNjMobSwgZCkgbSg0LCAxNjMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNjUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTY0KG0sIGQpIG0oNCwgMTY0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTY2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE2NShtLCBkKSBtKDQsIDE2NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE2NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNjYobSwgZCkgbSg0LCAxNjYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNjgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTY3KG0sIGQpIG0oNCwgMTY3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTY5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE2OChtLCBkKSBtKDQsIDE2OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE3MChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNjkobSwgZCkgbSg0LCAxNjksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNzEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTcwKG0sIGQpIG0oNCwgMTcwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTcyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE3MShtLCBkKSBtKDQsIDE3MSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE3MyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNzIobSwgZCkgbSg0LCAxNzIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNzQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTczKG0sIGQpIG0oNCwgMTczLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTc1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE3NChtLCBkKSBtKDQsIDE3NCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE3NihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNzUobSwgZCkgbSg0LCAxNzUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xNzcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTc2KG0sIGQpIG0oNCwgMTc2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTc4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE3NyhtLCBkKSBtKDQsIDE3NywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE3OShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xNzgobSwgZCkgbSg0LCAxNzgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xODAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTc5KG0sIGQpIG0oNCwgMTc5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTgxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE4MChtLCBkKSBtKDQsIDE4MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE4MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xODEobSwgZCkgbSg0LCAxODEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xODMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTgyKG0sIGQpIG0oNCwgMTgyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTg0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE4MyhtLCBkKSBtKDQsIDE4MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE4NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xODQobSwgZCkgbSg0LCAxODQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xODYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTg1KG0sIGQpIG0oNCwgMTg1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTg3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE4NihtLCBkKSBtKDQsIDE4NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE4OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xODcobSwgZCkgbSg0LCAxODcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xODkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTg4KG0sIGQpIG0oNCwgMTg4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTkwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE4OShtLCBkKSBtKDQsIDE4OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE5MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xOTAobSwgZCkgbSg0LCAxOTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xOTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTkxKG0sIGQpIG0oNCwgMTkxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTkzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE5MihtLCBkKSBtKDQsIDE5MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE5NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xOTMobSwgZCkgbSg0LCAxOTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xOTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTk0KG0sIGQpIG0oNCwgMTk0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTk2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE5NShtLCBkKSBtKDQsIDE5NSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzE5NyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xOTYobSwgZCkgbSg0LCAxOTYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18xOTgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMTk3KG0sIGQpIG0oNCwgMTk3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMTk5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzE5OChtLCBkKSBtKDQsIDE5OCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIwMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18xOTkobSwgZCkgbSg0LCAxOTksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMDEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjAwKG0sIGQpIG0oNCwgMjAwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjAyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIwMShtLCBkKSBtKDQsIDIwMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIwMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMDIobSwgZCkgbSg0LCAyMDIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMDQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjAzKG0sIGQpIG0oNCwgMjAzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjA1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIwNChtLCBkKSBtKDQsIDIwNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIwNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMDUobSwgZCkgbSg0LCAyMDUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMDcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjA2KG0sIGQpIG0oNCwgMjA2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjA4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIwNyhtLCBkKSBtKDQsIDIwNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIwOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMDgobSwgZCkgbSg0LCAyMDgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMTAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjA5KG0sIGQpIG0oNCwgMjA5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjExKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIxMChtLCBkKSBtKDQsIDIxMCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIxMihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMTEobSwgZCkgbSg0LCAyMTEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMTMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjEyKG0sIGQpIG0oNCwgMjEyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjE0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIxMyhtLCBkKSBtKDQsIDIxMywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIxNShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMTQobSwgZCkgbSg0LCAyMTQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMTYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjE1KG0sIGQpIG0oNCwgMjE1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjE3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIxNihtLCBkKSBtKDQsIDIxNiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIxOChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMTcobSwgZCkgbSg0LCAyMTcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMTkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjE4KG0sIGQpIG0oNCwgMjE4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjIwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIxOShtLCBkKSBtKDQsIDIxOSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIyMShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMjAobSwgZCkgbSg0LCAyMjAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMjIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjIxKG0sIGQpIG0oNCwgMjIxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjIzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIyMihtLCBkKSBtKDQsIDIyMiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIyNChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMjMobSwgZCkgbSg0LCAyMjMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMjUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjI0KG0sIGQpIG0oNCwgMjI0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjI2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIyNShtLCBkKSBtKDQsIDIyNSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIyNyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMjYobSwgZCkgbSg0LCAyMjYsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMjgobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjI3KG0sIGQpIG0oNCwgMjI3LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjI5KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIyOChtLCBkKSBtKDQsIDIyOCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIzMChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMjkobSwgZCkgbSg0LCAyMjksIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMzEobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjMwKG0sIGQpIG0oNCwgMjMwLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjMyKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIzMShtLCBkKSBtKDQsIDIzMSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIzMyhtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMzIobSwgZCkgbSg0LCAyMzIsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMzQobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjMzKG0sIGQpIG0oNCwgMjMzLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjM1KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIzNChtLCBkKSBtKDQsIDIzNCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIzNihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMzUobSwgZCkgbSg0LCAyMzUsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yMzcobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjM2KG0sIGQpIG0oNCwgMjM2LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjM4KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzIzNyhtLCBkKSBtKDQsIDIzNywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzIzOShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yMzgobSwgZCkgbSg0LCAyMzgsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNDAobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjM5KG0sIGQpIG0oNCwgMjM5LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjQxKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI0MChtLCBkKSBtKDQsIDI0MCwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI0MihtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yNDEobSwgZCkgbSg0LCAyNDEsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNDMobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjQyKG0sIGQpIG0oNCwgMjQyLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjQ0KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI0MyhtLCBkKSBtKDQsIDI0MywgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI0NShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yNDQobSwgZCkgbSg0LCAyNDQsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNDYobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjQ1KG0sIGQpIG0oNCwgMjQ1LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjQ3KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI0NihtLCBkKSBtKDQsIDI0NiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI0OChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yNDcobSwgZCkgbSg0LCAyNDcsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNDkobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjQ4KG0sIGQpIG0oNCwgMjQ4LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjUwKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI0OShtLCBkKSBtKDQsIDI0OSwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI1MShtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yNTAobSwgZCkgbSg0LCAyNTAsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNTIobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjUxKG0sIGQpIG0oNCwgMjUxLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjUzKG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI1MihtLCBkKSBtKDQsIDI1MiwgZCkKKyMgZGVmaW5lIEJPT1NUX1BQX1JFUEVBVF8zXzI1NChtLCBkKSBCT09TVF9QUF9SRVBFQVRfM18yNTMobSwgZCkgbSg0LCAyNTMsIGQpCisjIGRlZmluZSBCT09TVF9QUF9SRVBFQVRfM18yNTUobSwgZCkgQk9PU1RfUFBfUkVQRUFUXzNfMjU0KG0sIGQpIG0oNCwgMjU0LCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfUkVQRUFUXzNfMjU2KG0sIGQpIEJPT1NUX1BQX1JFUEVBVF8zXzI1NShtLCBkKSBtKDQsIDI1NSwgZCkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9jb3VudGVyLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9jb3VudGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWMwZGYxCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL2NvdW50ZXIuaHBwCkBAIC0wLDAgKzEsMjY5IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDA1LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgICAgICAqCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGRlZmluZSBCT09TVF9QUF9WQUxVRSBCT09TVF9QUF9DT1VOVEVSICsgMQorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcD4KKyMKKyMgdW5kZWYgQk9PU1RfUFBfQ09VTlRFUgorIworIyB1bmRlZiBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yCisjIHVuZGVmIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMworIyB1bmRlZiBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81CisjIHVuZGVmIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNgorIyB1bmRlZiBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84CisjIHVuZGVmIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOQorIyB1bmRlZiBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEwIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xMCAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMTAgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEwIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xMCA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMTAgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEwIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xMCA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMTAgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEwIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF85IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzkgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF85IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzkgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF85IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzkgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF85IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzggMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzggNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzggNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF83IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF83IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF83IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF83IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF82IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzYgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF82IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzYgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF82IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzYgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF82IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzUgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzUgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzUgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzMgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzMgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzMgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzIgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzIgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzIgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUiBCT09TVF9QUF9TTE9UX0NDXzEwKEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMTAsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOSwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNiwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMywgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yLCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF85CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSIEJPT1NUX1BQX1NMT1RfQ0NfOShCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzksIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOCwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF83LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzYsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNSwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzMsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMiwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUiBCT09TVF9QUF9TTE9UX0NDXzgoQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF84LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNiwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMywgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yLCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF83CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSIEJPT1NUX1BQX1NMT1RfQ0NfNyhCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzcsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNiwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMywgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yLCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF82CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSIEJPT1NUX1BQX1NMT1RfQ0NfNihCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzYsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNSwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzMsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMiwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUiBCT09TVF9QUF9TTE9UX0NDXzUoQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF81LCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMywgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yLCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF80CisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSIEJPT1NUX1BQX1NMT1RfQ0NfNChCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzQsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMywgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yLCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9DT1VOVEVSIEJPT1NUX1BQX1NMT1RfQ0NfMyhCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzMsIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMiwgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX0NPVU5URVJfRElHSVRfMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUiBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8yLCBCT09TVF9QUF9DT1VOVEVSX0RJR0lUXzEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX0NPVU5URVIgQk9PU1RfUFBfQ09VTlRFUl9ESUdJVF8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvZGVmLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9kZWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NTA5OWUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvZGVmLmhwcApAQCAtMCwwICsxLDQ5IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1NMT1RfREVUQUlMX0RFRl9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9TTE9UX0RFVEFJTF9ERUZfSFBQCisjCisjIC8qIEJPT1NUX1BQX1NMT1RfT0ZGU0VUX3ggKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzEwKHgpICh4KSAlIDEwMDAwMDAwMDBVTAorIyBkZWZpbmUgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOSh4KSBCT09TVF9QUF9TTE9UX09GRlNFVF8xMCh4KSAlIDEwMDAwMDAwMFVMCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX09GRlNFVF84KHgpIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzkoeCkgJSAxMDAwMDAwMFVMCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX09GRlNFVF83KHgpIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzgoeCkgJSAxMDAwMDAwVUwKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzYoeCkgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNyh4KSAlIDEwMDAwMFVMCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX09GRlNFVF81KHgpIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzYoeCkgJSAxMDAwMFVMCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX09GRlNFVF80KHgpIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzUoeCkgJSAxMDAwVUwKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzMoeCkgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNCh4KSAlIDEwMFVMCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX09GRlNFVF8yKHgpIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzMoeCkgJSAxMFVMCisjCisjIC8qIEJPT1NUX1BQX1NMT1RfQ0NfeCAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfU0xPVF9DQ18yKGEsIGIpIEJPT1NUX1BQX1NMT1RfQ0NfMl9EKGEsIGIpCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzMoYSwgYiwgYykgQk9PU1RfUFBfU0xPVF9DQ18zX0QoYSwgYiwgYykKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfQ0NfNChhLCBiLCBjLCBkKSBCT09TVF9QUF9TTE9UX0NDXzRfRChhLCBiLCBjLCBkKQorIyBkZWZpbmUgQk9PU1RfUFBfU0xPVF9DQ181KGEsIGIsIGMsIGQsIGUpIEJPT1NUX1BQX1NMT1RfQ0NfNV9EKGEsIGIsIGMsIGQsIGUpCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzYoYSwgYiwgYywgZCwgZSwgZikgQk9PU1RfUFBfU0xPVF9DQ182X0QoYSwgYiwgYywgZCwgZSwgZikKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfQ0NfNyhhLCBiLCBjLCBkLCBlLCBmLCBnKSBCT09TVF9QUF9TTE9UX0NDXzdfRChhLCBiLCBjLCBkLCBlLCBmLCBnKQorIyBkZWZpbmUgQk9PU1RfUFBfU0xPVF9DQ184KGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgpIEJPT1NUX1BQX1NMT1RfQ0NfOF9EKGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgpCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzkoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSkgQk9PU1RfUFBfU0xPVF9DQ185X0QoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSkKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfQ0NfMTAoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaikgQk9PU1RfUFBfU0xPVF9DQ18xMF9EKGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGopCisjCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzJfRChhLCBiKSBhICMjIGIKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfQ0NfM19EKGEsIGIsIGMpIGEgIyMgYiAjIyBjCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzRfRChhLCBiLCBjLCBkKSBhICMjIGIgIyMgYyAjIyBkCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzVfRChhLCBiLCBjLCBkLCBlKSBhICMjIGIgIyMgYyAjIyBkICMjIGUKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfQ0NfNl9EKGEsIGIsIGMsIGQsIGUsIGYpIGEgIyMgYiAjIyBjICMjIGQgIyMgZSAjIyBmCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzdfRChhLCBiLCBjLCBkLCBlLCBmLCBnKSBhICMjIGIgIyMgYyAjIyBkICMjIGUgIyMgZiAjIyBnCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzhfRChhLCBiLCBjLCBkLCBlLCBmLCBnLCBoKSBhICMjIGIgIyMgYyAjIyBkICMjIGUgIyMgZiAjIyBnICMjIGgKKyMgZGVmaW5lIEJPT1NUX1BQX1NMT1RfQ0NfOV9EKGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGkpIGEgIyMgYiAjIyBjICMjIGQgIyMgZSAjIyBmICMjIGcgIyMgaCAjIyBpCisjIGRlZmluZSBCT09TVF9QUF9TTE9UX0NDXzEwX0QoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaikgYSAjIyBiICMjIGMgIyMgZCAjIyBlICMjIGYgIyMgZyAjIyBoICMjIGkgIyMgagorIworIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3NoYXJlZC5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTdhYzU0Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3NoYXJlZC5ocHAKQEAgLTAsMCArMSwyNDcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUF9WQUxVRQorIyAgICBlcnJvciBCT09TVF9QUF9FUlJPUjogIEJPT1NUX1BQX1ZBTFVFIGlzIG5vdCBkZWZpbmVkCisjIGVuZGlmCisjCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF8xCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF8yCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF8zCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF80CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF81CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF82CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF83CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF84CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF85CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMAorIworIyBpZiAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCAwCisjIGVsaWYgKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMDBVTCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMTAgMQorIyBlbGlmIChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMDAwVUwgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEwIDIKKyMgZWxpZiAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCAzCisjIGVsaWYgKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMDBVTCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMTAgNAorIyBlbGlmIChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMDAwVUwgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEwIDUKKyMgZWxpZiAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA2CisjIGVsaWYgKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMDBVTCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMTAgNworIyBlbGlmIChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMDAwVUwgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEwIDgKKyMgZWxpZiAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzEwKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF85IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8xMChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMDBVTCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfOSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMTAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwVUwgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzkgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzEwKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF85IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8xMChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMDBVTCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfOSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMTAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwVUwgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzkgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzEwKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF85IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8xMChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMDBVTCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfOSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMTAoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDAwVUwgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzkgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzEwKEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF85IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOShCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF84IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF85KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwVUwgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzggMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzkoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDBVTCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfOCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOShCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF84IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF85KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwVUwgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzggNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzkoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDBVTCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfOCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOShCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF84IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF85KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDAwVUwgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzggNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzkoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMDBVTCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfOCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOShCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF84IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwVUwgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzcgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzgoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMFVMID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF83IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF84KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDBVTCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwVUwgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzcgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzgoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMFVMID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF83IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF84KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDBVTCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwVUwgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzcgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzgoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDAwMFVMID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF83IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF84KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMDBVTCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfOChCT09TVF9QUF9WQUxVRSkgLyAxMDAwMDAwVUwgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzcgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF83KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF82IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNihCT09TVF9QUF9WQUxVRSkgLyAxMDAwMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF81IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF82KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwVUwgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzUgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzYoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDBVTCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNihCT09TVF9QUF9WQUxVRSkgLyAxMDAwMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF81IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF82KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwVUwgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzUgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzYoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDBVTCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNihCT09TVF9QUF9WQUxVRSkgLyAxMDAwMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF81IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF82KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDAwVUwgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzUgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzYoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMDBVTCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNihCT09TVF9QUF9WQUxVRSkgLyAxMDAwMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF81IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNShCT09TVF9QUF9WQUxVRSkgLyAxMDAwVUwgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzQgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzUoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMFVMID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF80IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF81KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDBVTCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNShCT09TVF9QUF9WQUxVRSkgLyAxMDAwVUwgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzQgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzUoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMFVMID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF80IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF81KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDBVTCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNShCT09TVF9QUF9WQUxVRSkgLyAxMDAwVUwgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzQgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzUoQk9PU1RfUFBfVkFMVUUpIC8gMTAwMFVMID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF80IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF81KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMDBVTCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfNCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfNShCT09TVF9QUF9WQUxVRSkgLyAxMDAwVUwgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzQgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF80KEJPT1NUX1BQX1ZBTFVFKSAvIDEwMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMyhCT09TVF9QUF9WQUxVRSkgLyAxMFVMID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8zKEJPT1NUX1BQX1ZBTFVFKSAvIDEwVUwgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzIgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzMoQk9PU1RfUFBfVkFMVUUpIC8gMTBVTCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMyhCT09TVF9QUF9WQUxVRSkgLyAxMFVMID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8zKEJPT1NUX1BQX1ZBTFVFKSAvIDEwVUwgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzIgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzMoQk9PU1RfUFBfVkFMVUUpIC8gMTBVTCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMyhCT09TVF9QUF9WQUxVRSkgLyAxMFVMID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8zKEJPT1NUX1BQX1ZBTFVFKSAvIDEwVUwgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzIgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzMoQk9PU1RfUFBfVkFMVUUpIC8gMTBVTCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMyhCT09TVF9QUF9WQUxVRSkgLyAxMFVMID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMihCT09TVF9QUF9WQUxVRSkgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzIoQk9PU1RfUFBfVkFMVUUpID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8yKEJPT1NUX1BQX1ZBTFVFKSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMihCT09TVF9QUF9WQUxVRSkgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzIoQk9PU1RfUFBfVkFMVUUpID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8yKEJPT1NUX1BQX1ZBTFVFKSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMihCT09TVF9QUF9WQUxVRSkgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfT0ZGU0VUXzIoQk9PU1RfUFBfVkFMVUUpID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfVEVNUF8xIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX09GRlNFVF8yKEJPT1NUX1BQX1ZBTFVFKSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UX1RFTVBfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9PRkZTRVRfMihCT09TVF9QUF9WQUxVRSkgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF9URU1QXzEgOQorIyBlbmRpZgorIworIyB1bmRlZiBCT09TVF9QUF9WQUxVRQpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3QxLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90MS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjIyNzQ4ZQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90MS5ocHAKQEAgLTAsMCArMSwyNjcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9TTE9UXzEKKyMKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzkgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF85IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzkgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF85IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzkgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF85IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF84IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOCAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzggMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF84IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOCA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzggNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF84IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfOCA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzggOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF84IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzcgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF83IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzcgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF83IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzcgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF83IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzcgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNiAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF82IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNiAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF82IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNiA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF82IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNiA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzUgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzUgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzUgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzQgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF80IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzQgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF80IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzQgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF80IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzQgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMyAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8zIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMyAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8zIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMyA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8zIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMyA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMiAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMiA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMiA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8xIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8xIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8xIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UXzFfRElHSVRfMTAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMSgpIEJPT1NUX1BQX1NMT1RfQ0NfMTAoQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEwLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfOSwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzgsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF83LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF80LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF85CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzEoKSBCT09TVF9QUF9TTE9UX0NDXzkoQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzksIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF84LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNywgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzFfRElHSVRfOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xKCkgQk9PU1RfUFBfU0xPVF9DQ184KEJPT1NUX1BQX1NMT1RfMV9ESUdJVF84LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNywgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzFfRElHSVRfNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xKCkgQk9PU1RfUFBfU0xPVF9DQ183KEJPT1NUX1BQX1NMT1RfMV9ESUdJVF83LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF80LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF82CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzEoKSBCT09TVF9QUF9TTE9UX0NDXzYoQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzFfRElHSVRfNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xKCkgQk9PU1RfUFBfU0xPVF9DQ181KEJPT1NUX1BQX1NMT1RfMV9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzFfRElHSVRfNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xKCkgQk9PU1RfUFBfU0xPVF9DQ180KEJPT1NUX1BQX1NMT1RfMV9ESUdJVF80LCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzEoKSBCT09TVF9QUF9TTE9UX0NDXzMoQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzFfRElHSVRfMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xKCkgQk9PU1RfUFBfU0xPVF9DQ18yKEJPT1NUX1BQX1NMT1RfMV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzFfRElHSVRfMSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8xKCkgQk9PU1RfUFBfU0xPVF8xX0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90Mi5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkNTI1OGMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDIuaHBwCkBAIC0wLDAgKzEsMjY3IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcD4KKyMKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF8yCisjCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF80CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF81CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF83CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF84CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF85CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xMAorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzkgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF85IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzkgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF85IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzkgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF85IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzkgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOCAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzggMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF84IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOCAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzggNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF84IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOCA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzggNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF84IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfOCA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF83IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzcgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF83IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzcgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF83IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzcgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF83IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzYgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzYgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzYgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzYgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzUgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF81IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzUgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF81IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzUgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF81IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF80IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNCAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF80IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNCA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF80IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfNCA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF80IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzIgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzIgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzIgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzJfRElHSVRfMSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzIoKSBCT09TVF9QUF9TTE9UX0NDXzEwKEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xMCwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzksIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF84LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfNywgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzJfRElHSVRfOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yKCkgQk9PU1RfUFBfU0xPVF9DQ185KEJPT1NUX1BQX1NMT1RfMl9ESUdJVF85LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfOCwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzcsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMigpIEJPT1NUX1BQX1NMT1RfQ0NfOChCT09TVF9QUF9TTE9UXzJfRElHSVRfOCwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzcsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMigpIEJPT1NUX1BQX1NMT1RfQ0NfNyhCT09TVF9QUF9TTE9UXzJfRElHSVRfNywgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzJfRElHSVRfNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yKCkgQk9PU1RfUFBfU0xPVF9DQ182KEJPT1NUX1BQX1NMT1RfMl9ESUdJVF82LCBCT09TVF9QUF9TTE9UXzJfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMigpIEJPT1NUX1BQX1NMT1RfQ0NfNShCT09TVF9QUF9TTE9UXzJfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMigpIEJPT1NUX1BQX1NMT1RfQ0NfNChCT09TVF9QUF9TTE9UXzJfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzJfRElHSVRfMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8yKCkgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzJfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMigpIEJPT1NUX1BQX1NMT1RfQ0NfMihCT09TVF9QUF9TTE9UXzJfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8yX0RJR0lUXzEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMigpIEJPT1NUX1BQX1NMT1RfMl9ESUdJVF8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDMuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3QzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDVjZjIxCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3QzLmhwcApAQCAtMCwwICsxLDI2NyBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi4KKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3NoYXJlZC5ocHA+CisjCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfMworIworIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfMQorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfMgorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfMworIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfNAorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfNQorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfNgorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfNworIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfOAorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfOQorIyB1bmRlZiBCT09TVF9QUF9TTE9UXzNfRElHSVRfMTAKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEwID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMCA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF85IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfOSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzkgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF85IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfOSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzkgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF85IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfOSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzkgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF85IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzggMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF84IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfOCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzggMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF84IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfOCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzggNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF84IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfOCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzggOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNyAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzcgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF83IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNyAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzcgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF83IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNyA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzcgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF83IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNyA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF82IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNiAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzYgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF82IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNiA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzYgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF82IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNiA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzYgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF82IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF81IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF81IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF81IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNCAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzQgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNCAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzQgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNCA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzQgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfNCA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzMgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzMgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzMgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8yIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8yIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8yIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzEgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzEgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzEgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF8zKCkgQk9PU1RfUFBfU0xPVF9DQ18xMChCT09TVF9QUF9TTE9UXzNfRElHSVRfMTAsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF85LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfOCwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzcsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF82LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMygpIEJPT1NUX1BQX1NMT1RfQ0NfOShCT09TVF9QUF9TTE9UXzNfRElHSVRfOSwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzgsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF83LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfM19ESUdJVF84CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzMoKSBCT09TVF9QUF9TTE9UX0NDXzgoQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzgsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF83LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfM19ESUdJVF83CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzMoKSBCT09TVF9QUF9TTE9UX0NDXzcoQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzcsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF82LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMygpIEJPT1NUX1BQX1NMT1RfQ0NfNihCT09TVF9QUF9TTE9UXzNfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfM19ESUdJVF81CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzMoKSBCT09TVF9QUF9TTE9UX0NDXzUoQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80LCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfM19ESUdJVF80CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzMoKSBCT09TVF9QUF9TTE9UX0NDXzQoQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzNfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfMygpIEJPT1NUX1BQX1NMT1RfQ0NfMyhCT09TVF9QUF9TTE9UXzNfRElHSVRfMywgQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8yCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzMoKSBCT09TVF9QUF9TTE9UX0NDXzIoQk9PU1RfUFBfU0xPVF8zX0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfM19ESUdJVF8xKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzMoKSBCT09TVF9QUF9TTE9UXzNfRElHSVRfMQorIyBlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3Q0LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90NC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFhNGQ4YQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90NC5ocHAKQEAgLTAsMCArMSwyNjcgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMDIuCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zaGFyZWQuaHBwPgorIworIyB1bmRlZiBCT09TVF9QUF9TTE9UXzQKKyMKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzQKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzUKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzcKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzgKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzkKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEwCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xMCA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzkgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF85IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzkgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF85IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzkgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF85IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF84IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOCAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzggMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF84IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOCA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzggNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF84IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfOCA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzggOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF84IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzcgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF83IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzcgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF83IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzcgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF83IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzcgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNiAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF82IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNiAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF82IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNiA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF82IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNiA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzUgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzUgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzUgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzQgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF80IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzQgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF80IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzQgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF80IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzQgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMyAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8zIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMyAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8zIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMyA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8zIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMyA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMiAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMiA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMiA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8xIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8xIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8xIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UXzRfRElHSVRfMTAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNCgpIEJPT1NUX1BQX1NMT1RfQ0NfMTAoQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEwLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfOSwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzgsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF83LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF80LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMywgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF85CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzQoKSBCT09TVF9QUF9TTE9UX0NDXzkoQk9PU1RfUFBfU0xPVF80X0RJR0lUXzksIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF84LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNywgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzRfRElHSVRfOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80KCkgQk9PU1RfUFBfU0xPVF9DQ184KEJPT1NUX1BQX1NMT1RfNF9ESUdJVF84LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNywgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzRfRElHSVRfNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80KCkgQk9PU1RfUFBfU0xPVF9DQ183KEJPT1NUX1BQX1NMT1RfNF9ESUdJVF83LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNiwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzUsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF80LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMywgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF82CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzQoKSBCT09TVF9QUF9TTE9UX0NDXzYoQk9PU1RfUFBfU0xPVF80X0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzRfRElHSVRfNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80KCkgQk9PU1RfUFBfU0xPVF9DQ181KEJPT1NUX1BQX1NMT1RfNF9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzRfRElHSVRfNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80KCkgQk9PU1RfUFBfU0xPVF9DQ180KEJPT1NUX1BQX1NMT1RfNF9ESUdJVF80LCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMywgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzIsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8xKQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8zCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzQoKSBCT09TVF9QUF9TTE9UX0NDXzMoQk9PU1RfUFBfU0xPVF80X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzRfRElHSVRfMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80KCkgQk9PU1RfUFBfU0xPVF9DQ18yKEJPT1NUX1BQX1NMT1RfNF9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzRfRElHSVRfMSkKKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF80KCkgQk9PU1RfUFBfU0xPVF80X0RJR0lUXzEKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90NS5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxNzUzNWQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDUuaHBwCkBAIC0wLDAgKzEsMjY3IEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2hhcmVkLmhwcD4KKyMKKyMgdW5kZWYgQk9PU1RfUFBfU0xPVF81CisjCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zCisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF80CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF81CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF83CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF84CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF85CisjIHVuZGVmIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xMAorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMTAgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzkgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF85IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOSAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzkgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF85IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOSA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzkgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF85ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF85IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOSA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOSA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzkgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzkgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOCAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzggMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF84IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOCAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzggNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF84IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOCA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzggPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzggNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF84ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF84IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfOCA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfOCA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF83IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNyAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzcgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF83IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNyA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzcgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF83IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNyA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNyA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzcgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzcgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF83ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF83IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzYgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82IDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNiAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzYgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82IDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNiA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzYgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF82ID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82IDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNiA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNiA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzYgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzYgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzUgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF81IDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzUgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF81IDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzUgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzUgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF81ID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF81IDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNSA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF80IDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNCAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF80IDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNCA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF80IDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfNCA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfNCA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzQgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF80ID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF80IDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMgMAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zIDEKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSAyCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMyAyCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMgMworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zIDQKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA1CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMyA1CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMgNgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8zID09IDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zIDcKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMyA9PSA4CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMyA4CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzMgPT0gOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMgOQorIyBlbmRpZgorIworIyBpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiAwCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzIgMQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yIDIKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSAzCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiAzCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzIgNAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yIDUKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA2CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiA2CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzIgPT0gNworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzIgNworIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8yID09IDgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yIDgKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMiA9PSA5CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiA5CisjIGVuZGlmCisjCisjIGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xIDAKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSAxCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMSAxCisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEgMgorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xIDMKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA0CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMSA0CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEgNQorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xIDYKKyMgZWxpZiBCT09TVF9QUF9TTE9UX1RFTVBfMSA9PSA3CisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzVfRElHSVRfMSA3CisjIGVsaWYgQk9PU1RfUFBfU0xPVF9URU1QXzEgPT0gOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEgOAorIyBlbGlmIEJPT1NUX1BQX1NMT1RfVEVNUF8xID09IDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xIDkKKyMgZW5kaWYKKyMKKyMgaWYgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEwCisjICAgIGRlZmluZSBCT09TVF9QUF9TTE9UXzUoKSBCT09TVF9QUF9TTE9UX0NDXzEwKEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xMCwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzksIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF84LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfNywgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzVfRElHSVRfOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81KCkgQk9PU1RfUFBfU0xPVF9DQ185KEJPT1NUX1BQX1NMT1RfNV9ESUdJVF85LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfOCwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzcsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNSgpIEJPT1NUX1BQX1NMT1RfQ0NfOChCT09TVF9QUF9TTE9UXzVfRElHSVRfOCwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzcsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNSgpIEJPT1NUX1BQX1NMT1RfQ0NfNyhCT09TVF9QUF9TTE9UXzVfRElHSVRfNywgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzYsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF81LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzVfRElHSVRfNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81KCkgQk9PU1RfUFBfU0xPVF9DQ182KEJPT1NUX1BQX1NMT1RfNV9ESUdJVF82LCBCT09TVF9QUF9TTE9UXzVfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNSgpIEJPT1NUX1BQX1NMT1RfQ0NfNShCT09TVF9QUF9TTE9UXzVfRElHSVRfNSwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNSgpIEJPT1NUX1BQX1NMT1RfQ0NfNChCT09TVF9QUF9TTE9UXzVfRElHSVRfNCwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzMsIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8yLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMSkKKyMgZWxpZiBCT09TVF9QUF9TTE9UXzVfRElHSVRfMworIyAgICBkZWZpbmUgQk9PU1RfUFBfU0xPVF81KCkgQk9PU1RfUFBfU0xPVF9DQ18zKEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8zLCBCT09TVF9QUF9TTE9UXzVfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEpCisjIGVsaWYgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNSgpIEJPT1NUX1BQX1NMT1RfQ0NfMihCT09TVF9QUF9TTE9UXzVfRElHSVRfMiwgQk9PU1RfUFBfU0xPVF81X0RJR0lUXzEpCisjIGVsc2UKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1NMT1RfNSgpIEJPT1NUX1BQX1NMT1RfNV9ESUdJVF8xCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9zbG90LmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci9zbG90L3Nsb3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0N2IwOTcKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9zbG90LmhwcApAQCAtMCwwICsxLDMyIEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDAyLgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1NMT1RfU0xPVF9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9TTE9UX1NMT1RfSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvZGVmLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfQVNTSUdOX1NMT1QgKi8KKyMKKyMgZGVmaW5lIEJPT1NUX1BQX0FTU0lHTl9TTE9UKGkpIEJPT1NUX1BQX0NBVChCT09TVF9QUF9BU1NJR05fU0xPVF8sIGkpCisjCisjIGRlZmluZSBCT09TVF9QUF9BU1NJR05fU0xPVF8xIDxib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDEuaHBwPgorIyBkZWZpbmUgQk9PU1RfUFBfQVNTSUdOX1NMT1RfMiA8Ym9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3QyLmhwcD4KKyMgZGVmaW5lIEJPT1NUX1BQX0FTU0lHTl9TTE9UXzMgPGJvb3N0L3ByZXByb2Nlc3Nvci9zbG90L2RldGFpbC9zbG90My5ocHA+CisjIGRlZmluZSBCT09TVF9QUF9BU1NJR05fU0xPVF80IDxib29zdC9wcmVwcm9jZXNzb3Ivc2xvdC9kZXRhaWwvc2xvdDQuaHBwPgorIyBkZWZpbmUgQk9PU1RfUFBfQVNTSUdOX1NMT1RfNSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3Nsb3QvZGV0YWlsL3Nsb3Q1LmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfU0xPVCAqLworIworIyBkZWZpbmUgQk9PU1RfUFBfU0xPVChpKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfU0xPVF8sIGkpKCkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lYXQuaHBwIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3R1cGxlL2VhdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA4MDE1ZQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lYXQuaHBwCkBAIC0wLDAgKzEsMTA2IEBACisjIC8qIENvcHlyaWdodCAoQykgMjAwMQorIyAgKiBIb3VzZW1hcnF1ZSBPeQorIyAgKiBodHRwOi8vd3d3LmhvdXNlbWFycXVlLmNvbQorIyAgKgorIyAgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKyMgICogYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKyMgICogaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorIyAgKi8KKyMKKyMgLyogUmV2aXNlZCBieSBQYXVsIE1lbnNvbmlkZXMgKDIwMDItMjAxMSkgKi8KKyMgLyogUmV2aXNlZCBieSBFZHdhcmQgRGllbmVyICgyMDExKSAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfVFVQTEVfRUFUX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1RVUExFX0VBVF9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIworIyAvKiBCT09TVF9QUF9FQVQgKi8KKyMKKyMgaWYgQk9PU1RfUFBfVkFSSUFESUNTCisjICAgIGRlZmluZSBCT09TVF9QUF9FQVQoLi4uKQorIyBlbHNlCisjICAgIGRlZmluZSBCT09TVF9QUF9FQVQoeCkKKyMgZW5kaWYKKyMKKyMgLyogQk9PU1RfUFBfVFVQTEVfRUFUICovCisjCisjIGlmIEJPT1NUX1BQX1ZBUklBRElDUworIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUKHNpemUpIEJPT1NUX1BQX0VBVAorIyBlbHNlCisjICAgIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NV0NDKCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVQoc2l6ZSkgQk9PU1RfUFBfVFVQTEVfRUFUX0koc2l6ZSkKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVChzaXplKSBCT09TVF9QUF9UVVBMRV9FQVRfT08oKHNpemUpKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF9PTyhwYXIpIEJPT1NUX1BQX1RVUExFX0VBVF9JICMjIHBhcgorIyAgICBlbmRpZgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUFUX0koc2l6ZSkgQk9PU1RfUFBfVFVQTEVfRUFUXyAjIyBzaXplCisjIGVuZGlmCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMShlMCkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF8yKGUwLCBlMSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF8zKGUwLCBlMSwgZTIpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNChlMCwgZTEsIGUyLCBlMykKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF81KGUwLCBlMSwgZTIsIGUzLCBlNCkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF82KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNikKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF84KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNykKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF85KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMTAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMTEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF8xMihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMTMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMTQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMykKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF8xNShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMTYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMTcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNikKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF8xOChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMTkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMjAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF8yMShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjApCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMjIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMjMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMikKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF8yNChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMjUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMjYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF8yNyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMjgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMjkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF8zMChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMzEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzApCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMzIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF8zMyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMzQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMzUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF8zNihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMzcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfMzgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNykKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF8zOShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNDAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNDEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF80MihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNDMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNDQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MykKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF80NShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNDYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNDcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NikKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF80OChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNDkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNTAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF81MShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTApCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNTIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNTMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MikKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF81NChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNTUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNTYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF81NyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNTgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNTkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF82MChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNjEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjApCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNjIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VBVF82MyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FQVRfNjQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvZWxlbS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ViYTFjNQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9lbGVtLmhwcApAQCAtMCwwICsxLDE5MSBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyLTIwMTEpICovCisjIC8qIFJldmlzZWQgYnkgRWR3YXJkIERpZW5lciAoMjAxMSkgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1RVUExFX0VMRU1fSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfVFVQTEVfRUxFTV9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvb3ZlcmxvYWQuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvcmVtLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3ZhcmlhZGljL2VsZW0uaHBwPgorIworIyBpZiBCT09TVF9QUF9WQVJJQURJQ1MKKyMgICAgaWYgQk9PU1RfUFBfVkFSSUFESUNTX01TVkMKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNKC4uLikgQk9PU1RfUFBfVFVQTEVfRUxFTV9JKEJPT1NUX1BQX09WRVJMT0FEKEJPT1NUX1BQX1RVUExFX0VMRU1fT18sIF9fVkFfQVJHU19fKSwgKF9fVkFfQVJHU19fKSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0kobSwgYXJncykgQk9PU1RfUFBfVFVQTEVfRUxFTV9JSShtLCBhcmdzKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fSUkobSwgYXJncykgQk9PU1RfUFBfQ0FUKG0gIyMgYXJncywpCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNKC4uLikgQk9PU1RfUFBfT1ZFUkxPQUQoQk9PU1RfUFBfVFVQTEVfRUxFTV9PXywgX19WQV9BUkdTX18pKF9fVkFfQVJHU19fKQorIyAgICBlbmRpZgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9PXzIobiwgdHVwbGUpIEJPT1NUX1BQX1ZBUklBRElDX0VMRU0obiwgQk9PU1RfUFBfUkVNIHR1cGxlKQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9PXzMoc2l6ZSwgbiwgdHVwbGUpIEJPT1NUX1BQX1RVUExFX0VMRU1fT18yKG4sIHR1cGxlKQorIyBlbHNlCisjICAgIGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01TVkMoKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU0oc2l6ZSwgbiwgdHVwbGUpIEJPT1NUX1BQX1RVUExFX0VMRU1fSShCT09TVF9QUF9DQVQoQk9PU1RfUFBfVFVQTEVfRUxFTV8sIG4pLCBCT09TVF9QUF9DQVQoQk9PU1RfUFBfQ0FUKEJPT1NUX1BQX1RVUExFX0VMRU1fRV8sIHNpemUpLCB0dXBsZSkpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9JKG0sIGFyZ3MpIEJPT1NUX1BQX1RVUExFX0VMRU1fSUkobSwgYXJncykKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0lJKG0sIGFyZ3MpIEJPT1NUX1BQX0NBVChtICMjIGFyZ3MsKQorIyAgICBlbGlmIEJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01XQ0MoKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU0oc2l6ZSwgbiwgdHVwbGUpIEJPT1NUX1BQX1RVUExFX0VMRU1fSV9PTygoc2l6ZSwgbiwgdHVwbGUpKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fSV9PTyhwYXIpIEJPT1NUX1BQX1RVUExFX0VMRU1fSSAjIyBwYXIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0koc2l6ZSwgbiwgdHVwbGUpIEJPT1NUX1BQX1RVUExFX0VMRU1fSUkoKG4sIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8gIyMgc2l6ZSAjIyB0dXBsZSkpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9JSShwYXIpIEJPT1NUX1BQX1RVUExFX0VMRU1fSUlJX09PKHBhcikKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0lJSV9PTyhwYXIpIEJPT1NUX1BQX1RVUExFX0VMRU1fSUlJICMjIHBhcgorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fSUlJKG4sIGV0dXBsZSkgQk9PU1RfUFBfVFVQTEVfRUxFTV8gIyMgbiAjIyBldHVwbGUKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU0oc2l6ZSwgbiwgdHVwbGUpIEJPT1NUX1BQX1RVUExFX0VMRU1fSShCT09TVF9QUF9DQVQoQk9PU1RfUFBfVFVQTEVfRUxFTV8sIG4pIEJPT1NUX1BQX0NBVChCT09TVF9QUF9UVVBMRV9FTEVNX0VfLCBzaXplKSB0dXBsZSkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0koeCkgeAorIyAgICBlbmRpZgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzEoZTApIChlMCwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8yKGUwLCBlMSkgKGUwLCBlMSwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV8zKGUwLCBlMSwgZTIpIChlMCwgZTEsIGUyLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzQoZTAsIGUxLCBlMiwgZTMpIChlMCwgZTEsIGUyLCBlMywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV81KGUwLCBlMSwgZTIsIGUzLCBlNCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV82KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV84KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNykgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPywgPykKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fRV85KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgpIChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzEwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMTEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMTIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzEzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMTQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMykgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMTUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzE2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMTcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNikgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMTgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzE5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMjAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMjEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzIyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMjMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMikgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMjQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzI1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMjYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMjcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzI4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMjkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMzAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzMxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMzIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMzMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzM0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMzUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMzYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzM3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMzgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNykgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfMzkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzQwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNDEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNDIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzQzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNDQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MykgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNDUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzQ2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNDcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NikgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNDgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzQ5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNTAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNTEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzUyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNTMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MikgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsID8sID8sID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNTQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzU1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsID8sID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNTYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsID8sID8sID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNTcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCA/LCA/LCA/LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzU4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsID8sID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNTkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsID8sID8sID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNjAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5KSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCA/LCA/LCA/LCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzYxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsID8sID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNjIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSkgKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsID8sID8pCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNX0VfNjMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyKSAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCA/KQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV9FXzY0CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUwCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUxCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUyCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUzCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU0CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU1CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU2CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU3CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU4CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU5CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzEwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMTAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMTEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUxMQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8xMihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTEyCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzEzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMTMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMTQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUxNAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8xNShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTE1CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzE2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMTYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMTcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUxNworIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8xOChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTE4CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzE5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMTkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMjAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUyMAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8yMShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTIxCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzIyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMjIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMjMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUyMworIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8yNChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTI0CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzI1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMjUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMjYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUyNgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8yNyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTI3CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzI4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMjgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMjkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUyOQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8zMChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTMwCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzMxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMzEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMzIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUzMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8zMyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTMzCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzM0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMzQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMzUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUzNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8zNihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTM2CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzM3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlMzcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fMzgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUzOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV8zOShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTM5CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzQwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNDAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNDEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU0MQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV80MihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTQyCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzQzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNDMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNDQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU0NAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV80NShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzQ2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNDYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNDcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU0NworIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV80OChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzQ5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNDkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNTAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU1MAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV81MShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTUxCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzUyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNTIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNTMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU1MworIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV81NChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTU0CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzU1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNTUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNTYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU1NgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV81NyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTU3CisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzU4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNTgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNTkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU1OQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV82MChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTYwCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzYxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSBlNjEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX0VMRU1fNjIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGU2MgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfRUxFTV82MyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2MykgZTYzCisjIGVuZGlmCisjCisjIC8qIGRpcmVjdGx5IHVzZWQgZWxzZXdoZXJlIGluIEJvb3N0Li4uICovCisjCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzFfMChhKSBhCisjCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMChhLCBiKSBhCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzJfMShhLCBiKSBiCisjCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMChhLCBiLCBjKSBhCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMShhLCBiLCBjKSBiCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9FTEVNXzNfMihhLCBiLCBjKSBjCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvcmVtLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS9yZW0uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlMzM2MmMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvcmVtLmhwcApAQCAtMCwwICsxLDEzNCBAQAorIyAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBQYXVsIE1lbnNvbmlkZXMgMjAwMi0yMDExLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgKEMpIENvcHlyaWdodCBFZHdhcmQgRGllbmVyIDIwMTEuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlICAgICAgKgorIyAgKiAgICAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1RVUExFX1JFTV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9UVVBMRV9SRU1fSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9mYWNpbGl0aWVzL292ZXJsb2FkLmhwcD4KKyMKKyMgLyogQk9PU1RfUFBfUkVNICovCisjCisjIGlmIEJPT1NUX1BQX1ZBUklBRElDUworIyAgICBkZWZpbmUgQk9PU1RfUFBfUkVNKC4uLikgX19WQV9BUkdTX18KKyMgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfUFBfUkVNKHgpIHgKKyMgZW5kaWYKKyMKKyMgLyogQk9PU1RfUFBfVFVQTEVfUkVNICovCisjCisjIGlmIEJPT1NUX1BQX1ZBUklBRElDUworIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNKHNpemUpIEJPT1NUX1BQX1JFTQorIyBlbHNlCisjICAgIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NV0NDKCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU0oc2l6ZSkgQk9PU1RfUFBfVFVQTEVfUkVNX0koc2l6ZSkKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTShzaXplKSBCT09TVF9QUF9UVVBMRV9SRU1fT08oKHNpemUpKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV9PTyhwYXIpIEJPT1NUX1BQX1RVUExFX1JFTV9JICMjIHBhcgorIyAgICBlbmRpZgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNX0koc2l6ZSkgQk9PU1RfUFBfVFVQTEVfUkVNXyAjIyBzaXplCisjIGVuZGlmCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMShlMCkgZTAKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV8yKGUwLCBlMSkgZTAsIGUxCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMyhlMCwgZTEsIGUyKSBlMCwgZTEsIGUyCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNChlMCwgZTEsIGUyLCBlMykgZTAsIGUxLCBlMiwgZTMKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV81KGUwLCBlMSwgZTIsIGUzLCBlNCkgZTAsIGUxLCBlMiwgZTMsIGU0CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNihlMCwgZTEsIGUyLCBlMywgZTQsIGU1KSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNikgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV84KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNykgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fOShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4KSBlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMTAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTkpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMTEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzEyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMTMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMTQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMykgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzE1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMTYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMTcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNikgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzE4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNykgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMTkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMjAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzIxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMjIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMjMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMikgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzI0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMykgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMjUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMjYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzI3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNikgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMjgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMjkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzMwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMzEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzApIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMzIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzMzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMikgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMzQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMzUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzM2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMzcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fMzgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNykgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzM5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNDAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzkpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNDEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzQyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNDMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNDQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MykgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MworIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzQ1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNDYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNDcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NikgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzQ4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NykgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNDkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNTAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzUxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNTIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNTMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MikgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MgorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzU0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MykgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNTUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNTYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzU3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NikgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNTgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNTkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OAorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzYwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5CisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNjEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjApIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNjIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSkgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNXzYzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MikgZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fNjQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMpIGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzCisjCisjIC8qIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SICovCisjCisjIGlmIEJPT1NUX1BQX1ZBUklBRElDUworIyAgICBpZiBCT09TVF9QUF9WQVJJQURJQ1NfTVNWQworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SKC4uLikgQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1JfSShCT09TVF9QUF9PVkVSTE9BRChCT09TVF9QUF9UVVBMRV9SRU1fQ1RPUl9PXywgX19WQV9BUkdTX18pLCAoX19WQV9BUkdTX18pKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX0kobSwgYXJncykgQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1JfSUkobSwgYXJncykKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fQ1RPUl9JSShtLCBhcmdzKSBCT09TVF9QUF9DQVQobSAjIyBhcmdzLCkKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SKC4uLikgQk9PU1RfUFBfT1ZFUkxPQUQoQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1JfT18sIF9fVkFfQVJHU19fKShfX1ZBX0FSR1NfXykKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX09fMSh0dXBsZSkgQk9PU1RfUFBfUkVNIHR1cGxlCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fQ1RPUl9PXzIoc2l6ZSwgdHVwbGUpIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX09fMSh0dXBsZSkKKyMgZWxzZQorIyAgICBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfRURHKCkKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9SRU1fQ1RPUihzaXplLCB0dXBsZSkgQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1JfSShCT09TVF9QUF9UVVBMRV9SRU0oc2l6ZSksIHR1cGxlKQorIyAgICBlbHNlCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1Ioc2l6ZSwgdHVwbGUpIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX0Qoc2l6ZSwgdHVwbGUpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1JfRChzaXplLCB0dXBsZSkgQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1JfSShCT09TVF9QUF9UVVBMRV9SRU0oc2l6ZSksIHR1cGxlKQorIyAgICBlbmRpZgorIyAgICBpZiB+Qk9PU1RfUFBfQ09ORklHX0ZMQUdTKCkgJiBCT09TVF9QUF9DT05GSUdfTVdDQygpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1JfSShleHQsIHR1cGxlKSBleHQgdHVwbGUKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX0koZXh0LCB0dXBsZSkgQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1JfT08oKGV4dCwgdHVwbGUpKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1JFTV9DVE9SX09PKHBhcikgQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1JfSUkgIyMgcGFyCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfUkVNX0NUT1JfSUkoZXh0LCB0dXBsZSkgZXh0ICMjIHR1cGxlCisjICAgIGVuZGlmCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvdG9fbGlzdC5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvdG9fbGlzdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE5ZDZmZQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci90dXBsZS90b19saXN0LmhwcApAQCAtMCwwICsxLDExNiBAQAorIyAvKiBDb3B5cmlnaHQgKEMpIDIwMDEKKyMgICogSG91c2VtYXJxdWUgT3kKKyMgICogaHR0cDovL3d3dy5ob3VzZW1hcnF1ZS5jb20KKyMgICoKKyMgICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisjICAqIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisjICAqIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyMgICovCisjCisjIC8qIFJldmlzZWQgYnkgUGF1bCBNZW5zb25pZGVzICgyMDAyLTIwMTEpICovCisjIC8qIFJldmlzZWQgYnkgRWR3YXJkIERpZW5lciAoMjAxMSkgKi8KKyMKKyMgLyogU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uLiAqLworIworIyBpZm5kZWYgQk9PU1RfUFJFUFJPQ0VTU09SX1RVUExFX1RPX0xJU1RfSFBQCisjIGRlZmluZSBCT09TVF9QUkVQUk9DRVNTT1JfVFVQTEVfVE9fTElTVF9IUFAKKyMKKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb25maWcvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2ZhY2lsaXRpZXMvb3ZlcmxvYWQuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvdmFyaWFkaWMvc2l6ZS5ocHA+CisjCisjIC8qIEJPT1NUX1BQX1RVUExFX1RPX0xJU1QgKi8KKyMKKyMgaWYgQk9PU1RfUFBfVkFSSUFESUNTCisjICAgIGlmIEJPT1NUX1BQX1ZBUklBRElDU19NU1ZDCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVCguLi4pIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfSShCT09TVF9QUF9PVkVSTE9BRChCT09TVF9QUF9UVVBMRV9UT19MSVNUX09fLCBfX1ZBX0FSR1NfXyksIChfX1ZBX0FSR1NfXykpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF9JKG0sIGFyZ3MpIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfSUkobSwgYXJncykKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUX0lJKG0sIGFyZ3MpIEJPT1NUX1BQX0NBVChtICMjIGFyZ3MsKQorIyAgICBlbHNlCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVCguLi4pIEJPT1NUX1BQX09WRVJMT0FEKEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfT18sIF9fVkFfQVJHU19fKShfX1ZBX0FSR1NfXykKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfT18xKHR1cGxlKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8sIEJPT1NUX1BQX1ZBUklBRElDX1NJWkUgdHVwbGUpIHR1cGxlCisjICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUX09fMihzaXplLCB0dXBsZSkgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF9PXzEodHVwbGUpCisjIGVsc2UKKyMgICAgaWYgfkJPT1NUX1BQX0NPTkZJR19GTEFHUygpICYgQk9PU1RfUFBfQ09ORklHX01XQ0MoKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1Qoc2l6ZSwgdHVwbGUpIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfSShzaXplLCB0dXBsZSkKKyMgICAgICAgIGlmIH5CT09TVF9QUF9DT05GSUdfRkxBR1MoKSAmIEJPT1NUX1BQX0NPTkZJR19NU1ZDKCkKKyMgICAgICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF9JKHMsIHQpIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfICMjIHMgdAorIyAgICAgICAgZWxzZQorIyAgICAgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUX0kocywgdCkgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF9JSShCT09TVF9QUF9UVVBMRV9UT19MSVNUXyAjIyBzIHQpCisjICAgICAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfSUkocmVzKSByZXMKKyMgICAgICAgIGVuZGlmCisjICAgIGVsc2UKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUKHNpemUsIHR1cGxlKSBCT09TVF9QUF9UVVBMRV9UT19MSVNUX09PKChzaXplLCB0dXBsZSkpCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF9PTyhwYXIpIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfSSAjIyBwYXIKKyMgICAgICAgIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUX0kocywgdCkgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8gIyMgcyAjIyB0CisjICAgIGVuZGlmCisjIGVuZGlmCisjCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzEoZTApIChlMCwgQk9PU1RfUFBfTklMKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8yKGUwLCBlMSkgKGUwLCAoZTEsIEJPT1NUX1BQX05JTCkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzMoZTAsIGUxLCBlMikgKGUwLCAoZTEsIChlMiwgQk9PU1RfUFBfTklMKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzQoZTAsIGUxLCBlMiwgZTMpIChlMCwgKGUxLCAoZTIsIChlMywgQk9PU1RfUFBfTklMKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF81KGUwLCBlMSwgZTIsIGUzLCBlNCkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIEJPT1NUX1BQX05JTCkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgQk9PU1RfUFBfTklMKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgQk9PU1RfUFBfTklMKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF84KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNykgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIEJPT1NUX1BQX05JTCkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgQk9PU1RfUFBfTklMKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzEwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMTEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8xMihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzEzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMTQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMykgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8xNShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzE2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMTcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNikgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8xOChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzE5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMjAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8yMShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjApIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzIyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMjMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMikgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8yNChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzI1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMjYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8yNyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzI4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMjkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8zMChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjkpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzMxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMzIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8zMyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzM0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMzUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8zNihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzM3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfMzgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNykgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF8zOShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzQwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNDEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF80MihlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzQzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNDQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MykgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF80NShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgKGU0NCwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzQ2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIChlNDUsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNDcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NikgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCAoZTQ0LCAoZTQ1LCAoZTQ2LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF80OChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgKGU0NCwgKGU0NSwgKGU0NiwgKGU0NywgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzQ5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIChlNDUsIChlNDYsIChlNDcsIChlNDgsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNTAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCAoZTQ0LCAoZTQ1LCAoZTQ2LCAoZTQ3LCAoZTQ4LCAoZTQ5LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF81MShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTApIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgKGU0NCwgKGU0NSwgKGU0NiwgKGU0NywgKGU0OCwgKGU0OSwgKGU1MCwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzUyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIChlNDUsIChlNDYsIChlNDcsIChlNDgsIChlNDksIChlNTAsIChlNTEsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNTMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MikgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCAoZTQ0LCAoZTQ1LCAoZTQ2LCAoZTQ3LCAoZTQ4LCAoZTQ5LCAoZTUwLCAoZTUxLCAoZTUyLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF81NChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgKGU0NCwgKGU0NSwgKGU0NiwgKGU0NywgKGU0OCwgKGU0OSwgKGU1MCwgKGU1MSwgKGU1MiwgKGU1MywgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzU1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIChlNDUsIChlNDYsIChlNDcsIChlNDgsIChlNDksIChlNTAsIChlNTEsIChlNTIsIChlNTMsIChlNTQsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNTYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCAoZTQ0LCAoZTQ1LCAoZTQ2LCAoZTQ3LCAoZTQ4LCAoZTQ5LCAoZTUwLCAoZTUxLCAoZTUyLCAoZTUzLCAoZTU0LCAoZTU1LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF81NyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgKGU0NCwgKGU0NSwgKGU0NiwgKGU0NywgKGU0OCwgKGU0OSwgKGU1MCwgKGU1MSwgKGU1MiwgKGU1MywgKGU1NCwgKGU1NSwgKGU1NiwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzU4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3KSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIChlNDUsIChlNDYsIChlNDcsIChlNDgsIChlNDksIChlNTAsIChlNTEsIChlNTIsIChlNTMsIChlNTQsIChlNTUsIChlNTYsIChlNTcsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNTkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCAoZTQ0LCAoZTQ1LCAoZTQ2LCAoZTQ3LCAoZTQ4LCAoZTQ5LCAoZTUwLCAoZTUxLCAoZTUyLCAoZTUzLCAoZTU0LCAoZTU1LCAoZTU2LCAoZTU3LCAoZTU4LCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF82MChlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTkpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgKGU0NCwgKGU0NSwgKGU0NiwgKGU0NywgKGU0OCwgKGU0OSwgKGU1MCwgKGU1MSwgKGU1MiwgKGU1MywgKGU1NCwgKGU1NSwgKGU1NiwgKGU1NywgKGU1OCwgKGU1OSwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzYxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIChlNDUsIChlNDYsIChlNDcsIChlNDgsIChlNDksIChlNTAsIChlNTEsIChlNTIsIChlNTMsIChlNTQsIChlNTUsIChlNTYsIChlNTcsIChlNTgsIChlNTksIChlNjAsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMgZGVmaW5lIEJPT1NUX1BQX1RVUExFX1RPX0xJU1RfNjIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSkgKGUwLCAoZTEsIChlMiwgKGUzLCAoZTQsIChlNSwgKGU2LCAoZTcsIChlOCwgKGU5LCAoZTEwLCAoZTExLCAoZTEyLCAoZTEzLCAoZTE0LCAoZTE1LCAoZTE2LCAoZTE3LCAoZTE4LCAoZTE5LCAoZTIwLCAoZTIxLCAoZTIyLCAoZTIzLCAoZTI0LCAoZTI1LCAoZTI2LCAoZTI3LCAoZTI4LCAoZTI5LCAoZTMwLCAoZTMxLCAoZTMyLCAoZTMzLCAoZTM0LCAoZTM1LCAoZTM2LCAoZTM3LCAoZTM4LCAoZTM5LCAoZTQwLCAoZTQxLCAoZTQyLCAoZTQzLCAoZTQ0LCAoZTQ1LCAoZTQ2LCAoZTQ3LCAoZTQ4LCAoZTQ5LCAoZTUwLCAoZTUxLCAoZTUyLCAoZTUzLCAoZTU0LCAoZTU1LCAoZTU2LCAoZTU3LCAoZTU4LCAoZTU5LCAoZTYwLCAoZTYxLCBCT09TVF9QUF9OSUwpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKQorIyBkZWZpbmUgQk9PU1RfUFBfVFVQTEVfVE9fTElTVF82MyhlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIpIChlMCwgKGUxLCAoZTIsIChlMywgKGU0LCAoZTUsIChlNiwgKGU3LCAoZTgsIChlOSwgKGUxMCwgKGUxMSwgKGUxMiwgKGUxMywgKGUxNCwgKGUxNSwgKGUxNiwgKGUxNywgKGUxOCwgKGUxOSwgKGUyMCwgKGUyMSwgKGUyMiwgKGUyMywgKGUyNCwgKGUyNSwgKGUyNiwgKGUyNywgKGUyOCwgKGUyOSwgKGUzMCwgKGUzMSwgKGUzMiwgKGUzMywgKGUzNCwgKGUzNSwgKGUzNiwgKGUzNywgKGUzOCwgKGUzOSwgKGU0MCwgKGU0MSwgKGU0MiwgKGU0MywgKGU0NCwgKGU0NSwgKGU0NiwgKGU0NywgKGU0OCwgKGU0OSwgKGU1MCwgKGU1MSwgKGU1MiwgKGU1MywgKGU1NCwgKGU1NSwgKGU1NiwgKGU1NywgKGU1OCwgKGU1OSwgKGU2MCwgKGU2MSwgKGU2MiwgQk9PU1RfUFBfTklMKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpCisjIGRlZmluZSBCT09TVF9QUF9UVVBMRV9UT19MSVNUXzY0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgZTYzKSAoZTAsIChlMSwgKGUyLCAoZTMsIChlNCwgKGU1LCAoZTYsIChlNywgKGU4LCAoZTksIChlMTAsIChlMTEsIChlMTIsIChlMTMsIChlMTQsIChlMTUsIChlMTYsIChlMTcsIChlMTgsIChlMTksIChlMjAsIChlMjEsIChlMjIsIChlMjMsIChlMjQsIChlMjUsIChlMjYsIChlMjcsIChlMjgsIChlMjksIChlMzAsIChlMzEsIChlMzIsIChlMzMsIChlMzQsIChlMzUsIChlMzYsIChlMzcsIChlMzgsIChlMzksIChlNDAsIChlNDEsIChlNDIsIChlNDMsIChlNDQsIChlNDUsIChlNDYsIChlNDcsIChlNDgsIChlNDksIChlNTAsIChlNTEsIChlNTIsIChlNTMsIChlNTQsIChlNTUsIChlNTYsIChlNTcsIChlNTgsIChlNTksIChlNjAsIChlNjEsIChlNjIsIChlNjMsIEJPT1NUX1BQX05JTCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkKKyMKKyMgZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3ByZXByb2Nlc3Nvci92YXJpYWRpYy9lbGVtLmhwcCBiL2Jvb3N0L3ByZXByb2Nlc3Nvci92YXJpYWRpYy9lbGVtLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTM4YTk0Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvcHJlcHJvY2Vzc29yL3ZhcmlhZGljL2VsZW0uaHBwCkBAIC0wLDAgKzEsOTQgQEAKKyMgLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgRWR3YXJkIERpZW5lciAyMDExLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIChDKSBDb3B5cmlnaHQgUGF1bCBNZW5zb25pZGVzIDIwMTEuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSAgICAgICoKKyMgICogICAgIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0ICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisjCisjIC8qIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbi4gKi8KKyMKKyMgaWZuZGVmIEJPT1NUX1BSRVBST0NFU1NPUl9WQVJJQURJQ19FTEVNX0hQUAorIyBkZWZpbmUgQk9PU1RfUFJFUFJPQ0VTU09SX1ZBUklBRElDX0VMRU1fSFBQCisjCisjIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgorIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29uZmlnL2NvbmZpZy5ocHA+CisjCisjIC8qIEJPT1NUX1BQX1ZBUklBRElDX0VMRU0gKi8KKyMKKyMgaWYgQk9PU1RfUFBfVkFSSUFESUNTCisjICAgIGlmIEJPT1NUX1BQX1ZBUklBRElDU19NU1ZDCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTShuLCAuLi4pIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fSShuLF9fVkFfQVJHU19fKQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fSShuLCAuLi4pIEJPT1NUX1BQX0NBVChCT09TVF9QUF9DQVQoQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8sIG4pKF9fVkFfQVJHU19fLCksKQorIyAgICBlbHNlCisjICAgICAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTShuLCAuLi4pIEJPT1NUX1BQX0NBVChCT09TVF9QUF9WQVJJQURJQ19FTEVNXywgbikoX19WQV9BUkdTX18sKQorIyAgICBlbmRpZgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8wKGUwLCAuLi4pIGUwCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzEoZTAsIGUxLCAuLi4pIGUxCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzIoZTAsIGUxLCBlMiwgLi4uKSBlMgorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV8zKGUwLCBlMSwgZTIsIGUzLCAuLi4pIGUzCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzQoZTAsIGUxLCBlMiwgZTMsIGU0LCAuLi4pIGU0CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgLi4uKSBlNQorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV82KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCAuLi4pIGU2CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCAuLi4pIGU3CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgLi4uKSBlOAorIyAgICBkZWZpbmUgQk9PU1RfUFBfVkFSSUFESUNfRUxFTV85KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCAuLi4pIGU5CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzEwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIC4uLikgZTEwCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzExKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgLi4uKSBlMTEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fMTIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIC4uLikgZTEyCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzEzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIC4uLikgZTEzCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzE0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgLi4uKSBlMTQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fMTUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIC4uLikgZTE1CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzE2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIC4uLikgZTE2CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzE3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgLi4uKSBlMTcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fMTgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIC4uLikgZTE4CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzE5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIC4uLikgZTE5CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzIwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgLi4uKSBlMjAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fMjEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIC4uLikgZTIxCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzIyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIC4uLikgZTIyCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzIzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgLi4uKSBlMjMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fMjQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIC4uLikgZTI0CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzI1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIC4uLikgZTI1CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzI2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgLi4uKSBlMjYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fMjcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIC4uLikgZTI3CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzI4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIC4uLikgZTI4CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzI5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgLi4uKSBlMjkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fMzAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIC4uLikgZTMwCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzMxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIC4uLikgZTMxCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzMyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgLi4uKSBlMzIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fMzMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIC4uLikgZTMzCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzM0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIC4uLikgZTM0CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzM1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgLi4uKSBlMzUKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fMzYoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIC4uLikgZTM2CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzM3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIC4uLikgZTM3CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzM4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgLi4uKSBlMzgKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fMzkoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIC4uLikgZTM5CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzQwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIC4uLikgZTQwCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzQxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgLi4uKSBlNDEKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fNDIoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIC4uLikgZTQyCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzQzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIC4uLikgZTQzCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzQ0KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgLi4uKSBlNDQKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fNDUoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIC4uLikgZTQ1CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzQ2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIC4uLikgZTQ2CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzQ3KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgLi4uKSBlNDcKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fNDgoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIC4uLikgZTQ4CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzQ5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIC4uLikgZTQ5CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzUwKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgLi4uKSBlNTAKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fNTEoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIC4uLikgZTUxCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzUyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIC4uLikgZTUyCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzUzKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgLi4uKSBlNTMKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fNTQoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIC4uLikgZTU0CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzU1KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIC4uLikgZTU1CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzU2KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgLi4uKSBlNTYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fNTcoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIC4uLikgZTU3CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzU4KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIC4uLikgZTU4CisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzU5KGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgLi4uKSBlNTkKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fNjAoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIC4uLikgZTYwCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzYxKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIC4uLikgZTYxCisjICAgIGRlZmluZSBCT09TVF9QUF9WQVJJQURJQ19FTEVNXzYyKGUwLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2LCBlNywgZTgsIGU5LCBlMTAsIGUxMSwgZTEyLCBlMTMsIGUxNCwgZTE1LCBlMTYsIGUxNywgZTE4LCBlMTksIGUyMCwgZTIxLCBlMjIsIGUyMywgZTI0LCBlMjUsIGUyNiwgZTI3LCBlMjgsIGUyOSwgZTMwLCBlMzEsIGUzMiwgZTMzLCBlMzQsIGUzNSwgZTM2LCBlMzcsIGUzOCwgZTM5LCBlNDAsIGU0MSwgZTQyLCBlNDMsIGU0NCwgZTQ1LCBlNDYsIGU0NywgZTQ4LCBlNDksIGU1MCwgZTUxLCBlNTIsIGU1MywgZTU0LCBlNTUsIGU1NiwgZTU3LCBlNTgsIGU1OSwgZTYwLCBlNjEsIGU2MiwgLi4uKSBlNjIKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX0VMRU1fNjMoZTAsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYsIGU3LCBlOCwgZTksIGUxMCwgZTExLCBlMTIsIGUxMywgZTE0LCBlMTUsIGUxNiwgZTE3LCBlMTgsIGUxOSwgZTIwLCBlMjEsIGUyMiwgZTIzLCBlMjQsIGUyNSwgZTI2LCBlMjcsIGUyOCwgZTI5LCBlMzAsIGUzMSwgZTMyLCBlMzMsIGUzNCwgZTM1LCBlMzYsIGUzNywgZTM4LCBlMzksIGU0MCwgZTQxLCBlNDIsIGU0MywgZTQ0LCBlNDUsIGU0NiwgZTQ3LCBlNDgsIGU0OSwgZTUwLCBlNTEsIGU1MiwgZTUzLCBlNTQsIGU1NSwgZTU2LCBlNTcsIGU1OCwgZTU5LCBlNjAsIGU2MSwgZTYyLCBlNjMsIC4uLikgZTYzCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9wcmVwcm9jZXNzb3IvdmFyaWFkaWMvc2l6ZS5ocHAgYi9ib29zdC9wcmVwcm9jZXNzb3IvdmFyaWFkaWMvc2l6ZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjkyYTVmZgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ByZXByb2Nlc3Nvci92YXJpYWRpYy9zaXplLmhwcApAQCAtMCwwICsxLDMwIEBACisjIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IEVkd2FyZCBEaWVuZXIgMjAxMS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAoQykgQ29weXJpZ2h0IFBhdWwgTWVuc29uaWRlcyAyMDExLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgICAgICAqCisjICAqICAgICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisjICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworIworIyAvKiBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24uICovCisjCisjIGlmbmRlZiBCT09TVF9QUkVQUk9DRVNTT1JfVkFSSUFESUNfU0laRV9IUFAKKyMgZGVmaW5lIEJPT1NUX1BSRVBST0NFU1NPUl9WQVJJQURJQ19TSVpFX0hQUAorIworIyBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY2F0LmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbmZpZy9jb25maWcuaHBwPgorIworIyAvKiBCT09TVF9QUF9WQVJJQURJQ19TSVpFICovCisjCisjIGlmIEJPT1NUX1BQX1ZBUklBRElDUworIyAgICBpZiBCT09TVF9QUF9WQVJJQURJQ1NfTVNWQworIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX1NJWkUoLi4uKSBCT09TVF9QUF9DQVQoQk9PU1RfUFBfVkFSSUFESUNfU0laRV9JKF9fVkFfQVJHU19fLCA2NCwgNjMsIDYyLCA2MSwgNjAsIDU5LCA1OCwgNTcsIDU2LCA1NSwgNTQsIDUzLCA1MiwgNTEsIDUwLCA0OSwgNDgsIDQ3LCA0NiwgNDUsIDQ0LCA0MywgNDIsIDQxLCA0MCwgMzksIDM4LCAzNywgMzYsIDM1LCAzNCwgMzMsIDMyLCAzMSwgMzAsIDI5LCAyOCwgMjcsIDI2LCAyNSwgMjQsIDIzLCAyMiwgMjEsIDIwLCAxOSwgMTgsIDE3LCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwpLCkKKyMgICAgZWxzZQorIyAgICAgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX1NJWkUoLi4uKSBCT09TVF9QUF9WQVJJQURJQ19TSVpFX0koX19WQV9BUkdTX18sIDY0LCA2MywgNjIsIDYxLCA2MCwgNTksIDU4LCA1NywgNTYsIDU1LCA1NCwgNTMsIDUyLCA1MSwgNTAsIDQ5LCA0OCwgNDcsIDQ2LCA0NSwgNDQsIDQzLCA0MiwgNDEsIDQwLCAzOSwgMzgsIDM3LCAzNiwgMzUsIDM0LCAzMywgMzIsIDMxLCAzMCwgMjksIDI4LCAyNywgMjYsIDI1LCAyNCwgMjMsIDIyLCAyMSwgMjAsIDE5LCAxOCwgMTcsIDE2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCkKKyMgICAgZW5kaWYKKyMgICAgZGVmaW5lIEJPT1NUX1BQX1ZBUklBRElDX1NJWkVfSShlMCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNiwgZTcsIGU4LCBlOSwgZTEwLCBlMTEsIGUxMiwgZTEzLCBlMTQsIGUxNSwgZTE2LCBlMTcsIGUxOCwgZTE5LCBlMjAsIGUyMSwgZTIyLCBlMjMsIGUyNCwgZTI1LCBlMjYsIGUyNywgZTI4LCBlMjksIGUzMCwgZTMxLCBlMzIsIGUzMywgZTM0LCBlMzUsIGUzNiwgZTM3LCBlMzgsIGUzOSwgZTQwLCBlNDEsIGU0MiwgZTQzLCBlNDQsIGU0NSwgZTQ2LCBlNDcsIGU0OCwgZTQ5LCBlNTAsIGU1MSwgZTUyLCBlNTMsIGU1NCwgZTU1LCBlNTYsIGU1NywgZTU4LCBlNTksIGU2MCwgZTYxLCBlNjIsIGU2Mywgc2l6ZSwgLi4uKSBzaXplCisjIGVuZGlmCisjCisjIGVuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9zaGFyZWRfcHRyLmhwcCBiL2Jvb3N0L3NoYXJlZF9wdHIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMTk3OGMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zaGFyZWRfcHRyLmhwcApAQCAtMCwwICsxLDE5IEBACisjaWZuZGVmIEJPT1NUX1NIQVJFRF9QVFJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NIQVJFRF9QVFJfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgc2hhcmVkX3B0ci5ocHAKKy8vCisvLyAgKEMpIENvcHlyaWdodCBHcmVnIENvbHZpbiBhbmQgQmVtYW4gRGF3ZXMgMTk5OCwgMTk5OS4KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwOCBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvc21hcnRfcHRyL3NoYXJlZF9wdHIuaHRtIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKworI2luY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9zaGFyZWRfcHRyLmhwcD4KKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NIQVJFRF9QVFJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9zbWFydF9wdHIvYWxsb2NhdGVfc2hhcmVkX2FycmF5LmhwcCBiL2Jvb3N0L3NtYXJ0X3B0ci9hbGxvY2F0ZV9zaGFyZWRfYXJyYXkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4YWQ1ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvYWxsb2NhdGVfc2hhcmVkX2FycmF5LmhwcApAQCAtMCwwICsxLDI1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiBHbGVuIEpvc2VwaCBGZXJuYW5kZXMKKyAqIGdsZW5mZSBhdCBsaXZlIGRvdCBjb20KKyAqCisgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKyAqIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dAorICogb3IgY29weSBhdCBodHRwOi8vYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyAqLworI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfQUxMT0NBVEVfU0hBUkVEX0FSUkFZX0hQUAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfQUxMT0NBVEVfU0hBUkVEX0FSUkFZX0hQUAorCisjaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL3NoYXJlZF9wdHIuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYWxsb2NhdGVfYXJyYXlfaGVscGVyLmhwcD4KKyNpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL2FycmF5X2RlbGV0ZXIuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXJyYXlfdHJhaXRzLmhwcD4KKyNpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2lmX2FycmF5LmhwcD4KKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVCkKKyNpbmNsdWRlIDxpbml0aWFsaXplcl9saXN0PgorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQT4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfYXJyYXk8VD46OnR5cGUKKyAgICBhbGxvY2F0ZV9zaGFyZWQoY29uc3QgQSYgYWxsb2NhdG9yLCBzdGQ6OnNpemVfdCBzaXplKSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gc2l6ZSAqIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQxPjo6c2l6ZTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW10+IGExKGFsbG9jYXRvciwgbjEsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4gZDEobjEpOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+KiBEMjsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPmluaXQocDIpOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKSAmJiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBLCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9hcnJheTxUPjo6dHlwZQorICAgIGFsbG9jYXRlX3NoYXJlZChjb25zdCBBJiBhbGxvY2F0b3IsIHN0ZDo6c2l6ZV90IHNpemUsIEFyZ3MmJi4uLiBhcmdzKSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gc2l6ZSAqIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQxPjo6c2l6ZTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW10+IGExKGFsbG9jYXRvciwgbjEsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4gZDEobjEpOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+KiBEMjsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPmluaXQocDIsIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QXJncz4oYXJncykuLi4pOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQSwgdHlwZW5hbWUuLi4gQXJncz4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfc2l6ZV9hcnJheTxUPjo6dHlwZQorICAgIGFsbG9jYXRlX3NoYXJlZChjb25zdCBBJiBhbGxvY2F0b3IsIEFyZ3MmJi4uLiBhcmdzKSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIGVudW0geworICAgICAgICAgICAgTiA9IG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQ+OjpzaXplCisgICAgICAgIH07CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUMltOXT4gYTEoYWxsb2NhdG9yLCAmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiBkMTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltOXT4qIEQyOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+aW5pdChwMiwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyNlbmRpZgorI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1VOSUZJRURfSU5JVElBTElaQVRJT05fU1lOVEFYKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEE+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX3NpemVfYXJyYXk8VD46OnR5cGUKKyAgICBhbGxvY2F0ZV9zaGFyZWQoY29uc3QgQSYgYWxsb2NhdG9yLCBjb25zdCBUJiBsaXN0KSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIHR5cGVkZWYgY29uc3QgVDIgVDM7CisgICAgICAgIGVudW0geworICAgICAgICAgICAgTiA9IG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQ+OjpzaXplCisgICAgICAgIH07CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIFQzKiBwMyA9IDA7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUMltOXT4gYTEoYWxsb2NhdG9yLCAmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiBkMTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltOXT4qIEQyOworICAgICAgICBwMyA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDMqPihsaXN0KTsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPmluaXRfbGlzdChwMiwgcDMpOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQT4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfYXJyYXk8VD46OnR5cGUKKyAgICBhbGxvY2F0ZV9zaGFyZWQoY29uc3QgQSYgYWxsb2NhdG9yLCBzdGQ6OnNpemVfdCBzaXplLAorICAgICAgICBjb25zdCB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSYgbGlzdCkgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlIFQxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VDE+Ojp0eXBlIFQyOworICAgICAgICB0eXBlZGVmIGNvbnN0IFQyIFQzOworICAgICAgICBlbnVtIHsKKyAgICAgICAgICAgIE0gPSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b3RhbDxUMT46OnNpemUKKyAgICAgICAgfTsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgVDMqIHAzID0gMDsKKyAgICAgICAgc3RkOjpzaXplX3QgbjEgPSBNICogc2l6ZTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW10+IGExKGFsbG9jYXRvciwgbjEsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4gZDEobjEpOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+KiBEMjsKKyAgICAgICAgcDMgPSByZWludGVycHJldF9jYXN0PFQzKj4obGlzdCk7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT50ZW1wbGF0ZSBpbml0X2xpc3Q8TT4ocDIsIHAzKTsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+KHMxLCBwMSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEE+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX3NpemVfYXJyYXk8VD46OnR5cGUKKyAgICBhbGxvY2F0ZV9zaGFyZWQoY29uc3QgQSYgYWxsb2NhdG9yLAorICAgICAgICBjb25zdCB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSYgbGlzdCkgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlIFQxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VDE+Ojp0eXBlIFQyOworICAgICAgICB0eXBlZGVmIGNvbnN0IFQyIFQzOworICAgICAgICBlbnVtIHsKKyAgICAgICAgICAgIE0gPSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b3RhbDxUMT46OnNpemUsCisgICAgICAgICAgICBOID0gbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VD46OnNpemUKKyAgICAgICAgfTsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgVDMqIHAzID0gMDsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW05dPiBhMShhbGxvY2F0b3IsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbTl0+IGQxOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiogRDI7CisgICAgICAgIHAzID0gcmVpbnRlcnByZXRfY2FzdDxUMyo+KGxpc3QpOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+dGVtcGxhdGUgaW5pdF9saXN0PE0+KHAyLCBwMyk7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9IRFJfSU5JVElBTElaRVJfTElTVCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9hcnJheTxUPjo6dHlwZQorICAgIGFsbG9jYXRlX3NoYXJlZChjb25zdCBBJiBhbGxvY2F0b3IsCisgICAgICAgIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDx0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZT4gbGlzdCkgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlIFQxOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2Jhc2U8VDE+Ojp0eXBlIFQyOworICAgICAgICB0eXBlZGVmIGNvbnN0IFQyIFQzOworICAgICAgICBUMSogcDEgPSAwOworICAgICAgICBUMiogcDIgPSAwOworICAgICAgICBUMyogcDMgPSAwOworICAgICAgICBzdGQ6OnNpemVfdCBuMSA9IGxpc3Quc2l6ZSgpICogbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VDE+OjpzaXplOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphbGxvY2F0ZV9hcnJheV9oZWxwZXI8QSwgVDJbXT4gYTEoYWxsb2NhdG9yLCBuMSwgJnAyKTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltdPiBkMShuMSk7CisgICAgICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+IHMxKHAxLCBkMSwgYTEpOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4qIEQyOworICAgICAgICBwMyA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDMqPihsaXN0LmJlZ2luKCkpOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+aW5pdF9saXN0KHAyLCBwMyk7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyNlbmRpZgorI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEE+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX2FycmF5PFQ+Ojp0eXBlCisgICAgYWxsb2NhdGVfc2hhcmVkKGNvbnN0IEEmIGFsbG9jYXRvciwgc3RkOjpzaXplX3Qgc2l6ZSwKKyAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUPjo6dHlwZSYmIHZhbHVlKSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gc2l6ZSAqIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQxPjo6c2l6ZTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW10+IGExKGFsbG9jYXRvciwgbjEsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4gZDEobjEpOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+KiBEMjsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPmluaXQocDIsIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8VDI+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9zaXplX2FycmF5PFQ+Ojp0eXBlCisgICAgYWxsb2NhdGVfc2hhcmVkKGNvbnN0IEEmIGFsbG9jYXRvciwKKyAgICAgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUPjo6dHlwZSYmIHZhbHVlKSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIGVudW0geworICAgICAgICAgICAgTiA9IG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQ+OjpzaXplCisgICAgICAgIH07CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUMltOXT4gYTEoYWxsb2NhdG9yLCAmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiBkMTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltOXT4qIEQyOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+aW5pdChwMiwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxUMj4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+KHMxLCBwMSk7CisgICAgfQorI2VuZGlmCisjZW5kaWYKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9hcnJheTxUPjo6dHlwZQorICAgIGFsbG9jYXRlX3NoYXJlZF9ub2luaXQoY29uc3QgQSYgYWxsb2NhdG9yLCBzdGQ6OnNpemVfdCBzaXplKSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gc2l6ZSAqIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQxPjo6c2l6ZTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW10+IGExKGFsbG9jYXRvciwgbjEsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4gZDEobjEpOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+KiBEMjsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPm5vaW5pdChwMik7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBBPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9zaXplX2FycmF5PFQ+Ojp0eXBlCisgICAgYWxsb2NhdGVfc2hhcmVkX25vaW5pdChjb25zdCBBJiBhbGxvY2F0b3IpIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSBUMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQxPjo6dHlwZSBUMjsKKyAgICAgICAgZW51bSB7CisgICAgICAgICAgICBOID0gbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VD46OnNpemUKKyAgICAgICAgfTsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFQyW05dPiBhMShhbGxvY2F0b3IsICZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbTl0+IGQxOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiogRDI7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT5ub2luaXQocDIpOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2JhZF93ZWFrX3B0ci5ocHAgYi9ib29zdC9zbWFydF9wdHIvYmFkX3dlYWtfcHRyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzExMTFiCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2JhZF93ZWFrX3B0ci5ocHAKQEAgLTAsMCArMSw1OSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfQkFEX1dFQUtfUFRSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfQkFEX1dFQUtfUFRSX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBib29zdC9zbWFydF9wdHIvYmFkX3dlYWtfcHRyLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIsIDIwMDMgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaW5jbHVkZSA8ZXhjZXB0aW9uPgorCisjaWZkZWYgX19CT1JMQU5EQ19fCisjIHByYWdtYSB3YXJuIC04MDI2ICAgICAvLyBGdW5jdGlvbnMgd2l0aCBleGNlcC4gc3BlYy4gYXJlIG5vdCBleHBhbmRlZCBpbmxpbmUKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworLy8gVGhlIHN0YW5kYXJkIGxpYnJhcnkgdGhhdCBjb21lcyB3aXRoIEJvcmxhbmQgQysrIDUuNS4xLCA1LjYuNAorLy8gZGVmaW5lcyBzdGQ6OmV4Y2VwdGlvbiBhbmQgaXRzIG1lbWJlcnMgYXMgaGF2aW5nIEMgY2FsbGluZworLy8gY29udmVudGlvbiAoLXBjKS4gV2hlbiB0aGUgZGVmaW5pdGlvbiBvZiBiYWRfd2Vha19wdHIKKy8vIGlzIGNvbXBpbGVkIHdpdGggLXBzLCB0aGUgY29tcGlsZXIgaXNzdWVzIGFuIGVycm9yLgorLy8gSGVuY2UsIHRoZSB0ZW1wb3JhcnkgI3ByYWdtYSBvcHRpb24gLXBjIGJlbG93LgorCisjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIF9fQk9STEFORENfXyA8PSAweDU2NAorIyBwcmFnbWEgb3B0aW9uIHB1c2ggLXBjCisjZW5kaWYKKworY2xhc3MgYmFkX3dlYWtfcHRyOiBwdWJsaWMgc3RkOjpleGNlcHRpb24KK3sKK3B1YmxpYzoKKworICAgIHZpcnR1YWwgY2hhciBjb25zdCAqIHdoYXQoKSBjb25zdCB0aHJvdygpCisgICAgeworICAgICAgICByZXR1cm4gInRyMTo6YmFkX3dlYWtfcHRyIjsKKyAgICB9Cit9OworCisjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIF9fQk9STEFORENfXyA8PSAweDU2NAorIyBwcmFnbWEgb3B0aW9uIHBvcAorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpZmRlZiBfX0JPUkxBTkRDX18KKyMgcHJhZ21hIHdhcm4gLjgwMjYgICAgIC8vIEZ1bmN0aW9ucyB3aXRoIGV4Y2VwLiBzcGVjLiBhcmUgbm90IGV4cGFuZGVkIGlubGluZQorI2VuZGlmCisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfQkFEX1dFQUtfUFRSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hbGxvY2F0ZV9hcnJheV9oZWxwZXIuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hbGxvY2F0ZV9hcnJheV9oZWxwZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNTljMDkKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL2FsbG9jYXRlX2FycmF5X2hlbHBlci5ocHAKQEAgLTAsMCArMSwxNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgR2xlbiBKb3NlcGggRmVybmFuZGVzIAorICogZ2xlbmZlIGF0IGxpdmUgZG90IGNvbQorICoKKyAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCAKKyAqIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCAKKyAqIG9yIGNvcHkgYXQgaHR0cDovL2Jvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgKi8KKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BTExPQ0FURV9BUlJBWV9IRUxQRVJfSFBQCisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfQUxMT0NBVEVfQVJSQVlfSEVMUEVSX0hQUAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvYWxpZ25tZW50X29mLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQSwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgWSA9IGNoYXI+CisgICAgICAgIGNsYXNzIGFsbG9jYXRlX2FycmF5X2hlbHBlcjsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQSwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgWT4KKyAgICAgICAgY2xhc3MgYWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFRbXSwgWT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQTksIHR5cGVuYW1lIFQ5LCB0eXBlbmFtZSBZOT4KKyAgICAgICAgICAgIGZyaWVuZCBjbGFzcyBhbGxvY2F0ZV9hcnJheV9oZWxwZXI7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEE6OnRlbXBsYXRlIHJlYmluZDxZPiAgIDo6b3RoZXIgQTI7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEE6OnRlbXBsYXRlIHJlYmluZDxjaGFyPjo6b3RoZXIgQTM7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTI6OnZhbHVlX3R5cGUgICAgICB2YWx1ZV90eXBlOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBMjo6cG9pbnRlciAgICAgICAgIHBvaW50ZXI7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEEyOjpjb25zdF9wb2ludGVyICAgY29uc3RfcG9pbnRlcjsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTI6OnJlZmVyZW5jZSAgICAgICByZWZlcmVuY2U7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEEyOjpjb25zdF9yZWZlcmVuY2UgY29uc3RfcmVmZXJlbmNlOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBMjo6c2l6ZV90eXBlICAgICAgIHNpemVfdHlwZTsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTI6OmRpZmZlcmVuY2VfdHlwZSBkaWZmZXJlbmNlX3R5cGU7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgc3RydWN0IHJlYmluZCB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBhbGxvY2F0ZV9hcnJheV9oZWxwZXI8QSwgVFtdLCBVPiBvdGhlcjsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBhbGxvY2F0ZV9hcnJheV9oZWxwZXIoY29uc3QgQSYgYWxsb2NhdG9yLCBzdGQ6OnNpemVfdCBzaXplLCBUKiogZGF0YSkKKyAgICAgICAgICAgICAgICA6IGFsbG9jYXRvcihhbGxvY2F0b3IpLAorICAgICAgICAgICAgICAgICAgc2l6ZShzaXplb2YoVCkgKiBzaXplKSwKKyAgICAgICAgICAgICAgICAgIGRhdGEoZGF0YSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgICAgICAgICAgIGFsbG9jYXRlX2FycmF5X2hlbHBlcihjb25zdCBhbGxvY2F0ZV9hcnJheV9oZWxwZXI8QSwgVFtdLCBVPiYgb3RoZXIpIAorICAgICAgICAgICAgICAgIDogYWxsb2NhdG9yKG90aGVyLmFsbG9jYXRvciksCisgICAgICAgICAgICAgICAgICBzaXplKG90aGVyLnNpemUpLAorICAgICAgICAgICAgICAgICAgZGF0YShvdGhlci5kYXRhKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb2ludGVyIGFkZHJlc3MocmVmZXJlbmNlIHZhbHVlKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRvci5hZGRyZXNzKHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0X3BvaW50ZXIgYWRkcmVzcyhjb25zdF9yZWZlcmVuY2UgdmFsdWUpIGNvbnN0IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdG9yLmFkZHJlc3ModmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2l6ZV90eXBlIG1heF9zaXplKCkgY29uc3QgeworICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0b3IubWF4X3NpemUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvaW50ZXIgYWxsb2NhdGUoc2l6ZV90eXBlIGNvdW50LCBjb25zdCB2b2lkKiB2YWx1ZSA9IDApIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBhMSA9IG5kbmJvb3N0OjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlOworICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gY291bnQgKiBzaXplb2YoWSkgKyBhMSAtIDE7CisgICAgICAgICAgICAgICAgY2hhciogIHAxID0gQTMoYWxsb2NhdG9yKS5hbGxvY2F0ZShuMSArIHNpemUsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBjaGFyKiAgcDIgPSBwMSArIG4xOworICAgICAgICAgICAgICAgIHdoaWxlIChzdGQ6OnNpemVfdChwMikgJSBhMSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHAyLS07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICpkYXRhID0gcmVpbnRlcnByZXRfY2FzdDxUKj4ocDIpOworICAgICAgICAgICAgICAgIHJldHVybiAgcmVpbnRlcnByZXRfY2FzdDxZKj4ocDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdm9pZCBkZWFsbG9jYXRlKHBvaW50ZXIgbWVtb3J5LCBzaXplX3R5cGUgY291bnQpIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBhMSA9IG5kbmJvb3N0OjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlOworICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gY291bnQgKiBzaXplb2YoWSkgKyBhMSAtIDE7CisgICAgICAgICAgICAgICAgY2hhciogIHAxID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obWVtb3J5KTsKKyAgICAgICAgICAgICAgICBBMyhhbGxvY2F0b3IpLmRlYWxsb2NhdGUocDEsIG4xICsgc2l6ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIGNvbnN0cnVjdChwb2ludGVyIG1lbW9yeSwgY29uc3QgWSYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBhbGxvY2F0b3IuY29uc3RydWN0KG1lbW9yeSwgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdm9pZCBkZXN0cm95KHBvaW50ZXIgbWVtb3J5KSB7CisgICAgICAgICAgICAgICAgYWxsb2NhdG9yLmRlc3Ryb3kobWVtb3J5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgYWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFRbXSwgVT4mIG90aGVyKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRvciA9PSBvdGhlci5hbGxvY2F0b3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUW10sIFU+JiBvdGhlcikgY29uc3QgeworICAgICAgICAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgCisgICAgICAgICAgICB9CisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBBMiBhbGxvY2F0b3I7CisgICAgICAgICAgICBzdGQ6OnNpemVfdCBzaXplOworICAgICAgICAgICAgVCoqIGRhdGE7CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEEsIHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IE4sIHR5cGVuYW1lIFk+CisgICAgICAgIGNsYXNzIGFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUW05dLCBZPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBBOSwgdHlwZW5hbWUgVDksIHR5cGVuYW1lIFk5PgorICAgICAgICAgICAgZnJpZW5kIGNsYXNzIGFsbG9jYXRlX2FycmF5X2hlbHBlcjsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTo6dGVtcGxhdGUgcmViaW5kPFk+ICAgOjpvdGhlciBBMjsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTo6dGVtcGxhdGUgcmViaW5kPGNoYXI+OjpvdGhlciBBMzsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBMjo6dmFsdWVfdHlwZSAgICAgIHZhbHVlX3R5cGU7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEEyOjpwb2ludGVyICAgICAgICAgcG9pbnRlcjsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTI6OmNvbnN0X3BvaW50ZXIgICBjb25zdF9wb2ludGVyOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBMjo6cmVmZXJlbmNlICAgICAgIHJlZmVyZW5jZTsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTI6OmNvbnN0X3JlZmVyZW5jZSBjb25zdF9yZWZlcmVuY2U7CisgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEEyOjpzaXplX3R5cGUgICAgICAgc2l6ZV90eXBlOworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBBMjo6ZGlmZmVyZW5jZV90eXBlIGRpZmZlcmVuY2VfdHlwZTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICBzdHJ1Y3QgcmViaW5kIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIGFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUW05dLCBVPiBvdGhlcjsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBhbGxvY2F0ZV9hcnJheV9oZWxwZXIoY29uc3QgQSYgYWxsb2NhdG9yLCBUKiogZGF0YSkKKyAgICAgICAgICAgICAgICA6IGFsbG9jYXRvcihhbGxvY2F0b3IpLAorICAgICAgICAgICAgICAgICAgZGF0YShkYXRhKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBVPgorICAgICAgICAgICAgYWxsb2NhdGVfYXJyYXlfaGVscGVyKGNvbnN0IGFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUW05dLCBVPiYgb3RoZXIpIAorICAgICAgICAgICAgICAgIDogYWxsb2NhdG9yKG90aGVyLmFsbG9jYXRvciksCisgICAgICAgICAgICAgICAgICBkYXRhKG90aGVyLmRhdGEpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvaW50ZXIgYWRkcmVzcyhyZWZlcmVuY2UgdmFsdWUpIGNvbnN0IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdG9yLmFkZHJlc3ModmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29uc3RfcG9pbnRlciBhZGRyZXNzKGNvbnN0X3JlZmVyZW5jZSB2YWx1ZSkgY29uc3QgeworICAgICAgICAgICAgICAgIHJldHVybiBhbGxvY2F0b3IuYWRkcmVzcyh2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzaXplX3R5cGUgbWF4X3NpemUoKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFsbG9jYXRvci5tYXhfc2l6ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9pbnRlciBhbGxvY2F0ZShzaXplX3R5cGUgY291bnQsIGNvbnN0IHZvaWQqIHZhbHVlID0gMCkgeworICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGExID0gbmRuYm9vc3Q6OmFsaWdubWVudF9vZjxUPjo6dmFsdWU7CisgICAgICAgICAgICAgICAgc3RkOjpzaXplX3QgbjEgPSBjb3VudCAqIHNpemVvZihZKSArIGExIC0gMTsKKyAgICAgICAgICAgICAgICBjaGFyKiAgcDEgPSBBMyhhbGxvY2F0b3IpLmFsbG9jYXRlKG4xICsgTjEsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBjaGFyKiAgcDIgPSBwMSArIG4xOworICAgICAgICAgICAgICAgIHdoaWxlIChzdGQ6OnNpemVfdChwMikgJSBhMSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHAyLS07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICpkYXRhID0gcmVpbnRlcnByZXRfY2FzdDxUKj4ocDIpOworICAgICAgICAgICAgICAgIHJldHVybiAgcmVpbnRlcnByZXRfY2FzdDxZKj4ocDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdm9pZCBkZWFsbG9jYXRlKHBvaW50ZXIgbWVtb3J5LCBzaXplX3R5cGUgY291bnQpIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBhMSA9IG5kbmJvb3N0OjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlOworICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gY291bnQgKiBzaXplb2YoWSkgKyBhMSAtIDE7CisgICAgICAgICAgICAgICAgY2hhciogIHAxID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obWVtb3J5KTsKKyAgICAgICAgICAgICAgICBBMyhhbGxvY2F0b3IpLmRlYWxsb2NhdGUocDEsIG4xICsgTjEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdm9pZCBjb25zdHJ1Y3QocG9pbnRlciBtZW1vcnksIGNvbnN0IFkmIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgYWxsb2NhdG9yLmNvbnN0cnVjdChtZW1vcnksIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZvaWQgZGVzdHJveShwb2ludGVyIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIGFsbG9jYXRvci5kZXN0cm95KG1lbW9yeSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IGFsbG9jYXRlX2FycmF5X2hlbHBlcjxBLCBUW05dLCBVPiYgb3RoZXIpIGNvbnN0IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYWxsb2NhdG9yID09IG90aGVyLmFsbG9jYXRvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgYWxsb2NhdGVfYXJyYXlfaGVscGVyPEEsIFRbTl0sIFU+JiBvdGhlcikgY29uc3QgeworICAgICAgICAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgCisgICAgICAgICAgICB9CisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBlbnVtIHsKKyAgICAgICAgICAgICAgICBOMSA9IE4gKiBzaXplb2YoVCkKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBBMiBhbGxvY2F0b3I7CisgICAgICAgICAgICBUKiogZGF0YTsKKyAgICAgICAgfTsKKyAgICB9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV9kZWxldGVyLmhwcCBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXJyYXlfZGVsZXRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk3YzIzNgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXJyYXlfZGVsZXRlci5ocHAKQEAgLTAsMCArMSwxMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgR2xlbiBKb3NlcGggRmVybmFuZGVzCisgKiBnbGVuZmUgYXQgbGl2ZSBkb3QgY29tCisgKgorICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisgKiBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQKKyAqIG9yIGNvcHkgYXQgaHR0cDovL2Jvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgKi8KKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BUlJBWV9ERUxFVEVSX0hQUAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FSUkFZX0RFTEVURVJfSFBQCisKKyNpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL2FycmF5X3V0aWxpdHkuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfZm9yd2FyZC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgbmFtZXNwYWNlIGRldGFpbCB7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIGNsYXNzIGFycmF5X2RlbGV0ZXI7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIGNsYXNzIGFycmF5X2RlbGV0ZXI8VFtdPiB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIGFycmF5X2RlbGV0ZXIoc3RkOjpzaXplX3Qgc2l6ZSkKKyAgICAgICAgICAgICAgICA6IHNpemUoc2l6ZSksCisgICAgICAgICAgICAgICAgICBvYmplY3QoMCkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgfmFycmF5X2RlbGV0ZXIoKSB7CisgICAgICAgICAgICAgICAgaWYgKG9iamVjdCkgeworICAgICAgICAgICAgICAgICAgICBhcnJheV9kZXN0cm95KG9iamVjdCwgc2l6ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdm9pZCBpbml0KFQqIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIGFycmF5X2luaXQobWVtb3J5LCBzaXplKTsKKyAgICAgICAgICAgICAgICBvYmplY3QgPSBtZW1vcnk7CisgICAgICAgICAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpCisgICAgICAgICAgICB2b2lkIGluaXQoVCogbWVtb3J5LCBUJiYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBhcnJheV9pbml0X3ZhbHVlKG1lbW9yeSwgc2l6ZSwgc3BfZm9yd2FyZDxUPih2YWx1ZSkpOworICAgICAgICAgICAgICAgIG9iamVjdCA9IG1lbW9yeTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KKyAgICAgICAgICAgIHZvaWQgaW5pdChUKiBtZW1vcnksIEFyZ3MmJi4uLiBhcmdzKSB7CisgICAgICAgICAgICAgICAgYXJyYXlfaW5pdF9hcmdzKG1lbW9yeSwgc2l6ZSwgc3BfZm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgICAgICAgICAgICAgb2JqZWN0ID0gbWVtb3J5OworICAgICAgICAgICAgfQorI2VuZGlmCisjZW5kaWYKKyAgICAgICAgICAgIHZvaWQgaW5pdF9saXN0KFQqIG1lbW9yeSwgY29uc3QgVCogbGlzdCkgeworICAgICAgICAgICAgICAgIGFycmF5X2luaXRfbGlzdChtZW1vcnksIHNpemUsIGxpc3QpOworICAgICAgICAgICAgICAgIG9iamVjdCA9IG1lbW9yeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBsYXRlPHN0ZDo6c2l6ZV90IE0+CisgICAgICAgICAgICB2b2lkIGluaXRfbGlzdChUKiBtZW1vcnksIGNvbnN0IFQqIGxpc3QpIHsKKyAgICAgICAgICAgICAgICBhcnJheV9pbml0X2xpc3Q8VCwgTT4obWVtb3J5LCBzaXplLCBsaXN0KTsKKyAgICAgICAgICAgICAgICBvYmplY3QgPSBtZW1vcnk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIG5vaW5pdChUKiBtZW1vcnkpIHsKKyAgICAgICAgICAgICAgICBhcnJheV9ub2luaXQobWVtb3J5LCBzaXplKTsKKyAgICAgICAgICAgICAgICBvYmplY3QgPSBtZW1vcnk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIG9wZXJhdG9yKCkoY29uc3Qgdm9pZCopIHsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGFycmF5X2Rlc3Ryb3kob2JqZWN0LCBzaXplKTsKKyAgICAgICAgICAgICAgICAgICAgb2JqZWN0ID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBzdGQ6OnNpemVfdCBzaXplOworICAgICAgICAgICAgVCogb2JqZWN0OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzdGQ6OnNpemVfdCBOPgorICAgICAgICBjbGFzcyBhcnJheV9kZWxldGVyPFRbTl0+IHsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgYXJyYXlfZGVsZXRlcigpCisgICAgICAgICAgICAgICAgOiBvYmplY3QoMCkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgfmFycmF5X2RlbGV0ZXIoKSB7CisgICAgICAgICAgICAgICAgaWYgKG9iamVjdCkgeworICAgICAgICAgICAgICAgICAgICBhcnJheV9kZXN0cm95KG9iamVjdCwgTik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdm9pZCBpbml0KFQqIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIGFycmF5X2luaXQobWVtb3J5LCBOKTsKKyAgICAgICAgICAgICAgICBvYmplY3QgPSBtZW1vcnk7CisgICAgICAgICAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpCisgICAgICAgICAgICB2b2lkIGluaXQoVCogbWVtb3J5LCBUJiYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBhcnJheV9pbml0X3ZhbHVlKG1lbW9yeSwgTiwgc3BfZm9yd2FyZDxUPih2YWx1ZSkpOworICAgICAgICAgICAgICAgIG9iamVjdCA9IG1lbW9yeTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4KKyAgICAgICAgICAgIHZvaWQgaW5pdChUKiBtZW1vcnksIEFyZ3MmJi4uLiBhcmdzKSB7CisgICAgICAgICAgICAgICAgYXJyYXlfaW5pdF9hcmdzKG1lbW9yeSwgTiwgc3BfZm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgICAgICAgICAgICAgb2JqZWN0ID0gbWVtb3J5OworICAgICAgICAgICAgfQorI2VuZGlmCisjZW5kaWYKKyAgICAgICAgICAgIHZvaWQgaW5pdF9saXN0KFQqIG1lbW9yeSwgY29uc3QgVCogbGlzdCkgeworICAgICAgICAgICAgICAgIGFycmF5X2luaXRfbGlzdChtZW1vcnksIE4sIGxpc3QpOworICAgICAgICAgICAgICAgIG9iamVjdCA9IG1lbW9yeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBsYXRlPHN0ZDo6c2l6ZV90IE0+CisgICAgICAgICAgICB2b2lkIGluaXRfbGlzdChUKiBtZW1vcnksIGNvbnN0IFQqIGxpc3QpIHsKKyAgICAgICAgICAgICAgICBhcnJheV9pbml0X2xpc3Q8VCwgTT4obWVtb3J5LCBOLCBsaXN0KTsKKyAgICAgICAgICAgICAgICBvYmplY3QgPSBtZW1vcnk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIG5vaW5pdChUKiBtZW1vcnkpIHsKKyAgICAgICAgICAgICAgICBhcnJheV9ub2luaXQobWVtb3J5LCBOKTsKKyAgICAgICAgICAgICAgICBvYmplY3QgPSBtZW1vcnk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIG9wZXJhdG9yKCkoY29uc3Qgdm9pZCopIHsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGFycmF5X2Rlc3Ryb3kob2JqZWN0LCBOKTsKKyAgICAgICAgICAgICAgICAgICAgb2JqZWN0ID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBUKiBvYmplY3Q7CisgICAgICAgIH07CisgICAgfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXJyYXlfdHJhaXRzLmhwcCBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXJyYXlfdHJhaXRzLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Zjk2Y2NiCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV90cmFpdHMuaHBwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgR2xlbiBKb3NlcGggRmVybmFuZGVzIAorICogZ2xlbmZlIGF0IGxpdmUgZG90IGNvbQorICoKKyAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCAKKyAqIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCAKKyAqIG9yIGNvcHkgYXQgaHR0cDovL2Jvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisgKi8KKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BUlJBWV9UUkFJVFNfSFBQCisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfQVJSQVlfVFJBSVRTX0hQUAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICBuYW1lc3BhY2UgZGV0YWlsIHsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgc3RydWN0IGFycmF5X2Jhc2UgeworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6cmVtb3ZlX2N2PFQ+Ojp0eXBlIHR5cGU7CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIHN0cnVjdCBhcnJheV9iYXNlPFRbXT4geworICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBhcnJheV9iYXNlPFQ+Ojp0eXBlIHR5cGU7CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IE4+CisgICAgICAgIHN0cnVjdCBhcnJheV9iYXNlPFRbTl0+IHsKKyAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgYXJyYXlfYmFzZTxUPjo6dHlwZSB0eXBlOworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBzdHJ1Y3QgYXJyYXlfdG90YWwgeworICAgICAgICAgICAgZW51bSB7CisgICAgICAgICAgICAgICAgc2l6ZSA9IDEKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IE4+CisgICAgICAgIHN0cnVjdCBhcnJheV90b3RhbDxUW05dPiB7CisgICAgICAgICAgICBlbnVtIHsKKyAgICAgICAgICAgICAgICBzaXplID0gTiAqIGFycmF5X3RvdGFsPFQ+OjpzaXplCisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiAKKyAgICAgICAgc3RydWN0IGFycmF5X2lubmVyOworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBzdHJ1Y3QgYXJyYXlfaW5uZXI8VFtdPiB7CisgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgfTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc3RkOjpzaXplX3QgTj4KKyAgICAgICAgc3RydWN0IGFycmF5X2lubmVyPFRbTl0+IHsKKyAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICB9OworICAgIH0KK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9zbWFydF9wdHIvZGV0YWlsL2FycmF5X3V0aWxpdHkuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV91dGlsaXR5LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWZlNDQ5Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV91dGlsaXR5LmhwcApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiBHbGVuIEpvc2VwaCBGZXJuYW5kZXMgCisgKiBnbGVuZmUgYXQgbGl2ZSBkb3QgY29tCisgKgorICogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIAorICogVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IAorICogb3IgY29weSBhdCBodHRwOi8vYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKyAqLworI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FSUkFZX1VUSUxJVFlfSFBQCisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfQVJSQVlfVVRJTElUWV9IUFAKKworI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfY29uc3RydWN0b3IuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2Rlc3RydWN0b3IuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBkZXRhaWwgeworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBpbmxpbmUgdm9pZCBhcnJheV9kZXN0cm95KFQqLCBzdGQ6OnNpemVfdCwgbmRuYm9vc3Q6OnRydWVfdHlwZSkgeworICAgICAgICB9CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIGlubGluZSB2b2lkIGFycmF5X2Rlc3Ryb3koVCogbWVtb3J5LCBzdGQ6OnNpemVfdCBzaXplLCBuZG5ib29zdDo6ZmFsc2VfdHlwZSkgeworICAgICAgICAgICAgZm9yIChzdGQ6OnNpemVfdCBpID0gc2l6ZTsgaSA+IDA7ICkgeworICAgICAgICAgICAgICAgIG1lbW9yeVstLWldLn5UKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgaW5saW5lIHZvaWQgYXJyYXlfZGVzdHJveShUKiBtZW1vcnksIHN0ZDo6c2l6ZV90IHNpemUpIHsKKyAgICAgICAgICAgIG5kbmJvb3N0OjpoYXNfdHJpdmlhbF9kZXN0cnVjdG9yPFQ+IHR5cGU7CisgICAgICAgICAgICBhcnJheV9kZXN0cm95KG1lbW9yeSwgc2l6ZSwgdHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgaW5saW5lIHZvaWQgYXJyYXlfaW5pdChUKiBtZW1vcnksIHN0ZDo6c2l6ZV90IHNpemUsIG5kbmJvb3N0Ojp0cnVlX3R5cGUpIHsKKyAgICAgICAgICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICBtZW1vcnlbaV0gPSBUKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgaW5saW5lIHZvaWQgYXJyYXlfaW5pdChUKiBtZW1vcnksIHN0ZDo6c2l6ZV90IHNpemUsIG5kbmJvb3N0OjpmYWxzZV90eXBlKSB7CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fRVhDRVBUSU9OUykKKyAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGkgPSAwOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmb3IgKDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB2b2lkKiBwMSA9IG1lbW9yeSArIGk7CisgICAgICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBUKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoLi4uKSB7CisgICAgICAgICAgICAgICAgYXJyYXlfZGVzdHJveShtZW1vcnksIGkpOworICAgICAgICAgICAgICAgIHRocm93OworICAgICAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICB2b2lkKiBwMSA9IG1lbW9yeSArIGk7CisgICAgICAgICAgICAgICAgOjpuZXcocDEpIFQoKTsKKyAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICB9CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIGlubGluZSB2b2lkIGFycmF5X2luaXQoVCogbWVtb3J5LCBzdGQ6OnNpemVfdCBzaXplKSB7CisgICAgICAgICAgICBuZG5ib29zdDo6aGFzX3RyaXZpYWxfZGVmYXVsdF9jb25zdHJ1Y3RvcjxUPiB0eXBlOyAgICAgICAgICAgIAorICAgICAgICAgICAgYXJyYXlfaW5pdChtZW1vcnksIHNpemUsIHR5cGUpOworICAgICAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIGlubGluZSB2b2lkIGFycmF5X2luaXRfdmFsdWUoVCogbWVtb3J5LCBzdGQ6OnNpemVfdCBzaXplLCBUJiYgdmFsdWUpIHsKKyNpZiAhZGVmaW5lZChCT09TVF9OT19FWENFUFRJT05TKQorICAgICAgICAgICAgc3RkOjpzaXplX3QgaSA9IDA7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZvciAoOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHZvaWQqIHAxID0gbWVtb3J5ICsgaTsKKyAgICAgICAgICAgICAgICAgICAgOjpuZXcocDEpIFQodmFsdWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKC4uLikgeworICAgICAgICAgICAgICAgIGFycmF5X2Rlc3Ryb3kobWVtb3J5LCBpKTsKKyAgICAgICAgICAgICAgICB0aHJvdzsKKyAgICAgICAgICAgIH0KKyNlbHNlCisgICAgICAgICAgICBmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgdm9pZCogcDEgPSBtZW1vcnkgKyBpOworICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBUKHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICB9CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfVEVNUExBVEVTKQorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPgorICAgICAgICBpbmxpbmUgdm9pZCBhcnJheV9pbml0X2FyZ3MoVCogbWVtb3J5LCBzdGQ6OnNpemVfdCBzaXplLCBBcmdzJiYuLi4gYXJncykgeworI2lmICFkZWZpbmVkKEJPT1NUX05PX0VYQ0VQVElPTlMpCisgICAgICAgICAgICBzdGQ6OnNpemVfdCBpID0gMDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm9yICg7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdm9pZCogcDEgPSBtZW1vcnkgKyBpOworICAgICAgICAgICAgICAgICAgICA6Om5ldyhwMSkgVChhcmdzLi4uKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoICguLi4pIHsKKyAgICAgICAgICAgICAgICBhcnJheV9kZXN0cm95KG1lbW9yeSwgaSk7CisgICAgICAgICAgICAgICAgdGhyb3c7CisgICAgICAgICAgICB9CisjZWxzZQorICAgICAgICAgICAgZm9yIChzdGQ6OnNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgIHZvaWQqIHAxID0gbWVtb3J5ICsgaTsKKyAgICAgICAgICAgICAgICA6Om5ldyhwMSkgVChhcmdzLi4uKTsKKyAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICB9CisjZW5kaWYKKyNlbmRpZgorICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBpbmxpbmUgdm9pZCBhcnJheV9pbml0X2xpc3QoVCogbWVtb3J5LCBzdGQ6OnNpemVfdCBzaXplLCBjb25zdCBUKiBsaXN0KSB7CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fRVhDRVBUSU9OUykKKyAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGkgPSAwOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmb3IgKDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB2b2lkKiBwMSA9IG1lbW9yeSArIGk7CisgICAgICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBUKGxpc3RbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKC4uLikgeworICAgICAgICAgICAgICAgIGFycmF5X2Rlc3Ryb3kobWVtb3J5LCBpKTsKKyAgICAgICAgICAgICAgICB0aHJvdzsKKyAgICAgICAgICAgIH0KKyNlbHNlCisgICAgICAgICAgICBmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgdm9pZCogcDEgPSBtZW1vcnkgKyBpOworICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBUKGxpc3RbaV0pOworICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc3RkOjpzaXplX3QgTj4KKyAgICAgICAgaW5saW5lIHZvaWQgYXJyYXlfaW5pdF9saXN0KFQqIG1lbW9yeSwgc3RkOjpzaXplX3Qgc2l6ZSwgY29uc3QgVCogbGlzdCkgeworI2lmICFkZWZpbmVkKEJPT1NUX05PX0VYQ0VQVElPTlMpCisgICAgICAgICAgICBzdGQ6OnNpemVfdCBpID0gMDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm9yICg7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdm9pZCogcDEgPSBtZW1vcnkgKyBpOworICAgICAgICAgICAgICAgICAgICA6Om5ldyhwMSkgVChsaXN0W2kgJSBOXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoLi4uKSB7CisgICAgICAgICAgICAgICAgYXJyYXlfZGVzdHJveShtZW1vcnksIGkpOworICAgICAgICAgICAgICAgIHRocm93OworICAgICAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICB2b2lkKiBwMSA9IG1lbW9yeSArIGk7CisgICAgICAgICAgICAgICAgOjpuZXcocDEpIFQobGlzdFtpICUgTl0pOworICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgaW5saW5lIHZvaWQgYXJyYXlfbm9pbml0KFQqLCBzdGQ6OnNpemVfdCwgbmRuYm9vc3Q6OnRydWVfdHlwZSkgeworICAgICAgICB9CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIGlubGluZSB2b2lkIGFycmF5X25vaW5pdChUKiBtZW1vcnksIHN0ZDo6c2l6ZV90IHNpemUsIG5kbmJvb3N0OjpmYWxzZV90eXBlKSB7CisjaWYgIWRlZmluZWQoQk9PU1RfTk9fRVhDRVBUSU9OUykKKyAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGkgPSAwOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmb3IgKDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB2b2lkKiBwMSA9IG1lbW9yeSArIGk7CisgICAgICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBUOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKC4uLikgeworICAgICAgICAgICAgICAgIGFycmF5X2Rlc3Ryb3kobWVtb3J5LCBpKTsKKyAgICAgICAgICAgICAgICB0aHJvdzsKKyAgICAgICAgICAgIH0KKyNlbHNlCisgICAgICAgICAgICBmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgdm9pZCogcDEgPSBtZW1vcnkgKyBpOworICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBUOworICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgIH0KKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgaW5saW5lIHZvaWQgYXJyYXlfbm9pbml0KFQqIG1lbW9yeSwgc3RkOjpzaXplX3Qgc2l6ZSkgeworICAgICAgICAgICAgbmRuYm9vc3Q6Omhhc190cml2aWFsX2RlZmF1bHRfY29uc3RydWN0b3I8VD4gdHlwZTsKKyAgICAgICAgICAgIGFycmF5X25vaW5pdChtZW1vcnksIHNpemUsIHR5cGUpOworICAgICAgICB9CisgICAgfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXRvbWljX2NvdW50LmhwcCBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXRvbWljX2NvdW50LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTI1MTk3Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnQuaHBwCkBAIC0wLDAgKzEsMTE5IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfQVRPTUlDX0NPVU5UX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL2F0b21pY19jb3VudC5ocHAgLSB0aHJlYWQvU01QIHNhZmUgcmVmZXJlbmNlIGNvdW50ZXIKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICB0eXBlZGVmIDxpbXBsZW1lbnRhdGlvbi1kZWZpbmVkPiBuZG5ib29zdDo6ZGV0YWlsOjphdG9taWNfY291bnQ7CisvLworLy8gIGF0b21pY19jb3VudCBhKG4pOworLy8KKy8vICAgIChuIGlzIGNvbnZlcnRpYmxlIHRvIGxvbmcpCisvLworLy8gICAgRWZmZWN0czogQ29uc3RydWN0cyBhbiBhdG9taWNfY291bnQgd2l0aCBhbiBpbml0aWFsIHZhbHVlIG9mIG4KKy8vCisvLyAgYTsKKy8vCisvLyAgICBSZXR1cm5zOiAobG9uZykgdGhlIGN1cnJlbnQgdmFsdWUgb2YgYQorLy8KKy8vICArK2E7CisvLworLy8gICAgRWZmZWN0czogQXRvbWljYWxseSBpbmNyZW1lbnRzIHRoZSB2YWx1ZSBvZiBhCisvLyAgICBSZXR1cm5zOiAobG9uZykgdGhlIG5ldyB2YWx1ZSBvZiBhCisvLworLy8gIC0tYTsKKy8vCisvLyAgICBFZmZlY3RzOiBBdG9taWNhbGx5IGRlY3JlbWVudHMgdGhlIHZhbHVlIG9mIGEKKy8vICAgIFJldHVybnM6IChsb25nKSB0aGUgbmV3IHZhbHVlIG9mIGEKKy8vCisvLyAgICBJbXBvcnRhbnQgbm90ZTogd2hlbiAtLWEgcmV0dXJucyB6ZXJvLCBpdCBtdXN0IGFjdCBhcyBhCisvLyAgICAgIHJlYWQgbWVtb3J5IGJhcnJpZXIgKFJNQik7IGkuZS4gdGhlIGNhbGxpbmcgdGhyZWFkIG11c3QKKy8vICAgICAgaGF2ZSBhIHN5bmNocm9uaXplZCB2aWV3IG9mIHRoZSBtZW1vcnkKKy8vCisvLyAgICBPbiBJbnRlbCBJQS0zMiAoeDg2KSBtZW1vcnkgaXMgYWx3YXlzIHN5bmNocm9uaXplZCwgc28gdGhpcworLy8gICAgICBpcyBub3QgYSBwcm9ibGVtLgorLy8KKy8vICAgIE9uIG1hbnkgYXJjaGl0ZWN0dXJlcyB0aGUgYXRvbWljIGluc3RydWN0aW9ucyBhbHJlYWR5IGFjdCBhcworLy8gICAgICBhIG1lbW9yeSBiYXJyaWVyLgorLy8KKy8vICAgIFRoaXMgcHJvcGVydHkgaXMgbmVjZXNzYXJ5IGZvciBwcm9wZXIgcmVmZXJlbmNlIGNvdW50aW5nLCBzaW5jZQorLy8gICAgICBhIHRocmVhZCBjYW4gdXBkYXRlIHRoZSBjb250ZW50cyBvZiBhIHNoYXJlZCBvYmplY3QsIHRoZW4KKy8vICAgICAgcmVsZWFzZSBpdHMgcmVmZXJlbmNlLCBhbmQgYW5vdGhlciB0aHJlYWQgbWF5IGltbWVkaWF0ZWx5CisvLyAgICAgIHJlbGVhc2UgdGhlIGxhc3QgcmVmZXJlbmNlIGNhdXNpbmcgb2JqZWN0IGRlc3RydWN0aW9uLgorLy8KKy8vICAgIFRoZSBkZXN0cnVjdG9yIG5lZWRzIHRvIGhhdmUgYSBzeW5jaHJvbml6ZWQgdmlldyBvZiB0aGUKKy8vICAgICAgb2JqZWN0IHRvIHBlcmZvcm0gcHJvcGVyIGNsZWFudXAuCisvLworLy8gICAgT3JpZ2luYWwgZXhhbXBsZSBieSBBbGV4YW5kZXIgVGVyZWtob3Y6CisvLworLy8gICAgR2l2ZW46CisvLworLy8gICAgLSBhIG11dGFibGUgc2hhcmVkIG9iamVjdCBPQko7CisvLyAgICAtIHR3byB0aHJlYWRzIFRIUkVBRDEgYW5kIFRIUkVBRDIgZWFjaCBob2xkaW5nIAorLy8gICAgICBhIHByaXZhdGUgc21hcnRfcHRyIG9iamVjdCBwb2ludGluZyB0byB0aGF0IE9CSi4KKy8vCisvLyAgICB0MTogVEhSRUFEMSB1cGRhdGVzIE9CSiAodGhyZWFkLXNhZmUgdmlhIHNvbWUgc3luY2hyb25pemF0aW9uKQorLy8gICAgICBhbmQgYSBmZXcgY3ljbGVzIGxhdGVyIChhZnRlciAidW5sb2NrIikgZGVzdHJveXMgc21hcnRfcHRyOworLy8KKy8vICAgIHQyOiBUSFJFQUQyIGRlc3Ryb3lzIHNtYXJ0X3B0ciBXSVRIT1VUIGRvaW5nIGFueSBzeW5jaHJvbml6YXRpb24gCisvLyAgICAgIHdpdGggcmVzcGVjdCB0byBzaGFyZWQgbXV0YWJsZSBvYmplY3QgT0JKOyBPQkogZGVzdHJ1Y3RvcnMKKy8vICAgICAgYXJlIGNhbGxlZCBkcml2ZW4gYnkgc21hcnRfcHRyIGludGVyZmFjZS4uLgorLy8KKworI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9oYXNfc3luYy5ocHA+CisKKyNpZm5kZWYgQk9PU1RfSEFTX1RIUkVBRFMKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKwordHlwZWRlZiBsb25nIGF0b21pY19jb3VudDsKKworfQorCit9CisKKyNlbGlmIGRlZmluZWQoQk9PU1RfQUNfVVNFX1BUSFJFQURTKQorIyAgaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfcHRocmVhZHMuaHBwPgorCisjZWxpZiBkZWZpbmVkKCBfX0dOVUNfXyApICYmICggZGVmaW5lZCggX19pMzg2X18gKSB8fCBkZWZpbmVkKCBfX3g4Nl82NF9fICkgKQorIyAgaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfZ2NjX3g4Ni5ocHA+CisKKyNlbGlmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9fV0lOMzJfXykgfHwgZGVmaW5lZChfX0NZR1dJTl9fKQorIyAgaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfd2luMzIuaHBwPgorCisjZWxpZiBkZWZpbmVkKCBCT09TVF9TUF9IQVNfU1lOQyApCisjICBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9zeW5jLmhwcD4KKworI2VsaWYgZGVmaW5lZChfX0dMSUJDUFBfXykgfHwgZGVmaW5lZChfX0dMSUJDWFhfXykKKyMgIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXRvbWljX2NvdW50X2djYy5ocHA+CisKKyNlbGlmIGRlZmluZWQoQk9PU1RfSEFTX1BUSFJFQURTKQorCisjICBkZWZpbmUgQk9PU1RfQUNfVVNFX1BUSFJFQURTCisjICBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9wdGhyZWFkcy5ocHA+CisKKyNlbHNlCisKKy8vIFVzZSAjZGVmaW5lIEJPT1NUX0RJU0FCTEVfVEhSRUFEUyB0byBhdm9pZCB0aGUgZXJyb3IKKyNlcnJvciBVbnJlY29nbml6ZWQgdGhyZWFkaW5nIHBsYXRmb3JtCisKKyNlbmRpZgorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXRvbWljX2NvdW50X2djYy5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9nY2MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkODdiZGUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9nY2MuaHBwCkBAIC0wLDAgKzEsNzIgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BVE9NSUNfQ09VTlRfR0NDX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9HQ0NfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL2F0b21pY19jb3VudF9nY2MuaHBwCisvLworLy8gIGF0b21pY19jb3VudCBmb3IgR05VIGxpYnN0ZGMrKyB2MworLy8KKy8vICBodHRwOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9wb3J0aW5nL1RocmVhZC1zYWZldHkuaHRtbAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDIgTGFycyBHdWxsaWsgQmr4bm5lcyA8bGFyc2JqQGx5eC5vcmc+CisvLyAgQ29weXJpZ2h0IDIwMDMtMjAwNSBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpZiBfX0dOVUNfXyAqIDEwMCArIF9fR05VQ19NSU5PUl9fID49IDQwMgorIyBpbmNsdWRlIDxleHQvYXRvbWljaXR5Lmg+IAorI2Vsc2UgCisjIGluY2x1ZGUgPGJpdHMvYXRvbWljaXR5Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworI2lmIGRlZmluZWQoX19HTElCQ1hYX18pIC8vIGcrKyAzLjQrCisKK3VzaW5nIF9fZ251X2N4eDo6X19hdG9taWNfYWRkOwordXNpbmcgX19nbnVfY3h4OjpfX2V4Y2hhbmdlX2FuZF9hZGQ7CisKKyNlbmRpZgorCitjbGFzcyBhdG9taWNfY291bnQKK3sKK3B1YmxpYzoKKworICAgIGV4cGxpY2l0IGF0b21pY19jb3VudCggbG9uZyB2ICkgOiB2YWx1ZV8oIHYgKSB7fQorCisgICAgbG9uZyBvcGVyYXRvcisrKCkKKyAgICB7CisgICAgICAgIHJldHVybiBfX2V4Y2hhbmdlX2FuZF9hZGQoICZ2YWx1ZV8sICsxICkgKyAxOworICAgIH0KKworICAgIGxvbmcgb3BlcmF0b3ItLSgpCisgICAgeworICAgICAgICByZXR1cm4gX19leGNoYW5nZV9hbmRfYWRkKCAmdmFsdWVfLCAtMSApIC0gMTsKKyAgICB9CisKKyAgICBvcGVyYXRvciBsb25nKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBfX2V4Y2hhbmdlX2FuZF9hZGQoICZ2YWx1ZV8sIDAgKTsKKyAgICB9CisKK3ByaXZhdGU6CisKKyAgICBhdG9taWNfY291bnQoYXRvbWljX2NvdW50IGNvbnN0ICYpOworICAgIGF0b21pY19jb3VudCAmIG9wZXJhdG9yPShhdG9taWNfY291bnQgY29uc3QgJik7CisKKyAgICBtdXRhYmxlIF9BdG9taWNfd29yZCB2YWx1ZV87Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BVE9NSUNfQ09VTlRfR0NDX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfZ2NjX3g4Ni5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9nY2NfeDg2LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjRhMmI5Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfZ2NjX3g4Ni5ocHAKQEAgLTAsMCArMSw3NyBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9HQ0NfWDg2X0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9HQ0NfWDg2X0hQUF9JTkNMVURFRAorCisvLworLy8gIGJvb3N0L2RldGFpbC9hdG9taWNfY291bnRfZ2NjX3g4Ni5ocHAKKy8vCisvLyAgYXRvbWljX2NvdW50IGZvciBnKysgb24gNDg2Ky9BTUQ2NAorLy8KKy8vICBDb3B5cmlnaHQgMjAwNyBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2NsYXNzIGF0b21pY19jb3VudAoreworcHVibGljOgorCisgICAgZXhwbGljaXQgYXRvbWljX2NvdW50KCBsb25nIHYgKSA6IHZhbHVlXyggc3RhdGljX2Nhc3Q8IGludCA+KCB2ICkgKSB7fQorCisgICAgbG9uZyBvcGVyYXRvcisrKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCggJnZhbHVlXywgKzEgKSArIDE7CisgICAgfQorCisgICAgbG9uZyBvcGVyYXRvci0tKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhdG9taWNfZXhjaGFuZ2VfYW5kX2FkZCggJnZhbHVlXywgLTEgKSAtIDE7CisgICAgfQorCisgICAgb3BlcmF0b3IgbG9uZygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gYXRvbWljX2V4Y2hhbmdlX2FuZF9hZGQoICZ2YWx1ZV8sIDAgKTsKKyAgICB9CisKK3ByaXZhdGU6CisKKyAgICBhdG9taWNfY291bnQoYXRvbWljX2NvdW50IGNvbnN0ICYpOworICAgIGF0b21pY19jb3VudCAmIG9wZXJhdG9yPShhdG9taWNfY291bnQgY29uc3QgJik7CisKKyAgICBtdXRhYmxlIGludCB2YWx1ZV87CisKK3ByaXZhdGU6CisKKyAgICBzdGF0aWMgaW50IGF0b21pY19leGNoYW5nZV9hbmRfYWRkKCBpbnQgKiBwdywgaW50IGR2ICkKKyAgICB7CisgICAgICAgIC8vIGludCByID0gKnB3OworICAgICAgICAvLyAqcHcgKz0gZHY7CisgICAgICAgIC8vIHJldHVybiByOworCisgICAgICAgIGludCByOworCisgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fCisgICAgICAgICgKKyAgICAgICAgICAgICJsb2NrXG5cdCIKKyAgICAgICAgICAgICJ4YWRkICUxLCAlMCI6CisgICAgICAgICAgICAiK20iKCAqcHcgKSwgIj1yIiggciApOiAvLyBvdXRwdXRzICglMCwgJTEpCisgICAgICAgICAgICAiMSIoIGR2ICk6IC8vIGlucHV0cyAoJTIgPT0gJTEpCisgICAgICAgICAgICAibWVtb3J5IiwgImNjIiAvLyBjbG9iYmVycworICAgICAgICApOworCisgICAgICAgIHJldHVybiByOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9HQ0NfWDg2X0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfcHRocmVhZHMuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfcHRocmVhZHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5NDU1NjYKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF9wdGhyZWFkcy5ocHAKQEAgLTAsMCArMSw5NiBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9QVEhSRUFEU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BVE9NSUNfQ09VTlRfUFRIUkVBRFNfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL2F0b21pY19jb3VudF9wdGhyZWFkcy5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2luY2x1ZGUgPHB0aHJlYWQuaD4KKworLy8KKy8vICBUaGUgZ2VuZXJpYyBwdGhyZWFkX211dGV4LWJhc2VkIGltcGxlbWVudGF0aW9uIHNvbWV0aW1lcyBsZWFkcyB0bworLy8gICAgaW5lZmZpY2llbmNpZXMuIEV4YW1wbGU6IGEgY2xhc3Mgd2l0aCB0d28gYXRvbWljX2NvdW50IG1lbWJlcnMKKy8vICAgIGNhbiBnZXQgYXdheSB3aXRoIGEgc2luZ2xlIG11dGV4LgorLy8KKy8vICBVc2VycyBjYW4gZGV0ZWN0IHRoaXMgc2l0dWF0aW9uIGJ5IGNoZWNraW5nIEJPT1NUX0FDX1VTRV9QVEhSRUFEUy4KKy8vCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2NsYXNzIGF0b21pY19jb3VudAoreworcHJpdmF0ZToKKworICAgIGNsYXNzIHNjb3BlZF9sb2NrCisgICAgeworICAgIHB1YmxpYzoKKworICAgICAgICBzY29wZWRfbG9jayhwdGhyZWFkX211dGV4X3QgJiBtKTogbV8obSkKKyAgICAgICAgeworICAgICAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZtXyk7CisgICAgICAgIH0KKworICAgICAgICB+c2NvcGVkX2xvY2soKQorICAgICAgICB7CisgICAgICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbV8pOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorCisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCAmIG1fOworICAgIH07CisKK3B1YmxpYzoKKworICAgIGV4cGxpY2l0IGF0b21pY19jb3VudChsb25nIHYpOiB2YWx1ZV8odikKKyAgICB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCgmbXV0ZXhfLCAwKTsKKyAgICB9CisKKyAgICB+YXRvbWljX2NvdW50KCkKKyAgICB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmbXV0ZXhfKTsKKyAgICB9CisKKyAgICBsb25nIG9wZXJhdG9yKysoKQorICAgIHsKKyAgICAgICAgc2NvcGVkX2xvY2sgbG9jayhtdXRleF8pOworICAgICAgICByZXR1cm4gKyt2YWx1ZV87CisgICAgfQorCisgICAgbG9uZyBvcGVyYXRvci0tKCkKKyAgICB7CisgICAgICAgIHNjb3BlZF9sb2NrIGxvY2sobXV0ZXhfKTsKKyAgICAgICAgcmV0dXJuIC0tdmFsdWVfOworICAgIH0KKworICAgIG9wZXJhdG9yIGxvbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgc2NvcGVkX2xvY2sgbG9jayhtdXRleF8pOworICAgICAgICByZXR1cm4gdmFsdWVfOworICAgIH0KKworcHJpdmF0ZToKKworICAgIGF0b21pY19jb3VudChhdG9taWNfY291bnQgY29uc3QgJik7CisgICAgYXRvbWljX2NvdW50ICYgb3BlcmF0b3I9KGF0b21pY19jb3VudCBjb25zdCAmKTsKKworICAgIG11dGFibGUgcHRocmVhZF9tdXRleF90IG11dGV4XzsKKyAgICBsb25nIHZhbHVlXzsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9QVEhSRUFEU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXRvbWljX2NvdW50X3N5bmMuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfc3luYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzkzMDBlMQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXRvbWljX2NvdW50X3N5bmMuaHBwCkBAIC0wLDAgKzEsNjEgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BVE9NSUNfQ09VTlRfU1lOQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BVE9NSUNfQ09VTlRfU1lOQ19IUFBfSU5DTFVERUQKKworLy8KKy8vICBib29zdC9kZXRhaWwvYXRvbWljX2NvdW50X3N5bmMuaHBwCisvLworLy8gIGF0b21pY19jb3VudCBmb3IgZysrIDQuMSsKKy8vCisvLyAgaHR0cDovL2djYy5nbnUub3JnL29ubGluZWRvY3MvZ2NjLTQuMS4xL2djYy9BdG9taWMtQnVpbHRpbnMuaHRtbAorLy8KKy8vICBDb3B5cmlnaHQgMjAwNyBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpZiBkZWZpbmVkKCBfX2lhNjRfXyApICYmIGRlZmluZWQoIF9fSU5URUxfQ09NUElMRVIgKQorIyBpbmNsdWRlIDxpYTY0aW50cmluLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworY2xhc3MgYXRvbWljX2NvdW50Cit7CitwdWJsaWM6CisKKyAgICBleHBsaWNpdCBhdG9taWNfY291bnQoIGxvbmcgdiApIDogdmFsdWVfKCB2ICkge30KKworICAgIGxvbmcgb3BlcmF0b3IrKygpCisgICAgeworICAgICAgICByZXR1cm4gX19zeW5jX2FkZF9hbmRfZmV0Y2goICZ2YWx1ZV8sIDEgKTsKKyAgICB9CisKKyAgICBsb25nIG9wZXJhdG9yLS0oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIF9fc3luY19hZGRfYW5kX2ZldGNoKCAmdmFsdWVfLCAtMSApOworICAgIH0KKworICAgIG9wZXJhdG9yIGxvbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIF9fc3luY19mZXRjaF9hbmRfYWRkKCAmdmFsdWVfLCAwICk7CisgICAgfQorCitwcml2YXRlOgorCisgICAgYXRvbWljX2NvdW50KGF0b21pY19jb3VudCBjb25zdCAmKTsKKyAgICBhdG9taWNfY291bnQgJiBvcGVyYXRvcj0oYXRvbWljX2NvdW50IGNvbnN0ICYpOworCisgICAgbXV0YWJsZSBsb25nIHZhbHVlXzsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9TWU5DX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfd2luMzIuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnRfd2luMzIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkZGJkNDkKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL2F0b21pY19jb3VudF93aW4zMi5ocHAKQEAgLTAsMCArMSw2MyBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9XSU4zMl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9BVE9NSUNfQ09VTlRfV0lOMzJfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGJvb3N0L2RldGFpbC9hdG9taWNfY291bnRfd2luMzIuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMS0yMDA1IFBldGVyIERpbW92CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2luY2x1ZGUgPGJvb3N0L2RldGFpbC9pbnRlcmxvY2tlZC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2NsYXNzIGF0b21pY19jb3VudAoreworcHVibGljOgorCisgICAgZXhwbGljaXQgYXRvbWljX2NvdW50KCBsb25nIHYgKTogdmFsdWVfKCB2ICkKKyAgICB7CisgICAgfQorCisgICAgbG9uZyBvcGVyYXRvcisrKCkKKyAgICB7CisgICAgICAgIHJldHVybiBCT09TVF9JTlRFUkxPQ0tFRF9JTkNSRU1FTlQoICZ2YWx1ZV8gKTsKKyAgICB9CisKKyAgICBsb25nIG9wZXJhdG9yLS0oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEJPT1NUX0lOVEVSTE9DS0VEX0RFQ1JFTUVOVCggJnZhbHVlXyApOworICAgIH0KKworICAgIG9wZXJhdG9yIGxvbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmcgY29uc3Qgdm9sYXRpbGUgJj4oIHZhbHVlXyApOworICAgIH0KKworcHJpdmF0ZToKKworICAgIGF0b21pY19jb3VudCggYXRvbWljX2NvdW50IGNvbnN0ICYgKTsKKyAgICBhdG9taWNfY291bnQgJiBvcGVyYXRvcj0oIGF0b21pY19jb3VudCBjb25zdCAmICk7CisKKyAgICBsb25nIHZhbHVlXzsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0FUT01JQ19DT1VOVF9XSU4zMl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbGlnaHR3ZWlnaHRfbXV0ZXguaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9saWdodHdlaWdodF9tdXRleC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRkNTdkMgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbGlnaHR3ZWlnaHRfbXV0ZXguaHBwCkBAIC0wLDAgKzEsNDIgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9MSUdIVFdFSUdIVF9NVVRFWF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9MSUdIVFdFSUdIVF9NVVRFWF9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL2xpZ2h0d2VpZ2h0X211dGV4LmhwcCAtIGxpZ2h0d2VpZ2h0IG11dGV4CisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMiwgMjAwMyBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgdHlwZWRlZiA8dW5zcGVjaWZpZWQ+IG5kbmJvb3N0OjpkZXRhaWw6OmxpZ2h0d2VpZ2h0X211dGV4OworLy8KKy8vICBuZG5ib29zdDo6ZGV0YWlsOjpsaWdodHdlaWdodF9tdXRleCBpcyBhIGhlYWRlci1vbmx5IGltcGxlbWVudGF0aW9uIG9mCisvLyAgYSBzdWJzZXQgb2YgdGhlIE11dGV4IGNvbmNlcHQgcmVxdWlyZW1lbnRzOgorLy8KKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9kb2MvaHRtbC90aHJlYWRzL2NvbmNlcHRzLmh0bWwjdGhyZWFkcy5jb25jZXB0cy5NdXRleAorLy8KKy8vICBJdCBtYXBzIHRvIGEgQ1JJVElDQUxfU0VDVElPTiBvbiBXaW5kb3dzIG9yIGEgcHRocmVhZF9tdXRleCBvbiBQT1NJWC4KKy8vCisKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfSEFTX1RIUkVBRFMpCisjICBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL2x3bV9ub3AuaHBwPgorI2VsaWYgZGVmaW5lZChCT09TVF9IQVNfUFRIUkVBRFMpCisjICBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL2x3bV9wdGhyZWFkcy5ocHA+CisjZWxpZiBkZWZpbmVkKEJPT1NUX0hBU19XSU5USFJFQURTKSB8fCBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX1dJTjMyX18pIHx8IGRlZmluZWQoX19DWUdXSU5fXykKKyMgIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbHdtX3dpbjMyX2NzLmhwcD4KKyNlbHNlCisvLyBVc2UgI2RlZmluZSBCT09TVF9ESVNBQkxFX1RIUkVBRFMgdG8gYXZvaWQgdGhlIGVycm9yCisjICBlcnJvciBVbnJlY29nbml6ZWQgdGhyZWFkaW5nIHBsYXRmb3JtCisjZW5kaWYKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9MSUdIVFdFSUdIVF9NVVRFWF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbHdtX25vcC5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL2x3bV9ub3AuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0ZDFmYzUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL2x3bV9ub3AuaHBwCkBAIC0wLDAgKzEsMzcgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9MV01fTk9QX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0xXTV9OT1BfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGJvb3N0L2RldGFpbC9sd21fbm9wLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDIgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitjbGFzcyBsaWdodHdlaWdodF9tdXRleAoreworcHVibGljOgorCisgICAgdHlwZWRlZiBsaWdodHdlaWdodF9tdXRleCBzY29wZWRfbG9jazsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0xXTV9OT1BfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9zbWFydF9wdHIvZGV0YWlsL2x3bV9wdGhyZWFkcy5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL2x3bV9wdGhyZWFkcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Q5MTU0MwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbHdtX3B0aHJlYWRzLmhwcApAQCAtMCwwICsxLDg3IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfTFdNX1BUSFJFQURTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0xXTV9QVEhSRUFEU19IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL2x3bV9wdGhyZWFkcy5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAyIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2luY2x1ZGUgPGJvb3N0L2Fzc2VydC5ocHA+CisjaW5jbHVkZSA8cHRocmVhZC5oPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitjbGFzcyBsaWdodHdlaWdodF9tdXRleAoreworcHJpdmF0ZToKKworICAgIHB0aHJlYWRfbXV0ZXhfdCBtXzsKKworICAgIGxpZ2h0d2VpZ2h0X211dGV4KGxpZ2h0d2VpZ2h0X211dGV4IGNvbnN0ICYpOworICAgIGxpZ2h0d2VpZ2h0X211dGV4ICYgb3BlcmF0b3I9KGxpZ2h0d2VpZ2h0X211dGV4IGNvbnN0ICYpOworCitwdWJsaWM6CisKKyAgICBsaWdodHdlaWdodF9tdXRleCgpCisgICAgeworCisvLyBIUFVYIDEwLjIwIC8gRENFIGhhcyBhIG5vbnN0YW5kYXJkIHB0aHJlYWRfbXV0ZXhfaW5pdAorCisjaWYgZGVmaW5lZChfX2hwdXgpICYmIGRlZmluZWQoX0RFQ1RIUkVBRFNfKQorICAgICAgICBCT09TVF9WRVJJRlkoIHB0aHJlYWRfbXV0ZXhfaW5pdCggJm1fLCBwdGhyZWFkX211dGV4YXR0cl9kZWZhdWx0ICkgPT0gMCApOworI2Vsc2UKKyAgICAgICAgQk9PU1RfVkVSSUZZKCBwdGhyZWFkX211dGV4X2luaXQoICZtXywgMCApID09IDAgKTsKKyNlbmRpZgorICAgIH0KKworICAgIH5saWdodHdlaWdodF9tdXRleCgpCisgICAgeworICAgICAgICBCT09TVF9WRVJJRlkoIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSggJm1fICkgPT0gMCApOworICAgIH0KKworICAgIGNsYXNzIHNjb3BlZF9sb2NrOworICAgIGZyaWVuZCBjbGFzcyBzY29wZWRfbG9jazsKKworICAgIGNsYXNzIHNjb3BlZF9sb2NrCisgICAgeworICAgIHByaXZhdGU6CisKKyAgICAgICAgcHRocmVhZF9tdXRleF90ICYgbV87CisKKyAgICAgICAgc2NvcGVkX2xvY2soc2NvcGVkX2xvY2sgY29uc3QgJik7CisgICAgICAgIHNjb3BlZF9sb2NrICYgb3BlcmF0b3I9KHNjb3BlZF9sb2NrIGNvbnN0ICYpOworCisgICAgcHVibGljOgorCisgICAgICAgIHNjb3BlZF9sb2NrKGxpZ2h0d2VpZ2h0X211dGV4ICYgbSk6IG1fKG0ubV8pCisgICAgICAgIHsKKyAgICAgICAgICAgIEJPT1NUX1ZFUklGWSggcHRocmVhZF9tdXRleF9sb2NrKCAmbV8gKSA9PSAwICk7CisgICAgICAgIH0KKworICAgICAgICB+c2NvcGVkX2xvY2soKQorICAgICAgICB7CisgICAgICAgICAgICBCT09TVF9WRVJJRlkoIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCAmbV8gKSA9PSAwICk7CisgICAgICAgIH0KKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfTFdNX1BUSFJFQURTX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9sd21fd2luMzJfY3MuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9sd21fd2luMzJfY3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5NzZjMzIKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL2x3bV93aW4zMl9jcy5ocHAKQEAgLTAsMCArMSwxMDggQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9MV01fV0lOMzJfQ1NfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfTFdNX1dJTjMyX0NTX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBib29zdC9kZXRhaWwvbHdtX3dpbjMyX2NzLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDIsIDIwMDMgUGV0ZXIgRGltb3YKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaWZkZWYgQk9PU1RfVVNFX1dJTkRPV1NfSAorIyAgaW5jbHVkZSA8d2luZG93cy5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKKyNpZm5kZWYgQk9PU1RfVVNFX1dJTkRPV1NfSAorCitzdHJ1Y3QgY3JpdGljYWxfc2VjdGlvbgoreworICAgIHN0cnVjdCBjcml0aWNhbF9zZWN0aW9uX2RlYnVnICogRGVidWdJbmZvOworICAgIGxvbmcgTG9ja0NvdW50OworICAgIGxvbmcgUmVjdXJzaW9uQ291bnQ7CisgICAgdm9pZCAqIE93bmluZ1RocmVhZDsKKyAgICB2b2lkICogTG9ja1NlbWFwaG9yZTsKKyNpZiBkZWZpbmVkKF9XSU42NCkKKyAgICB1bnNpZ25lZCBfX2ludDY0IFNwaW5Db3VudDsKKyNlbHNlCisgICAgdW5zaWduZWQgbG9uZyBTcGluQ291bnQ7CisjZW5kaWYKK307CisKK2V4dGVybiAiQyIgX19kZWNsc3BlYyhkbGxpbXBvcnQpIHZvaWQgX19zdGRjYWxsIEluaXRpYWxpemVDcml0aWNhbFNlY3Rpb24oY3JpdGljYWxfc2VjdGlvbiAqKTsKK2V4dGVybiAiQyIgX19kZWNsc3BlYyhkbGxpbXBvcnQpIHZvaWQgX19zdGRjYWxsIEVudGVyQ3JpdGljYWxTZWN0aW9uKGNyaXRpY2FsX3NlY3Rpb24gKik7CitleHRlcm4gIkMiIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSB2b2lkIF9fc3RkY2FsbCBMZWF2ZUNyaXRpY2FsU2VjdGlvbihjcml0aWNhbF9zZWN0aW9uICopOworZXh0ZXJuICJDIiBfX2RlY2xzcGVjKGRsbGltcG9ydCkgdm9pZCBfX3N0ZGNhbGwgRGVsZXRlQ3JpdGljYWxTZWN0aW9uKGNyaXRpY2FsX3NlY3Rpb24gKik7CisKKyNlbHNlCisKK3R5cGVkZWYgOjpDUklUSUNBTF9TRUNUSU9OIGNyaXRpY2FsX3NlY3Rpb247CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1VTRV9XSU5ET1dTX0gKKworY2xhc3MgbGlnaHR3ZWlnaHRfbXV0ZXgKK3sKK3ByaXZhdGU6CisKKyAgICBjcml0aWNhbF9zZWN0aW9uIGNzXzsKKworICAgIGxpZ2h0d2VpZ2h0X211dGV4KGxpZ2h0d2VpZ2h0X211dGV4IGNvbnN0ICYpOworICAgIGxpZ2h0d2VpZ2h0X211dGV4ICYgb3BlcmF0b3I9KGxpZ2h0d2VpZ2h0X211dGV4IGNvbnN0ICYpOworCitwdWJsaWM6CisKKyAgICBsaWdodHdlaWdodF9tdXRleCgpCisgICAgeworICAgICAgICBJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uKCZjc18pOworICAgIH0KKworICAgIH5saWdodHdlaWdodF9tdXRleCgpCisgICAgeworICAgICAgICBEZWxldGVDcml0aWNhbFNlY3Rpb24oJmNzXyk7CisgICAgfQorCisgICAgY2xhc3Mgc2NvcGVkX2xvY2s7CisgICAgZnJpZW5kIGNsYXNzIHNjb3BlZF9sb2NrOworCisgICAgY2xhc3Mgc2NvcGVkX2xvY2sKKyAgICB7CisgICAgcHJpdmF0ZToKKworICAgICAgICBsaWdodHdlaWdodF9tdXRleCAmIG1fOworCisgICAgICAgIHNjb3BlZF9sb2NrKHNjb3BlZF9sb2NrIGNvbnN0ICYpOworICAgICAgICBzY29wZWRfbG9jayAmIG9wZXJhdG9yPShzY29wZWRfbG9jayBjb25zdCAmKTsKKworICAgIHB1YmxpYzoKKworICAgICAgICBleHBsaWNpdCBzY29wZWRfbG9jayhsaWdodHdlaWdodF9tdXRleCAmIG0pOiBtXyhtKQorICAgICAgICB7CisgICAgICAgICAgICBFbnRlckNyaXRpY2FsU2VjdGlvbigmbV8uY3NfKTsKKyAgICAgICAgfQorCisgICAgICAgIH5zY29wZWRfbG9jaygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExlYXZlQ3JpdGljYWxTZWN0aW9uKCZtXy5jc18pOworICAgICAgICB9CisgICAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX0xXTV9XSU4zMl9DU19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbWFrZV9hcnJheV9oZWxwZXIuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9tYWtlX2FycmF5X2hlbHBlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQ5NmZkNgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbWFrZV9hcnJheV9oZWxwZXIuaHBwCkBAIC0wLDAgKzEsMTU3IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIEdsZW4gSm9zZXBoIEZlcm5hbmRlcyAKKyAqIGdsZW5mZSBhdCBsaXZlIGRvdCBjb20KKyAqCisgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgCisgKiBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgCisgKiBvciBjb3B5IGF0IGh0dHA6Ly9ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorICovCisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfTUFLRV9BUlJBWV9IRUxQRVJfSFBQCisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfTUFLRV9BUlJBWV9IRUxQRVJfSFBQCisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9hbGlnbm1lbnRfb2YuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworICAgIG5hbWVzcGFjZSBkZXRhaWwgeworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBZID0gY2hhcj4KKyAgICAgICAgY2xhc3MgbWFrZV9hcnJheV9oZWxwZXI7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFk+CisgICAgICAgIGNsYXNzIG1ha2VfYXJyYXlfaGVscGVyPFRbXSwgWT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFkyPgorICAgICAgICAgICAgZnJpZW5kIGNsYXNzIG1ha2VfYXJyYXlfaGVscGVyOworICAgICAgICBwdWJsaWM6CisgICAgICAgICAgICB0eXBlZGVmIFkgICAgICAgICAgIHZhbHVlX3R5cGU7CisgICAgICAgICAgICB0eXBlZGVmIFkqICAgICAgICAgIHBvaW50ZXI7CisgICAgICAgICAgICB0eXBlZGVmIGNvbnN0IFkqICAgIGNvbnN0X3BvaW50ZXI7CisgICAgICAgICAgICB0eXBlZGVmIFkmICAgICAgICAgIHJlZmVyZW5jZTsKKyAgICAgICAgICAgIHR5cGVkZWYgY29uc3QgWSYgICAgY29uc3RfcmVmZXJlbmNlOworICAgICAgICAgICAgdHlwZWRlZiBzdGQ6OnNpemVfdCBzaXplX3R5cGU7CisgICAgICAgICAgICB0eXBlZGVmIHB0cmRpZmZfdCAgIGRpZmZlcmVuY2VfdHlwZTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICBzdHJ1Y3QgcmViaW5kIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIG1ha2VfYXJyYXlfaGVscGVyPFRbXSwgVT4gb3RoZXI7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgbWFrZV9hcnJheV9oZWxwZXIoc3RkOjpzaXplX3Qgc2l6ZSwgVCoqIGRhdGEpCisgICAgICAgICAgICAgICAgOiBzaXplKHNpemVvZihUKSAqIHNpemUpLAorICAgICAgICAgICAgICAgICAgZGF0YShkYXRhKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBVPgorICAgICAgICAgICAgbWFrZV9hcnJheV9oZWxwZXIoY29uc3QgbWFrZV9hcnJheV9oZWxwZXI8VFtdLCBVPiYgb3RoZXIpIAorICAgICAgICAgICAgICAgIDogc2l6ZShvdGhlci5zaXplKSwKKyAgICAgICAgICAgICAgICAgIGRhdGEob3RoZXIuZGF0YSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9pbnRlciBhZGRyZXNzKHJlZmVyZW5jZSB2YWx1ZSkgY29uc3QgeworICAgICAgICAgICAgICAgIHJldHVybiAmdmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb25zdF9wb2ludGVyIGFkZHJlc3MoY29uc3RfcmVmZXJlbmNlIHZhbHVlKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuICZ2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNpemVfdHlwZSBtYXhfc2l6ZSgpIGNvbnN0IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c3RkOjpzaXplX3Q+KC0xKSAvIHNpemVvZihZKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvaW50ZXIgYWxsb2NhdGUoc2l6ZV90eXBlIGNvdW50LCBjb25zdCB2b2lkKiA9IDApIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnNpemVfdCBhMSA9IG5kbmJvb3N0OjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlOworICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gY291bnQgKiBzaXplb2YoWSkgKyBhMSAtIDE7CisgICAgICAgICAgICAgICAgdm9pZCogIHAxID0gOjpvcGVyYXRvciBuZXcobjEgKyBzaXplKTsKKyAgICAgICAgICAgICAgICBjaGFyKiAgcDIgPSBzdGF0aWNfY2FzdDxjaGFyKj4ocDEpICsgbjE7CisgICAgICAgICAgICAgICAgd2hpbGUgKHN0ZDo6c2l6ZV90KHAyKSAlIGExICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcDItLTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKmRhdGEgPSByZWludGVycHJldF9jYXN0PFQqPihwMik7CisgICAgICAgICAgICAgICAgcmV0dXJuICByZWludGVycHJldF9jYXN0PFkqPihwMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIGRlYWxsb2NhdGUocG9pbnRlciBtZW1vcnksIHNpemVfdHlwZSkgeworICAgICAgICAgICAgICAgIHZvaWQqIHAxID0gbWVtb3J5OworICAgICAgICAgICAgICAgIDo6b3BlcmF0b3IgZGVsZXRlKHAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZvaWQgY29uc3RydWN0KHBvaW50ZXIgbWVtb3J5LCBjb25zdCBZJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIHZvaWQqIHAxID0gbWVtb3J5OworICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBZKHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZvaWQgZGVzdHJveShwb2ludGVyIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIG1lbW9yeS0+flkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgbWFrZV9hcnJheV9oZWxwZXI8VFtdLCBVPiYgb3RoZXIpIGNvbnN0IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgbWFrZV9hcnJheV9oZWxwZXI8VFtdLCBVPiYgb3RoZXIpIGNvbnN0IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IAorICAgICAgICAgICAgfQorICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAgc3RkOjpzaXplX3Qgc2l6ZTsKKyAgICAgICAgICAgIFQqKiBkYXRhOworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzdGQ6OnNpemVfdCBOLCB0eXBlbmFtZSBZPgorICAgICAgICBjbGFzcyBtYWtlX2FycmF5X2hlbHBlcjxUW05dLCBZPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUMiwgdHlwZW5hbWUgWTI+CisgICAgICAgICAgICBmcmllbmQgY2xhc3MgbWFrZV9hcnJheV9oZWxwZXI7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIHR5cGVkZWYgWSAgICAgICAgICAgdmFsdWVfdHlwZTsKKyAgICAgICAgICAgIHR5cGVkZWYgWSogICAgICAgICAgcG9pbnRlcjsKKyAgICAgICAgICAgIHR5cGVkZWYgY29uc3QgWSogICAgY29uc3RfcG9pbnRlcjsKKyAgICAgICAgICAgIHR5cGVkZWYgWSYgICAgICAgICAgcmVmZXJlbmNlOworICAgICAgICAgICAgdHlwZWRlZiBjb25zdCBZJiAgICBjb25zdF9yZWZlcmVuY2U7CisgICAgICAgICAgICB0eXBlZGVmIHN0ZDo6c2l6ZV90IHNpemVfdHlwZTsKKyAgICAgICAgICAgIHR5cGVkZWYgcHRyZGlmZl90ICAgZGlmZmVyZW5jZV90eXBlOworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgIHN0cnVjdCByZWJpbmQgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgbWFrZV9hcnJheV9oZWxwZXI8VFtOXSwgVT4gb3RoZXI7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgbWFrZV9hcnJheV9oZWxwZXIoVCoqIGRhdGEpCisgICAgICAgICAgICAgICAgOiBkYXRhKGRhdGEpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBsYXRlPGNsYXNzIFU+CisgICAgICAgICAgICBtYWtlX2FycmF5X2hlbHBlcihjb25zdCBtYWtlX2FycmF5X2hlbHBlcjxUW05dLCBVPiYgb3RoZXIpIAorICAgICAgICAgICAgICAgIDogZGF0YShvdGhlci5kYXRhKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb2ludGVyIGFkZHJlc3MocmVmZXJlbmNlIHZhbHVlKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuICZ2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnN0X3BvaW50ZXIgYWRkcmVzcyhjb25zdF9yZWZlcmVuY2UgdmFsdWUpIGNvbnN0IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gJnZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2l6ZV90eXBlIG1heF9zaXplKCkgY29uc3QgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxzdGQ6OnNpemVfdD4oLTEpIC8gc2l6ZW9mKFkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9pbnRlciBhbGxvY2F0ZShzaXplX3R5cGUgY291bnQsIGNvbnN0IHZvaWQqID0gMCkgeworICAgICAgICAgICAgICAgIHN0ZDo6c2l6ZV90IGExID0gbmRuYm9vc3Q6OmFsaWdubWVudF9vZjxUPjo6dmFsdWU7CisgICAgICAgICAgICAgICAgc3RkOjpzaXplX3QgbjEgPSBjb3VudCAqIHNpemVvZihZKSArIGExIC0gMTsKKyAgICAgICAgICAgICAgICB2b2lkKiAgcDEgPSA6Om9wZXJhdG9yIG5ldyhuMSArIE4xKTsKKyAgICAgICAgICAgICAgICBjaGFyKiAgcDIgPSBzdGF0aWNfY2FzdDxjaGFyKj4ocDEpICsgbjE7CisgICAgICAgICAgICAgICAgd2hpbGUgKHN0ZDo6c2l6ZV90KHAyKSAlIGExICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcDItLTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKmRhdGEgPSByZWludGVycHJldF9jYXN0PFQqPihwMik7CisgICAgICAgICAgICAgICAgcmV0dXJuICByZWludGVycHJldF9jYXN0PFkqPihwMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2b2lkIGRlYWxsb2NhdGUocG9pbnRlciBtZW1vcnksIHNpemVfdHlwZSkgeworICAgICAgICAgICAgICAgIHZvaWQqIHAxID0gbWVtb3J5OworICAgICAgICAgICAgICAgIDo6b3BlcmF0b3IgZGVsZXRlKHAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZvaWQgY29uc3RydWN0KHBvaW50ZXIgbWVtb3J5LCBjb25zdCBZJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIHZvaWQqIHAxID0gbWVtb3J5OworICAgICAgICAgICAgICAgIDo6bmV3KHAxKSBZKHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZvaWQgZGVzdHJveShwb2ludGVyIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIG1lbW9yeS0+flkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgbWFrZV9hcnJheV9oZWxwZXI8VFtOXSwgVT4mIG90aGVyKSBjb25zdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IG1ha2VfYXJyYXlfaGVscGVyPFRbTl0sIFU+JiBvdGhlcikgY29uc3QgeworICAgICAgICAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgCisgICAgICAgICAgICB9CisgICAgICAgIHByaXZhdGU6CisgICAgICAgICAgICBlbnVtIHsKKyAgICAgICAgICAgICAgICBOMSA9IE4gKiBzaXplb2YoVCkKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBUKiogZGF0YTsKKyAgICAgICAgfTsKKyAgICB9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9vcGVyYXRvcl9ib29sLmhwcCBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvb3BlcmF0b3JfYm9vbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFlMTUyNwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvb3BlcmF0b3JfYm9vbC5ocHAKQEAgLTAsMCArMSw2MyBAQAorLy8gIFRoaXMgaGVhZGVyIGludGVudGlvbmFsbHkgaGFzIG5vIGluY2x1ZGUgZ3VhcmRzLgorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwOSwgMjAxMiBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfRVhQTElDSVRfQ09OVkVSU0lPTl9PUEVSQVRPUlMgKSAmJiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUiApCisKKyAgICBleHBsaWNpdCBvcGVyYXRvciBib29sICgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcHggIT0gMDsKKyAgICB9CisKKyNlbGlmICggZGVmaW5lZChfX1NVTlBST19DQykgJiYgQk9PU1RfV09SS0FST1VORChfX1NVTlBST19DQywgPCAweDU3MCkgKSB8fCBkZWZpbmVkKF9fQ0lOVF9fKQorCisgICAgb3BlcmF0b3IgYm9vbCAoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHB4ICE9IDA7CisgICAgfQorCisjZWxpZiBkZWZpbmVkKCBfTUFOQUdFRCApCisKKyAgICBzdGF0aWMgdm9pZCB1bnNwZWNpZmllZF9ib29sKCB0aGlzX3R5cGUqKiogKQorICAgIHsKKyAgICB9CisKKyAgICB0eXBlZGVmIHZvaWQgKCp1bnNwZWNpZmllZF9ib29sX3R5cGUpKCB0aGlzX3R5cGUqKiogKTsKKworICAgIG9wZXJhdG9yIHVuc3BlY2lmaWVkX2Jvb2xfdHlwZSgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcHggPT0gMD8gMDogdW5zcGVjaWZpZWRfYm9vbDsKKyAgICB9CisKKyNlbGlmIFwKKyAgICAoIGRlZmluZWQoX19NV0VSS1NfXykgJiYgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8IDB4MzIwMCkgKSB8fCBcCisgICAgKCBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gKiAxMDAgKyBfX0dOVUNfTUlOT1JfXyA8IDMwNCkgKSB8fCBcCisgICAgKCBkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiBCT09TVF9XT1JLQVJPVU5EKF9fU1VOUFJPX0NDLCA8PSAweDU5MCkgKQorCisgICAgdHlwZWRlZiBlbGVtZW50X3R5cGUgKiAodGhpc190eXBlOjoqdW5zcGVjaWZpZWRfYm9vbF90eXBlKSgpIGNvbnN0OworCisgICAgb3BlcmF0b3IgdW5zcGVjaWZpZWRfYm9vbF90eXBlKCkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHJldHVybiBweCA9PSAwPyAwOiAmdGhpc190eXBlOjpnZXQ7CisgICAgfQorCisjZWxzZQorCisgICAgdHlwZWRlZiBlbGVtZW50X3R5cGUgKiB0aGlzX3R5cGU6Oip1bnNwZWNpZmllZF9ib29sX3R5cGU7CisKKyAgICBvcGVyYXRvciB1bnNwZWNpZmllZF9ib29sX3R5cGUoKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHB4ID09IDA/IDA6ICZ0aGlzX3R5cGU6OnB4OworICAgIH0KKworI2VuZGlmCisKKyAgICAvLyBvcGVyYXRvciEgaXMgcmVkdW5kYW50LCBidXQgc29tZSBjb21waWxlcnMgbmVlZCBpdAorICAgIGJvb2wgb3BlcmF0b3IhICgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcHggPT0gMDsKKyAgICB9CmRpZmYgLS1naXQgYS9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3F1aWNrX2FsbG9jYXRvci5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3F1aWNrX2FsbG9jYXRvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZhMmY3MgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvcXVpY2tfYWxsb2NhdG9yLmhwcApAQCAtMCwwICsxLDE5OSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1FVSUNLX0FMTE9DQVRPUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9RVUlDS19BTExPQ0FUT1JfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGRldGFpbC9xdWlja19hbGxvY2F0b3IuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMyBEYXZpZCBBYnJhaGFtcworLy8gIENvcHlyaWdodCAoYykgMjAwMyBQZXRlciBEaW1vdgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCisjaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9saWdodHdlaWdodF9tdXRleC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvdHlwZV93aXRoX2FsaWdubWVudC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvYWxpZ25tZW50X29mLmhwcD4KKworI2luY2x1ZGUgPG5ldz4gICAgICAgICAgICAgIC8vIDo6b3BlcmF0b3IgbmV3LCA6Om9wZXJhdG9yIGRlbGV0ZQorI2luY2x1ZGUgPGNzdGRkZWY+ICAgICAgICAgIC8vIHN0ZDo6c2l6ZV90CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK3RlbXBsYXRlPHVuc2lnbmVkIHNpemUsIHVuc2lnbmVkIGFsaWduXz4gdW5pb24gZnJlZWJsb2NrCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6dHlwZV93aXRoX2FsaWdubWVudDxhbGlnbl8+Ojp0eXBlIGFsaWduZXJfdHlwZTsKKyAgICBhbGlnbmVyX3R5cGUgYWxpZ25lcjsKKyAgICBjaGFyIGJ5dGVzW3NpemVdOworICAgIGZyZWVibG9jayAqIG5leHQ7Cit9OworCit0ZW1wbGF0ZTx1bnNpZ25lZCBzaXplLCB1bnNpZ25lZCBhbGlnbl8+IHN0cnVjdCBhbGxvY2F0b3JfaW1wbAoreworICAgIHR5cGVkZWYgZnJlZWJsb2NrPHNpemUsIGFsaWduXz4gYmxvY2s7CisKKyAgICAvLyBJdCBtYXkgc2VlbSBvZGQgdG8gdXNlIHN1Y2ggc21hbGwgcGFnZXMuCisgICAgLy8KKyAgICAvLyBIb3dldmVyLCBvbiBhIHR5cGljYWwgV2luZG93cyBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMKKyAgICAvLyB0aGUgT1MgYWxsb2NhdG9yLCAibm9ybWFsIHNpemUiIHBhZ2VzIGludGVyYWN0IHdpdGggdGhlCisgICAgLy8gIm9yZGluYXJ5IiBvcGVyYXRvciBuZXcsIHNsb3dpbmcgaXQgZG93biBkcmFtYXRpY2FsbHkuCisgICAgLy8KKyAgICAvLyA1MTIgYnl0ZSBwYWdlcyBhcmUgaGFuZGxlZCBieSB0aGUgc21hbGwgb2JqZWN0IGFsbG9jYXRvciwKKyAgICAvLyBhbmQgZG9uJ3QgaW50ZXJmZXJlIHdpdGggOjpuZXcuCisgICAgLy8KKyAgICAvLyBUaGUgb3RoZXIgYWx0ZXJuYXRpdmUgaXMgdG8gdXNlIG11Y2ggYmlnZ2VyIHBhZ2VzICgxTS4pCisgICAgLy8KKyAgICAvLyBJdCBpcyBzdXJwcmlzaW5nbHkgZWFzeSB0byBoaXQgcGF0aG9sb2dpY2FsIGJlaGF2aW9yIGJ5CisgICAgLy8gdmFyeWluZyB0aGUgcGFnZSBzaXplLiBnKysgMi45NiBvbiBSZWQgSGF0IExpbnV4IDcuMiwKKyAgICAvLyBmb3IgZXhhbXBsZSwgcGFzc2lvbmF0ZWx5IGRpc2xpa2VzIDQ5Ni4gNTEyIHNlZW1zIE9LLgorCisjaWYgZGVmaW5lZChCT09TVF9RQV9QQUdFX1NJWkUpCisKKyAgICBlbnVtIHsgaXRlbXNfcGVyX3BhZ2UgPSBCT09TVF9RQV9QQUdFX1NJWkUgLyBzaXplIH07CisKKyNlbHNlCisKKyAgICBlbnVtIHsgaXRlbXNfcGVyX3BhZ2UgPSA1MTIgLyBzaXplIH07IC8vIDEwNDg1NjAgLyBzaXplCisKKyNlbmRpZgorCisjaWZkZWYgQk9PU1RfSEFTX1RIUkVBRFMKKworICAgIHN0YXRpYyBsaWdodHdlaWdodF9tdXRleCAmIG11dGV4KCkKKyAgICB7CisgICAgICAgIHN0YXRpYyBmcmVlYmxvY2s8IHNpemVvZiggbGlnaHR3ZWlnaHRfbXV0ZXggKSwgbmRuYm9vc3Q6OmFsaWdubWVudF9vZjwgbGlnaHR3ZWlnaHRfbXV0ZXggPjo6dmFsdWUgPiBmYm07CisgICAgICAgIHN0YXRpYyBsaWdodHdlaWdodF9tdXRleCAqIHBtID0gbmV3KCAmZmJtICkgbGlnaHR3ZWlnaHRfbXV0ZXg7CisgICAgICAgIHJldHVybiAqcG07CisgICAgfQorCisgICAgc3RhdGljIGxpZ2h0d2VpZ2h0X211dGV4ICogbXV0ZXhfaW5pdDsKKworI2VuZGlmCisKKyAgICBzdGF0aWMgYmxvY2sgKiBmcmVlOworICAgIHN0YXRpYyBibG9jayAqIHBhZ2U7CisgICAgc3RhdGljIHVuc2lnbmVkIGxhc3Q7CisKKyAgICBzdGF0aWMgaW5saW5lIHZvaWQgKiBhbGxvYygpCisgICAgeworI2lmZGVmIEJPT1NUX0hBU19USFJFQURTCisgICAgICAgIGxpZ2h0d2VpZ2h0X211dGV4OjpzY29wZWRfbG9jayBsb2NrKCBtdXRleCgpICk7CisjZW5kaWYKKyAgICAgICAgaWYoYmxvY2sgKiB4ID0gZnJlZSkKKyAgICAgICAgeworICAgICAgICAgICAgZnJlZSA9IHgtPm5leHQ7CisgICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKGxhc3QgPT0gaXRlbXNfcGVyX3BhZ2UpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gIkxpc3RlbiB0byBtZSBjYXJlZnVsbHk6IHRoZXJlIGlzIG5vIG1lbW9yeSBsZWFrIgorICAgICAgICAgICAgICAgIC8vIC0tIFNjb3R0IE1leWVycywgRWZmIEMrKyAybmQgRWQgSXRlbSAxMAorICAgICAgICAgICAgICAgIHBhZ2UgPSA6Om5ldyBibG9ja1tpdGVtc19wZXJfcGFnZV07CisgICAgICAgICAgICAgICAgbGFzdCA9IDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiAmcGFnZVtsYXN0KytdOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGlubGluZSB2b2lkICogYWxsb2Moc3RkOjpzaXplX3QgbikKKyAgICB7CisgICAgICAgIGlmKG4gIT0gc2l6ZSkgLy8gY2xhc3Mtc3BlY2lmaWMgbmV3IGNhbGxlZCBmb3IgYSBkZXJpdmVkIG9iamVjdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gOjpvcGVyYXRvciBuZXcobik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisjaWZkZWYgQk9PU1RfSEFTX1RIUkVBRFMKKyAgICAgICAgICAgIGxpZ2h0d2VpZ2h0X211dGV4OjpzY29wZWRfbG9jayBsb2NrKCBtdXRleCgpICk7CisjZW5kaWYKKyAgICAgICAgICAgIGlmKGJsb2NrICogeCA9IGZyZWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZnJlZSA9IHgtPm5leHQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIHg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYobGFzdCA9PSBpdGVtc19wZXJfcGFnZSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHBhZ2UgPSA6Om5ldyBibG9ja1tpdGVtc19wZXJfcGFnZV07CisgICAgICAgICAgICAgICAgICAgIGxhc3QgPSAwOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiAmcGFnZVtsYXN0KytdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGlubGluZSB2b2lkIGRlYWxsb2Modm9pZCAqIHB2KQorICAgIHsKKyAgICAgICAgaWYocHYgIT0gMCkgLy8gMTguNC4xLjEvMTMKKyAgICAgICAgeworI2lmZGVmIEJPT1NUX0hBU19USFJFQURTCisgICAgICAgICAgICBsaWdodHdlaWdodF9tdXRleDo6c2NvcGVkX2xvY2sgbG9jayggbXV0ZXgoKSApOworI2VuZGlmCisgICAgICAgICAgICBibG9jayAqIHBiID0gc3RhdGljX2Nhc3Q8YmxvY2sgKj4ocHYpOworICAgICAgICAgICAgcGItPm5leHQgPSBmcmVlOworICAgICAgICAgICAgZnJlZSA9IHBiOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGlubGluZSB2b2lkIGRlYWxsb2Modm9pZCAqIHB2LCBzdGQ6OnNpemVfdCBuKQorICAgIHsKKyAgICAgICAgaWYobiAhPSBzaXplKSAvLyBjbGFzcy1zcGVjaWZpYyBkZWxldGUgY2FsbGVkIGZvciBhIGRlcml2ZWQgb2JqZWN0CisgICAgICAgIHsKKyAgICAgICAgICAgIDo6b3BlcmF0b3IgZGVsZXRlKHB2KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmKHB2ICE9IDApIC8vIDE4LjQuMS4xLzEzCisgICAgICAgIHsKKyNpZmRlZiBCT09TVF9IQVNfVEhSRUFEUworICAgICAgICAgICAgbGlnaHR3ZWlnaHRfbXV0ZXg6OnNjb3BlZF9sb2NrIGxvY2soIG11dGV4KCkgKTsKKyNlbmRpZgorICAgICAgICAgICAgYmxvY2sgKiBwYiA9IHN0YXRpY19jYXN0PGJsb2NrICo+KHB2KTsKKyAgICAgICAgICAgIHBiLT5uZXh0ID0gZnJlZTsKKyAgICAgICAgICAgIGZyZWUgPSBwYjsKKyAgICAgICAgfQorICAgIH0KK307CisKKyNpZmRlZiBCT09TVF9IQVNfVEhSRUFEUworCit0ZW1wbGF0ZTx1bnNpZ25lZCBzaXplLCB1bnNpZ25lZCBhbGlnbl8+CisgIGxpZ2h0d2VpZ2h0X211dGV4ICogYWxsb2NhdG9yX2ltcGw8c2l6ZSwgYWxpZ25fPjo6bXV0ZXhfaW5pdCA9ICZhbGxvY2F0b3JfaW1wbDxzaXplLCBhbGlnbl8+OjptdXRleCgpOworCisjZW5kaWYKKwordGVtcGxhdGU8dW5zaWduZWQgc2l6ZSwgdW5zaWduZWQgYWxpZ25fPgorICBmcmVlYmxvY2s8c2l6ZSwgYWxpZ25fPiAqIGFsbG9jYXRvcl9pbXBsPHNpemUsIGFsaWduXz46OmZyZWUgPSAwOworCit0ZW1wbGF0ZTx1bnNpZ25lZCBzaXplLCB1bnNpZ25lZCBhbGlnbl8+CisgIGZyZWVibG9jazxzaXplLCBhbGlnbl8+ICogYWxsb2NhdG9yX2ltcGw8c2l6ZSwgYWxpZ25fPjo6cGFnZSA9IDA7CisKK3RlbXBsYXRlPHVuc2lnbmVkIHNpemUsIHVuc2lnbmVkIGFsaWduXz4KKyAgdW5zaWduZWQgYWxsb2NhdG9yX2ltcGw8c2l6ZSwgYWxpZ25fPjo6bGFzdCA9IGFsbG9jYXRvcl9pbXBsPHNpemUsIGFsaWduXz46Oml0ZW1zX3Blcl9wYWdlOworCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IHF1aWNrX2FsbG9jYXRvcjogcHVibGljIGFsbG9jYXRvcl9pbXBsPCBzaXplb2YoVCksIG5kbmJvb3N0OjphbGlnbm1lbnRfb2Y8VD46OnZhbHVlID4KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9RVUlDS19BTExPQ0FUT1JfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NoYXJlZF9jb3VudC5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NoYXJlZF9jb3VudC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODlhYzAyYwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc2hhcmVkX2NvdW50LmhwcApAQCAtMCwwICsxLDYwMyBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NIQVJFRF9DT1VOVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TSEFSRURfQ09VTlRfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGRldGFpbC9zaGFyZWRfY291bnQuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAwMyBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8gIENvcHlyaWdodCAyMDA0LTIwMDUgUGV0ZXIgRGltb3YKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaWZkZWYgX19CT1JMQU5EQ19fCisjIHByYWdtYSB3YXJuIC04MDI3ICAgICAvLyBGdW5jdGlvbnMgY29udGFpbmluZyB0cnkgYXJlIG5vdCBleHBhbmRlZCBpbmxpbmUKKyNlbmRpZgorCisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxib29zdC9jaGVja2VkX2RlbGV0ZS5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdGhyb3dfZXhjZXB0aW9uLmhwcD4KKyNpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvYmFkX3dlYWtfcHRyLmhwcD4KKyNpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZS5ocHA+CisjaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2ltcGwuaHBwPgorI2luY2x1ZGUgPGJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKy8vIEluIG9yZGVyIHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llcyB3aXRoIEJvb3N0LlRSMQorLy8gd2UgbWFrZSBzdXJlIHRoYXQgb3VyIGluY2x1ZGUgb2YgPG1lbW9yeT4gZG9lc24ndCB0cnkgdG8KKy8vIHB1bGwgaW4gdGhlIFRSMSBoZWFkZXJzOiB0aGF0J3Mgd2h5IHdlIHVzZSB0aGlzIGhlYWRlciAKKy8vIHJhdGhlciB0aGFuIGluY2x1ZGluZyA8bWVtb3J5PiBkaXJlY3RseToKKyNpbmNsdWRlIDxib29zdC9jb25maWcvbm9fdHIxL21lbW9yeS5ocHA+ICAvLyBzdGQ6OmF1dG9fcHRyCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4gICAgICAgLy8gc3RkOjpsZXNzCisKKyNpZmRlZiBCT09TVF9OT19FWENFUFRJT05TCisjIGluY2x1ZGUgPG5ldz4gICAgICAgICAgICAgIC8vIHN0ZDo6YmFkX2FsbG9jCisjZW5kaWYKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9TTUFSVF9QVFIgKQorIyBpbmNsdWRlIDxib29zdC91dGlsaXR5L2FkZHJlc3NvZi5ocHA+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorCitpbnQgY29uc3Qgc2hhcmVkX2NvdW50X2lkID0gMHgyQzM1RjEwMTsKK2ludCBjb25zdCAgIHdlYWtfY291bnRfaWQgPSAweDI5OEMzOEE0OworCisjZW5kaWYKKworc3RydWN0IHNwX25vdGhyb3dfdGFnIHt9OworCit0ZW1wbGF0ZTwgY2xhc3MgRCA+IHN0cnVjdCBzcF9pbnBsYWNlX3RhZworeworfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9TTUFSVF9QVFIgKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IGNsYXNzIHNwX3JlZmVyZW5jZV93cmFwcGVyCit7IAorcHVibGljOgorCisgICAgZXhwbGljaXQgc3BfcmVmZXJlbmNlX3dyYXBwZXIoIFQgJiB0KTogdF8oIG5kbmJvb3N0OjphZGRyZXNzb2YoIHQgKSApCisgICAgeworICAgIH0KKworICAgIHRlbXBsYXRlPCBjbGFzcyBZID4gdm9pZCBvcGVyYXRvcigpKCBZICogcCApIGNvbnN0CisgICAgeworICAgICAgICAoKnRfKSggcCApOworICAgIH0KKworcHJpdmF0ZToKKworICAgIFQgKiB0XzsKK307CisKK3RlbXBsYXRlPCBjbGFzcyBEID4gc3RydWN0IHNwX2NvbnZlcnRfcmVmZXJlbmNlCit7CisgICAgdHlwZWRlZiBEIHR5cGU7Cit9OworCit0ZW1wbGF0ZTwgY2xhc3MgRCA+IHN0cnVjdCBzcF9jb252ZXJ0X3JlZmVyZW5jZTwgRCYgPgoreworICAgIHR5cGVkZWYgc3BfcmVmZXJlbmNlX3dyYXBwZXI8IEQgPiB0eXBlOworfTsKKworI2VuZGlmCisKK2NsYXNzIHdlYWtfY291bnQ7CisKK2NsYXNzIHNoYXJlZF9jb3VudAoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSAqIHBpXzsKKworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgIGludCBpZF87CisjZW5kaWYKKworICAgIGZyaWVuZCBjbGFzcyB3ZWFrX2NvdW50OworCitwdWJsaWM6CisKKyAgICBzaGFyZWRfY291bnQoKTogcGlfKDApIC8vIG5vdGhyb3cKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgLCBpZF8oc2hhcmVkX2NvdW50X2lkKQorI2VuZGlmCisgICAgeworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFk+IGV4cGxpY2l0IHNoYXJlZF9jb3VudCggWSAqIHAgKTogcGlfKCAwICkKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgLCBpZF8oc2hhcmVkX2NvdW50X2lkKQorI2VuZGlmCisgICAgeworI2lmbmRlZiBCT09TVF9OT19FWENFUFRJT05TCisKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIHBpXyA9IG5ldyBzcF9jb3VudGVkX2ltcGxfcDxZPiggcCApOworICAgICAgICB9CisgICAgICAgIGNhdGNoKC4uLikKKyAgICAgICAgeworICAgICAgICAgICAgbmRuYm9vc3Q6OmNoZWNrZWRfZGVsZXRlKCBwICk7CisgICAgICAgICAgICB0aHJvdzsKKyAgICAgICAgfQorCisjZWxzZQorCisgICAgICAgIHBpXyA9IG5ldyBzcF9jb3VudGVkX2ltcGxfcDxZPiggcCApOworCisgICAgICAgIGlmKCBwaV8gPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5kbmJvb3N0OjpjaGVja2VkX2RlbGV0ZSggcCApOworICAgICAgICAgICAgbmRuYm9vc3Q6OnRocm93X2V4Y2VwdGlvbiggc3RkOjpiYWRfYWxsb2MoKSApOworICAgICAgICB9CisKKyNlbmRpZgorICAgIH0KKworI2lmIGRlZmluZWQoIEJPT1NUX01TVkMgKSAmJiBCT09TVF9XT1JLQVJPVU5EKCBCT09TVF9NU1ZDLCA8PSAxMjAwICkKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZLCBjbGFzcyBEPiBzaGFyZWRfY291bnQoIFkgKiBwLCBEIGQgKTogcGlfKDApCisjZWxzZQorICAgIHRlbXBsYXRlPGNsYXNzIFAsIGNsYXNzIEQ+IHNoYXJlZF9jb3VudCggUCBwLCBEIGQgKTogcGlfKDApCisjZW5kaWYKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgLCBpZF8oc2hhcmVkX2NvdW50X2lkKQorI2VuZGlmCisgICAgeworI2lmIGRlZmluZWQoIEJPT1NUX01TVkMgKSAmJiBCT09TVF9XT1JLQVJPVU5EKCBCT09TVF9NU1ZDLCA8PSAxMjAwICkKKyAgICAgICAgdHlwZWRlZiBZKiBQOworI2VuZGlmCisjaWZuZGVmIEJPT1NUX05PX0VYQ0VQVElPTlMKKworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgcGlfID0gbmV3IHNwX2NvdW50ZWRfaW1wbF9wZDxQLCBEPihwLCBkKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCguLi4pCisgICAgICAgIHsKKyAgICAgICAgICAgIGQocCk7IC8vIGRlbGV0ZSBwCisgICAgICAgICAgICB0aHJvdzsKKyAgICAgICAgfQorCisjZWxzZQorCisgICAgICAgIHBpXyA9IG5ldyBzcF9jb3VudGVkX2ltcGxfcGQ8UCwgRD4ocCwgZCk7CisKKyAgICAgICAgaWYocGlfID09IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIGQocCk7IC8vIGRlbGV0ZSBwCisgICAgICAgICAgICBuZG5ib29zdDo6dGhyb3dfZXhjZXB0aW9uKHN0ZDo6YmFkX2FsbG9jKCkpOworICAgICAgICB9CisKKyNlbmRpZgorICAgIH0KKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19GVU5DVElPTl9URU1QTEFURV9PUkRFUklORyApCisKKyAgICB0ZW1wbGF0ZTwgY2xhc3MgUCwgY2xhc3MgRCA+IHNoYXJlZF9jb3VudCggUCBwLCBzcF9pbnBsYWNlX3RhZzxEPiApOiBwaV8oIDAgKQorI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICAsIGlkXyhzaGFyZWRfY291bnRfaWQpCisjZW5kaWYKKyAgICB7CisjaWZuZGVmIEJPT1NUX05PX0VYQ0VQVElPTlMKKworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgcGlfID0gbmV3IHNwX2NvdW50ZWRfaW1wbF9wZDwgUCwgRCA+KCBwICk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goIC4uLiApCisgICAgICAgIHsKKyAgICAgICAgICAgIEQoKSggcCApOyAvLyBkZWxldGUgcAorICAgICAgICAgICAgdGhyb3c7CisgICAgICAgIH0KKworI2Vsc2UKKworICAgICAgICBwaV8gPSBuZXcgc3BfY291bnRlZF9pbXBsX3BkPCBQLCBEID4oIHAgKTsKKworICAgICAgICBpZiggcGlfID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBEKCkoIHAgKTsgLy8gZGVsZXRlIHAKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp0aHJvd19leGNlcHRpb24oIHN0ZDo6YmFkX2FsbG9jKCkgKTsKKyAgICAgICAgfQorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9OT19FWENFUFRJT05TCisgICAgfQorCisjZW5kaWYgLy8gIWRlZmluZWQoIEJPT1NUX05PX0ZVTkNUSU9OX1RFTVBMQVRFX09SREVSSU5HICkKKworICAgIHRlbXBsYXRlPGNsYXNzIFAsIGNsYXNzIEQsIGNsYXNzIEE+IHNoYXJlZF9jb3VudCggUCBwLCBEIGQsIEEgYSApOiBwaV8oIDAgKQorI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICAsIGlkXyhzaGFyZWRfY291bnRfaWQpCisjZW5kaWYKKyAgICB7CisgICAgICAgIHR5cGVkZWYgc3BfY291bnRlZF9pbXBsX3BkYTxQLCBELCBBPiBpbXBsX3R5cGU7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTo6dGVtcGxhdGUgcmViaW5kPCBpbXBsX3R5cGUgPjo6b3RoZXIgQTI7CisKKyAgICAgICAgQTIgYTIoIGEgKTsKKworI2lmbmRlZiBCT09TVF9OT19FWENFUFRJT05TCisKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIHBpXyA9IGEyLmFsbG9jYXRlKCAxLCBzdGF0aWNfY2FzdDwgaW1wbF90eXBlKiA+KCAwICkgKTsKKyAgICAgICAgICAgIG5ldyggc3RhdGljX2Nhc3Q8IHZvaWQqID4oIHBpXyApICkgaW1wbF90eXBlKCBwLCBkLCBhICk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goLi4uKQorICAgICAgICB7CisgICAgICAgICAgICBkKCBwICk7CisKKyAgICAgICAgICAgIGlmKCBwaV8gIT0gMCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYTIuZGVhbGxvY2F0ZSggc3RhdGljX2Nhc3Q8IGltcGxfdHlwZSogPiggcGlfICksIDEgKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhyb3c7CisgICAgICAgIH0KKworI2Vsc2UKKworICAgICAgICBwaV8gPSBhMi5hbGxvY2F0ZSggMSwgc3RhdGljX2Nhc3Q8IGltcGxfdHlwZSogPiggMCApICk7CisKKyAgICAgICAgaWYoIHBpXyAhPSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgbmV3KCBzdGF0aWNfY2FzdDwgdm9pZCogPiggcGlfICkgKSBpbXBsX3R5cGUoIHAsIGQsIGEgKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGQoIHAgKTsKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp0aHJvd19leGNlcHRpb24oIHN0ZDo6YmFkX2FsbG9jKCkgKTsKKyAgICAgICAgfQorCisjZW5kaWYKKyAgICB9CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcgKQorCisgICAgdGVtcGxhdGU8IGNsYXNzIFAsIGNsYXNzIEQsIGNsYXNzIEEgPiBzaGFyZWRfY291bnQoIFAgcCwgc3BfaW5wbGFjZV90YWc8IEQgPiwgQSBhICk6IHBpXyggMCApCisjaWYgZGVmaW5lZChCT09TVF9TUF9FTkFCTEVfREVCVUdfSE9PS1MpCisgICAgICAgICwgaWRfKHNoYXJlZF9jb3VudF9pZCkKKyNlbmRpZgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBzcF9jb3VudGVkX2ltcGxfcGRhPCBQLCBELCBBID4gaW1wbF90eXBlOworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEE6OnRlbXBsYXRlIHJlYmluZDwgaW1wbF90eXBlID46Om90aGVyIEEyOworCisgICAgICAgIEEyIGEyKCBhICk7CisKKyNpZm5kZWYgQk9PU1RfTk9fRVhDRVBUSU9OUworCisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBwaV8gPSBhMi5hbGxvY2F0ZSggMSwgc3RhdGljX2Nhc3Q8IGltcGxfdHlwZSogPiggMCApICk7CisgICAgICAgICAgICBuZXcoIHN0YXRpY19jYXN0PCB2b2lkKiA+KCBwaV8gKSApIGltcGxfdHlwZSggcCwgYSApOworICAgICAgICB9CisgICAgICAgIGNhdGNoKC4uLikKKyAgICAgICAgeworICAgICAgICAgICAgRCgpKCBwICk7CisKKyAgICAgICAgICAgIGlmKCBwaV8gIT0gMCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYTIuZGVhbGxvY2F0ZSggc3RhdGljX2Nhc3Q8IGltcGxfdHlwZSogPiggcGlfICksIDEgKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhyb3c7CisgICAgICAgIH0KKworI2Vsc2UKKworICAgICAgICBwaV8gPSBhMi5hbGxvY2F0ZSggMSwgc3RhdGljX2Nhc3Q8IGltcGxfdHlwZSogPiggMCApICk7CisKKyAgICAgICAgaWYoIHBpXyAhPSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgbmV3KCBzdGF0aWNfY2FzdDwgdm9pZCogPiggcGlfICkgKSBpbXBsX3R5cGUoIHAsIGEgKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIEQoKSggcCApOworICAgICAgICAgICAgbmRuYm9vc3Q6OnRocm93X2V4Y2VwdGlvbiggc3RkOjpiYWRfYWxsb2MoKSApOworICAgICAgICB9CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX05PX0VYQ0VQVElPTlMKKyAgICB9CisKKyNlbmRpZiAvLyAhZGVmaW5lZCggQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcgKQorCisjaWZuZGVmIEJPT1NUX05PX0FVVE9fUFRSCisKKyAgICAvLyBhdXRvX3B0cjxZPiBpcyBzcGVjaWFsIGNhc2VkIHRvIHByb3ZpZGUgdGhlIHN0cm9uZyBndWFyYW50ZWUKKworICAgIHRlbXBsYXRlPGNsYXNzIFk+CisgICAgZXhwbGljaXQgc2hhcmVkX2NvdW50KCBzdGQ6OmF1dG9fcHRyPFk+ICYgciApOiBwaV8oIG5ldyBzcF9jb3VudGVkX2ltcGxfcDxZPiggci5nZXQoKSApICkKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgLCBpZF8oc2hhcmVkX2NvdW50X2lkKQorI2VuZGlmCisgICAgeworI2lmZGVmIEJPT1NUX05PX0VYQ0VQVElPTlMKKworICAgICAgICBpZiggcGlfID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBuZG5ib29zdDo6dGhyb3dfZXhjZXB0aW9uKHN0ZDo6YmFkX2FsbG9jKCkpOworICAgICAgICB9CisKKyNlbmRpZgorCisgICAgICAgIHIucmVsZWFzZSgpOworICAgIH0KKworI2VuZGlmIAorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX1NNQVJUX1BUUiApCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZLCBjbGFzcyBEPgorICAgIGV4cGxpY2l0IHNoYXJlZF9jb3VudCggc3RkOjp1bmlxdWVfcHRyPFksIEQ+ICYgciApOiBwaV8oIDAgKQorI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICAsIGlkXyhzaGFyZWRfY291bnRfaWQpCisjZW5kaWYKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgc3BfY29udmVydF9yZWZlcmVuY2U8RD46OnR5cGUgRDI7CisKKyAgICAgICAgRDIgZDIoIHIuZ2V0X2RlbGV0ZXIoKSApOworICAgICAgICBwaV8gPSBuZXcgc3BfY291bnRlZF9pbXBsX3BkPCB0eXBlbmFtZSBzdGQ6OnVuaXF1ZV9wdHI8WSwgRD46OnBvaW50ZXIsIEQyID4oIHIuZ2V0KCksIGQyICk7CisKKyNpZmRlZiBCT09TVF9OT19FWENFUFRJT05TCisKKyAgICAgICAgaWYoIHBpXyA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgbmRuYm9vc3Q6OnRocm93X2V4Y2VwdGlvbiggc3RkOjpiYWRfYWxsb2MoKSApOworICAgICAgICB9CisKKyNlbmRpZgorCisgICAgICAgIHIucmVsZWFzZSgpOworICAgIH0KKworI2VuZGlmCisKKyAgICB+c2hhcmVkX2NvdW50KCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIHBpXyAhPSAwICkgcGlfLT5yZWxlYXNlKCk7CisjaWYgZGVmaW5lZChCT09TVF9TUF9FTkFCTEVfREVCVUdfSE9PS1MpCisgICAgICAgIGlkXyA9IDA7CisjZW5kaWYKKyAgICB9CisKKyAgICBzaGFyZWRfY291bnQoc2hhcmVkX2NvdW50IGNvbnN0ICYgcik6IHBpXyhyLnBpXykgLy8gbm90aHJvdworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICAsIGlkXyhzaGFyZWRfY291bnRfaWQpCisjZW5kaWYKKyAgICB7CisgICAgICAgIGlmKCBwaV8gIT0gMCApIHBpXy0+YWRkX3JlZl9jb3B5KCk7CisgICAgfQorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTICkKKworICAgIHNoYXJlZF9jb3VudChzaGFyZWRfY291bnQgJiYgcik6IHBpXyhyLnBpXykgLy8gbm90aHJvdworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICAsIGlkXyhzaGFyZWRfY291bnRfaWQpCisjZW5kaWYKKyAgICB7CisgICAgICAgIHIucGlfID0gMDsKKyAgICB9CisKKyNlbmRpZgorCisgICAgZXhwbGljaXQgc2hhcmVkX2NvdW50KHdlYWtfY291bnQgY29uc3QgJiByKTsgLy8gdGhyb3dzIGJhZF93ZWFrX3B0ciB3aGVuIHIudXNlX2NvdW50KCkgPT0gMAorICAgIHNoYXJlZF9jb3VudCggd2Vha19jb3VudCBjb25zdCAmIHIsIHNwX25vdGhyb3dfdGFnICk7IC8vIGNvbnN0cnVjdHMgYW4gZW1wdHkgKnRoaXMgd2hlbiByLnVzZV9jb3VudCgpID09IDAKKworICAgIHNoYXJlZF9jb3VudCAmIG9wZXJhdG9yPSAoc2hhcmVkX2NvdW50IGNvbnN0ICYgcikgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgc3BfY291bnRlZF9iYXNlICogdG1wID0gci5waV87CisKKyAgICAgICAgaWYoIHRtcCAhPSBwaV8gKQorICAgICAgICB7CisgICAgICAgICAgICBpZiggdG1wICE9IDAgKSB0bXAtPmFkZF9yZWZfY29weSgpOworICAgICAgICAgICAgaWYoIHBpXyAhPSAwICkgcGlfLT5yZWxlYXNlKCk7CisgICAgICAgICAgICBwaV8gPSB0bXA7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgdm9pZCBzd2FwKHNoYXJlZF9jb3VudCAmIHIpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHNwX2NvdW50ZWRfYmFzZSAqIHRtcCA9IHIucGlfOworICAgICAgICByLnBpXyA9IHBpXzsKKyAgICAgICAgcGlfID0gdG1wOworICAgIH0KKworICAgIGxvbmcgdXNlX2NvdW50KCkgY29uc3QgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgcmV0dXJuIHBpXyAhPSAwPyBwaV8tPnVzZV9jb3VudCgpOiAwOworICAgIH0KKworICAgIGJvb2wgdW5pcXVlKCkgY29uc3QgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgcmV0dXJuIHVzZV9jb3VudCgpID09IDE7CisgICAgfQorCisgICAgYm9vbCBlbXB0eSgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiBwaV8gPT0gMDsKKyAgICB9CisKKyAgICBmcmllbmQgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShzaGFyZWRfY291bnQgY29uc3QgJiBhLCBzaGFyZWRfY291bnQgY29uc3QgJiBiKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGEucGlfID09IGIucGlfOworICAgIH0KKworICAgIGZyaWVuZCBpbmxpbmUgYm9vbCBvcGVyYXRvcjwoc2hhcmVkX2NvdW50IGNvbnN0ICYgYSwgc2hhcmVkX2NvdW50IGNvbnN0ICYgYikKKyAgICB7CisgICAgICAgIHJldHVybiBzdGQ6Omxlc3M8c3BfY291bnRlZF9iYXNlICo+KCkoIGEucGlfLCBiLnBpXyApOworICAgIH0KKworICAgIHZvaWQgKiBnZXRfZGVsZXRlciggc3BfdHlwZWluZm8gY29uc3QgJiB0aSApIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gcGlfPyBwaV8tPmdldF9kZWxldGVyKCB0aSApOiAwOworICAgIH0KKworICAgIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBwaV8/IHBpXy0+Z2V0X3VudHlwZWRfZGVsZXRlcigpOiAwOworICAgIH0KK307CisKKworY2xhc3Mgd2Vha19jb3VudAoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSAqIHBpXzsKKworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgIGludCBpZF87CisjZW5kaWYKKworICAgIGZyaWVuZCBjbGFzcyBzaGFyZWRfY291bnQ7CisKK3B1YmxpYzoKKworICAgIHdlYWtfY291bnQoKTogcGlfKDApIC8vIG5vdGhyb3cKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgLCBpZF8od2Vha19jb3VudF9pZCkKKyNlbmRpZgorICAgIHsKKyAgICB9CisKKyAgICB3ZWFrX2NvdW50KHNoYXJlZF9jb3VudCBjb25zdCAmIHIpOiBwaV8oci5waV8pIC8vIG5vdGhyb3cKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgLCBpZF8od2Vha19jb3VudF9pZCkKKyNlbmRpZgorICAgIHsKKyAgICAgICAgaWYocGlfICE9IDApIHBpXy0+d2Vha19hZGRfcmVmKCk7CisgICAgfQorCisgICAgd2Vha19jb3VudCh3ZWFrX2NvdW50IGNvbnN0ICYgcik6IHBpXyhyLnBpXykgLy8gbm90aHJvdworI2lmIGRlZmluZWQoQk9PU1RfU1BfRU5BQkxFX0RFQlVHX0hPT0tTKQorICAgICAgICAsIGlkXyh3ZWFrX2NvdW50X2lkKQorI2VuZGlmCisgICAgeworICAgICAgICBpZihwaV8gIT0gMCkgcGlfLT53ZWFrX2FkZF9yZWYoKTsKKyAgICB9CisKKy8vIE1vdmUgc3VwcG9ydAorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTICkKKworICAgIHdlYWtfY291bnQod2Vha19jb3VudCAmJiByKTogcGlfKHIucGlfKSAvLyBub3Rocm93CisjaWYgZGVmaW5lZChCT09TVF9TUF9FTkFCTEVfREVCVUdfSE9PS1MpCisgICAgICAgICwgaWRfKHdlYWtfY291bnRfaWQpCisjZW5kaWYKKyAgICB7CisgICAgICAgIHIucGlfID0gMDsKKyAgICB9CisKKyNlbmRpZgorCisgICAgfndlYWtfY291bnQoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZihwaV8gIT0gMCkgcGlfLT53ZWFrX3JlbGVhc2UoKTsKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgaWRfID0gMDsKKyNlbmRpZgorICAgIH0KKworICAgIHdlYWtfY291bnQgJiBvcGVyYXRvcj0gKHNoYXJlZF9jb3VudCBjb25zdCAmIHIpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHNwX2NvdW50ZWRfYmFzZSAqIHRtcCA9IHIucGlfOworCisgICAgICAgIGlmKCB0bXAgIT0gcGlfICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYodG1wICE9IDApIHRtcC0+d2Vha19hZGRfcmVmKCk7CisgICAgICAgICAgICBpZihwaV8gIT0gMCkgcGlfLT53ZWFrX3JlbGVhc2UoKTsKKyAgICAgICAgICAgIHBpXyA9IHRtcDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICB3ZWFrX2NvdW50ICYgb3BlcmF0b3I9ICh3ZWFrX2NvdW50IGNvbnN0ICYgcikgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgc3BfY291bnRlZF9iYXNlICogdG1wID0gci5waV87CisKKyAgICAgICAgaWYoIHRtcCAhPSBwaV8gKQorICAgICAgICB7CisgICAgICAgICAgICBpZih0bXAgIT0gMCkgdG1wLT53ZWFrX2FkZF9yZWYoKTsKKyAgICAgICAgICAgIGlmKHBpXyAhPSAwKSBwaV8tPndlYWtfcmVsZWFzZSgpOworICAgICAgICAgICAgcGlfID0gdG1wOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIHZvaWQgc3dhcCh3ZWFrX2NvdW50ICYgcikgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgc3BfY291bnRlZF9iYXNlICogdG1wID0gci5waV87CisgICAgICAgIHIucGlfID0gcGlfOworICAgICAgICBwaV8gPSB0bXA7CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCAvLyBub3Rocm93CisgICAgeworICAgICAgICByZXR1cm4gcGlfICE9IDA/IHBpXy0+dXNlX2NvdW50KCk6IDA7CisgICAgfQorCisgICAgYm9vbCBlbXB0eSgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiBwaV8gPT0gMDsKKyAgICB9CisKKyAgICBmcmllbmQgaW5saW5lIGJvb2wgb3BlcmF0b3I9PSh3ZWFrX2NvdW50IGNvbnN0ICYgYSwgd2Vha19jb3VudCBjb25zdCAmIGIpCisgICAgeworICAgICAgICByZXR1cm4gYS5waV8gPT0gYi5waV87CisgICAgfQorCisgICAgZnJpZW5kIGlubGluZSBib29sIG9wZXJhdG9yPCh3ZWFrX2NvdW50IGNvbnN0ICYgYSwgd2Vha19jb3VudCBjb25zdCAmIGIpCisgICAgeworICAgICAgICByZXR1cm4gc3RkOjpsZXNzPHNwX2NvdW50ZWRfYmFzZSAqPigpKGEucGlfLCBiLnBpXyk7CisgICAgfQorfTsKKworaW5saW5lIHNoYXJlZF9jb3VudDo6c2hhcmVkX2NvdW50KCB3ZWFrX2NvdW50IGNvbnN0ICYgciApOiBwaV8oIHIucGlfICkKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgLCBpZF8oc2hhcmVkX2NvdW50X2lkKQorI2VuZGlmCit7CisgICAgaWYoIHBpXyA9PSAwIHx8ICFwaV8tPmFkZF9yZWZfbG9jaygpICkKKyAgICB7CisgICAgICAgIG5kbmJvb3N0Ojp0aHJvd19leGNlcHRpb24oIG5kbmJvb3N0OjpiYWRfd2Vha19wdHIoKSApOworICAgIH0KK30KKworaW5saW5lIHNoYXJlZF9jb3VudDo6c2hhcmVkX2NvdW50KCB3ZWFrX2NvdW50IGNvbnN0ICYgciwgc3Bfbm90aHJvd190YWcgKTogcGlfKCByLnBpXyApCisjaWYgZGVmaW5lZChCT09TVF9TUF9FTkFCTEVfREVCVUdfSE9PS1MpCisgICAgICAgICwgaWRfKHNoYXJlZF9jb3VudF9pZCkKKyNlbmRpZgoreworICAgIGlmKCBwaV8gIT0gMCAmJiAhcGlfLT5hZGRfcmVmX2xvY2soKSApCisgICAgeworICAgICAgICBwaV8gPSAwOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpZmRlZiBfX0JPUkxBTkRDX18KKyMgcHJhZ21hIHdhcm4gLjgwMjcgICAgIC8vIEZ1bmN0aW9ucyBjb250YWluaW5nIHRyeSBhcmUgbm90IGV4cGFuZGVkIGlubGluZQorI2VuZGlmCisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NIQVJFRF9DT1VOVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc2hhcmVkX3B0cl9ubXQuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zaGFyZWRfcHRyX25tdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQwNGU5YQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc2hhcmVkX3B0cl9ubXQuaHBwCkBAIC0wLDAgKzEsMTgyIEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU0hBUkVEX1BUUl9OTVRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU0hBUkVEX1BUUl9OTVRfSFBQX0lOQ0xVREVECisKKy8vCisvLyAgZGV0YWlsL3NoYXJlZF9wdHJfbm10LmhwcCAtIHNoYXJlZF9wdHIuaHBwIHdpdGhvdXQgbWVtYmVyIHRlbXBsYXRlcworLy8KKy8vICAoQykgQ29weXJpZ2h0IEdyZWcgQ29sdmluIGFuZCBCZW1hbiBEYXdlcyAxOTk4LCAxOTk5LgorLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvc21hcnRfcHRyL3NoYXJlZF9wdHIuaHRtIGZvciBkb2N1bWVudGF0aW9uLgorLy8KKworI2luY2x1ZGUgPGJvb3N0L2Fzc2VydC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvY2hlY2tlZF9kZWxldGUuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3Rocm93X2V4Y2VwdGlvbi5ocHA+CisjaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9hdG9taWNfY291bnQuaHBwPgorCisjaWZuZGVmIEJPT1NUX05PX0FVVE9fUFRSCisjIGluY2x1ZGUgPG1lbW9yeT4gICAgICAgICAgLy8gZm9yIHN0ZDo6YXV0b19wdHIKKyNlbmRpZgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPiAgICAgICAgLy8gZm9yIHN0ZDo6c3dhcAorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+ICAgICAgIC8vIGZvciBzdGQ6Omxlc3MKKyNpbmNsdWRlIDxuZXc+ICAgICAgICAgICAgICAvLyBmb3Igc3RkOjpiYWRfYWxsb2MKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIHNoYXJlZF9wdHIKK3sKK3ByaXZhdGU6CisKKyAgICB0eXBlZGVmIGRldGFpbDo6YXRvbWljX2NvdW50IGNvdW50X3R5cGU7CisKK3B1YmxpYzoKKworICAgIHR5cGVkZWYgVCBlbGVtZW50X3R5cGU7CisgICAgdHlwZWRlZiBUIHZhbHVlX3R5cGU7CisKKyAgICBleHBsaWNpdCBzaGFyZWRfcHRyKFQgKiBwID0gMCk6IHB4KHApCisgICAgeworI2lmbmRlZiBCT09TVF9OT19FWENFUFRJT05TCisKKyAgICAgICAgdHJ5ICAvLyBwcmV2ZW50IGxlYWsgaWYgbmV3IHRocm93cworICAgICAgICB7CisgICAgICAgICAgICBwbiA9IG5ldyBjb3VudF90eXBlKDEpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKC4uLikKKyAgICAgICAgeworICAgICAgICAgICAgbmRuYm9vc3Q6OmNoZWNrZWRfZGVsZXRlKHApOworICAgICAgICAgICAgdGhyb3c7CisgICAgICAgIH0KKworI2Vsc2UKKworICAgICAgICBwbiA9IG5ldyBjb3VudF90eXBlKDEpOworCisgICAgICAgIGlmKHBuID09IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5kbmJvb3N0OjpjaGVja2VkX2RlbGV0ZShwKTsKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp0aHJvd19leGNlcHRpb24oc3RkOjpiYWRfYWxsb2MoKSk7CisgICAgICAgIH0KKworI2VuZGlmCisgICAgfQorCisgICAgfnNoYXJlZF9wdHIoKQorICAgIHsKKyAgICAgICAgaWYoLS0qcG4gPT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgbmRuYm9vc3Q6OmNoZWNrZWRfZGVsZXRlKHB4KTsKKyAgICAgICAgICAgIGRlbGV0ZSBwbjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHNoYXJlZF9wdHIoc2hhcmVkX3B0ciBjb25zdCAmIHIpOiBweChyLnB4KSAgLy8gbmV2ZXIgdGhyb3dzCisgICAgeworICAgICAgICBwbiA9IHIucG47CisgICAgICAgICsrKnBuOworICAgIH0KKworICAgIHNoYXJlZF9wdHIgJiBvcGVyYXRvcj0oc2hhcmVkX3B0ciBjb25zdCAmIHIpCisgICAgeworICAgICAgICBzaGFyZWRfcHRyKHIpLnN3YXAoKnRoaXMpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisjaWZuZGVmIEJPT1NUX05PX0FVVE9fUFRSCisKKyAgICBleHBsaWNpdCBzaGFyZWRfcHRyKHN0ZDo6YXV0b19wdHI8VD4gJiByKQorICAgIHsgCisgICAgICAgIHBuID0gbmV3IGNvdW50X3R5cGUoMSk7IC8vIG1heSB0aHJvdworICAgICAgICBweCA9IHIucmVsZWFzZSgpOyAvLyBmaXg6IG1vdmVkIGhlcmUgdG8gc3RvcCBsZWFrIGlmIG5ldyB0aHJvd3MKKyAgICB9IAorCisgICAgc2hhcmVkX3B0ciAmIG9wZXJhdG9yPShzdGQ6OmF1dG9fcHRyPFQ+ICYgcikKKyAgICB7CisgICAgICAgIHNoYXJlZF9wdHIocikuc3dhcCgqdGhpcyk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdm9pZCByZXNldChUICogcCA9IDApCisgICAgeworICAgICAgICBCT09TVF9BU1NFUlQocCA9PSAwIHx8IHAgIT0gcHgpOworICAgICAgICBzaGFyZWRfcHRyKHApLnN3YXAoKnRoaXMpOworICAgIH0KKworICAgIFQgJiBvcGVyYXRvciooKSBjb25zdCAgLy8gbmV2ZXIgdGhyb3dzCisgICAgeworICAgICAgICBCT09TVF9BU1NFUlQocHggIT0gMCk7CisgICAgICAgIHJldHVybiAqcHg7CisgICAgfQorCisgICAgVCAqIG9wZXJhdG9yLT4oKSBjb25zdCAgLy8gbmV2ZXIgdGhyb3dzCisgICAgeworICAgICAgICBCT09TVF9BU1NFUlQocHggIT0gMCk7CisgICAgICAgIHJldHVybiBweDsKKyAgICB9CisKKyAgICBUICogZ2V0KCkgY29uc3QgIC8vIG5ldmVyIHRocm93cworICAgIHsKKyAgICAgICAgcmV0dXJuIHB4OworICAgIH0KKworICAgIGxvbmcgdXNlX2NvdW50KCkgY29uc3QgIC8vIG5ldmVyIHRocm93cworICAgIHsKKyAgICAgICAgcmV0dXJuICpwbjsKKyAgICB9CisKKyAgICBib29sIHVuaXF1ZSgpIGNvbnN0ICAvLyBuZXZlciB0aHJvd3MKKyAgICB7CisgICAgICAgIHJldHVybiAqcG4gPT0gMTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzd2FwKHNoYXJlZF9wdHI8VD4gJiBvdGhlcikgIC8vIG5ldmVyIHRocm93cworICAgIHsKKyAgICAgICAgc3RkOjpzd2FwKHB4LCBvdGhlci5weCk7CisgICAgICAgIHN0ZDo6c3dhcChwbiwgb3RoZXIucG4pOworICAgIH0KKworcHJpdmF0ZToKKworICAgIFQgKiBweDsgICAgICAgICAgICAvLyBjb250YWluZWQgcG9pbnRlcgorICAgIGNvdW50X3R5cGUgKiBwbjsgICAvLyBwdHIgdG8gcmVmZXJlbmNlIGNvdW50ZXIKK307CisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oc2hhcmVkX3B0cjxUPiBjb25zdCAmIGEsIHNoYXJlZF9wdHI8VT4gY29uc3QgJiBiKQoreworICAgIHJldHVybiBhLmdldCgpID09IGIuZ2V0KCk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oc2hhcmVkX3B0cjxUPiBjb25zdCAmIGEsIHNoYXJlZF9wdHI8VT4gY29uc3QgJiBiKQoreworICAgIHJldHVybiBhLmdldCgpICE9IGIuZ2V0KCk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSBib29sIG9wZXJhdG9yPChzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgYSwgc2hhcmVkX3B0cjxUPiBjb25zdCAmIGIpCit7CisgICAgcmV0dXJuIHN0ZDo6bGVzczxUKj4oKShhLmdldCgpLCBiLmdldCgpKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCBzd2FwKHNoYXJlZF9wdHI8VD4gJiBhLCBzaGFyZWRfcHRyPFQ+ICYgYikKK3sKKyAgICBhLnN3YXAoYik7Cit9CisKKy8vIGdldF9wb2ludGVyKCkgZW5hYmxlcyBuZG5ib29zdDo6bWVtX2ZuIHRvIHJlY29nbml6ZSBzaGFyZWRfcHRyCisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSBUICogZ2V0X3BvaW50ZXIoc2hhcmVkX3B0cjxUPiBjb25zdCAmIHApCit7CisgICAgcmV0dXJuIHAuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NIQVJFRF9QVFJfTk1UX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb252ZXJ0aWJsZS5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvbnZlcnRpYmxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzI5ZjlmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb252ZXJ0aWJsZS5ocHAKQEAgLTAsMCArMSw5MSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPTlZFUlRJQkxFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPTlZFUlRJQkxFX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8gIGRldGFpbC9zcF9jb252ZXJ0aWJsZS5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IDIwMDggUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAorCisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKworI2lmICFkZWZpbmVkKCBCT09TVF9TUF9OT19TUF9DT05WRVJUSUJMRSApICYmIGRlZmluZWQoIEJPT1NUX05PX1NGSU5BRSApCisjIGRlZmluZSBCT09TVF9TUF9OT19TUF9DT05WRVJUSUJMRQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZCggQk9PU1RfU1BfTk9fU1BfQ09OVkVSVElCTEUgKSAmJiBkZWZpbmVkKCBfX0dOVUNfXyApICYmICggX19HTlVDX18gKiAxMDAgKyBfX0dOVUNfTUlOT1JfXyA8IDMwMyApCisjIGRlZmluZSBCT09TVF9TUF9OT19TUF9DT05WRVJUSUJMRQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZCggQk9PU1RfU1BfTk9fU1BfQ09OVkVSVElCTEUgKSAmJiBkZWZpbmVkKCBfX0JPUkxBTkRDX18gKSAmJiAoIF9fQk9STEFORENfXyA8IDB4NjMwICkKKyMgZGVmaW5lIEJPT1NUX1NQX05PX1NQX0NPTlZFUlRJQkxFCisjZW5kaWYKKworI2lmICFkZWZpbmVkKCBCT09TVF9TUF9OT19TUF9DT05WRVJUSUJMRSApCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK3RlbXBsYXRlPCBjbGFzcyBZLCBjbGFzcyBUID4gc3RydWN0IHNwX2NvbnZlcnRpYmxlCit7CisgICAgdHlwZWRlZiBjaGFyICgmeWVzKSBbMV07CisgICAgdHlwZWRlZiBjaGFyICgmbm8pICBbMl07CisKKyAgICBzdGF0aWMgeWVzIGYoIFQqICk7CisgICAgc3RhdGljIG5vICBmKCAuLi4gKTsKKworICAgIGVudW0gX3Z0IHsgdmFsdWUgPSBzaXplb2YoIChmKSggc3RhdGljX2Nhc3Q8WSo+KDApICkgKSA9PSBzaXplb2YoeWVzKSB9OworfTsKKwordGVtcGxhdGU8IGNsYXNzIFksIGNsYXNzIFQgPiBzdHJ1Y3Qgc3BfY29udmVydGlibGU8IFksIFRbXSA+Cit7CisgICAgZW51bSBfdnQgeyB2YWx1ZSA9IGZhbHNlIH07Cit9OworCit0ZW1wbGF0ZTwgY2xhc3MgWSwgY2xhc3MgVCA+IHN0cnVjdCBzcF9jb252ZXJ0aWJsZTwgWVtdLCBUW10gPgoreworICAgIGVudW0gX3Z0IHsgdmFsdWUgPSBzcF9jb252ZXJ0aWJsZTwgWVsxXSwgVFsxXSA+Ojp2YWx1ZSB9OworfTsKKwordGVtcGxhdGU8IGNsYXNzIFksIHN0ZDo6c2l6ZV90IE4sIGNsYXNzIFQgPiBzdHJ1Y3Qgc3BfY29udmVydGlibGU8IFlbTl0sIFRbXSA+Cit7CisgICAgZW51bSBfdnQgeyB2YWx1ZSA9IHNwX2NvbnZlcnRpYmxlPCBZWzFdLCBUWzFdID46OnZhbHVlIH07Cit9OworCitzdHJ1Y3Qgc3BfZW1wdHkKK3sKK307CisKK3RlbXBsYXRlPCBib29sID4gc3RydWN0IHNwX2VuYWJsZV9pZl9jb252ZXJ0aWJsZV9pbXBsOworCit0ZW1wbGF0ZTw+IHN0cnVjdCBzcF9lbmFibGVfaWZfY29udmVydGlibGVfaW1wbDx0cnVlPgoreworICAgIHR5cGVkZWYgc3BfZW1wdHkgdHlwZTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHNwX2VuYWJsZV9pZl9jb252ZXJ0aWJsZV9pbXBsPGZhbHNlPgoreworfTsKKwordGVtcGxhdGU8IGNsYXNzIFksIGNsYXNzIFQgPiBzdHJ1Y3Qgc3BfZW5hYmxlX2lmX2NvbnZlcnRpYmxlOiBwdWJsaWMgc3BfZW5hYmxlX2lmX2NvbnZlcnRpYmxlX2ltcGw8IHNwX2NvbnZlcnRpYmxlPCBZLCBUID46OnZhbHVlID4KK3sKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gIWRlZmluZWQoIEJPT1NUX1NQX05PX1NQX0NPTlZFUlRJQkxFICkKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09OVkVSVElCTEVfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZS5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNlZDJiOQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlLmhwcApAQCAtMCwwICsxLDc5IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgZGV0YWlsL3NwX2NvdW50ZWRfYmFzZS5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IDIwMDUsIDIwMDYgUGV0ZXIgRGltb3YKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2hhc19zeW5jLmhwcD4KKworI2lmIGRlZmluZWQoIEJPT1NUX1NQX0RJU0FCTEVfVEhSRUFEUyApCisjIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX250LmhwcD4KKworI2VsaWYgZGVmaW5lZCggQk9PU1RfU1BfVVNFX1NQSU5MT0NLICkKKyMgaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc3Bpbi5ocHA+CisKKyNlbGlmIGRlZmluZWQoIEJPT1NUX1NQX1VTRV9QVEhSRUFEUyApCisjIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3B0LmhwcD4KKworI2VsaWYgZGVmaW5lZCggQk9PU1RfRElTQUJMRV9USFJFQURTICkgJiYgIWRlZmluZWQoIEJPT1NUX1NQX0VOQUJMRV9USFJFQURTICkgJiYgIWRlZmluZWQoIEJPT1NUX0RJU0FCTEVfV0lOMzIgKQorIyBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9udC5ocHA+CisKKyNlbGlmIGRlZmluZWQoIF9fU05DX18gKQorIyBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9zbmNfcHMzLmhwcD4KKworI2VsaWYgZGVmaW5lZCggX19HTlVDX18gKSAmJiAoIGRlZmluZWQoIF9faTM4Nl9fICkgfHwgZGVmaW5lZCggX194ODZfNjRfXyApICkgJiYgIWRlZmluZWQoX19QQVRIU0NBTEVfXykKKyMgaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX3g4Ni5ocHA+CisKKyNlbGlmIGRlZmluZWQoX19IUF9hQ0MpICYmIGRlZmluZWQoX19pYTY0KQorIyBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9hY2NfaWE2NC5ocHA+CisKKyNlbGlmIGRlZmluZWQoIF9fR05VQ19fICkgJiYgZGVmaW5lZCggX19pYTY0X18gKSAmJiAhZGVmaW5lZCggX19JTlRFTF9DT01QSUxFUiApICYmICFkZWZpbmVkKF9fUEFUSFNDQUxFX18pCisjIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY19pYTY0LmhwcD4KKworI2VsaWYgZGVmaW5lZCggX19JQk1DUFBfXyApICYmIGRlZmluZWQoIF9fcG93ZXJwYyApCisjIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3ZhY3BwX3BwYy5ocHA+CisKKyNlbGlmIGRlZmluZWQoIF9fTVdFUktTX18gKSAmJiBkZWZpbmVkKCBfX1BPV0VSUENfXyApCisjIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2N3X3BwYy5ocHA+CisKKyNlbGlmIGRlZmluZWQoIF9fR05VQ19fICkgJiYgKCBkZWZpbmVkKCBfX3Bvd2VycGNfXyApIHx8IGRlZmluZWQoIF9fcHBjX18gKSB8fCBkZWZpbmVkKCBfX3BwYyApICkgJiYgIWRlZmluZWQoX19QQVRIU0NBTEVfXykgJiYgIWRlZmluZWQoIF9BSVggKQorIyBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfcHBjLmhwcD4KKworI2VsaWYgZGVmaW5lZCggX19HTlVDX18gKSAmJiAoIGRlZmluZWQoIF9fbWlwc19fICkgfHwgZGVmaW5lZCggX21pcHMgKSApICYmICFkZWZpbmVkKF9fUEFUSFNDQUxFX18pCisjIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY19taXBzLmhwcD4KKworI2VsaWYgZGVmaW5lZCggQk9PU1RfU1BfSEFTX1NZTkMgKQorIyBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9zeW5jLmhwcD4KKworI2VsaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKCBkZWZpbmVkKCBfX3NwYXJjdjkgKSB8fCAoIGRlZmluZWQoIF9fc3BhcmN2OCApICYmICggX19HTlVDX18gKiAxMDAgKyBfX0dOVUNfTUlOT1JfXyA+PSA0MDIgKSApICkKKyMgaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX3NwYXJjLmhwcD4KKworI2VsaWYgZGVmaW5lZCggV0lOMzIgKSB8fCBkZWZpbmVkKCBfV0lOMzIgKSB8fCBkZWZpbmVkKCBfX1dJTjMyX18gKSB8fCBkZWZpbmVkKF9fQ1lHV0lOX18pCisjIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3czMi5ocHA+CisKKyNlbGlmIGRlZmluZWQoIF9BSVggKQorIyBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9haXguaHBwPgorCisjZWxpZiAhZGVmaW5lZCggQk9PU1RfSEFTX1RIUkVBRFMgKQorIyBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9udC5ocHA+CisKKyNlbHNlCisjIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3NwaW4uaHBwPgorCisjZW5kaWYKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfYWNjX2lhNjQuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfYWNjX2lhNjQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3Nzc5ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9hY2NfaWE2NC5ocHAKQEAgLTAsMCArMSwxNTEgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfQUNDX0lBNjRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0FDQ19JQTY0X0hQUF9JTkNMVURFRAorCisvLworLy8gIGRldGFpbC9zcF9jb3VudGVkX2Jhc2VfYWNjX2lhNjQuaHBwIC0gYUMrKyBvbiBIUC1VWCBJQTY0CisvLworLy8gIENvcHlyaWdodCAyMDA3IEJhcnVjaCBaaWxiZXIKKy8vICBDb3B5cmlnaHQgMjAwNyBCb3JpcyBHdWJlbmtvCisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vCisvLyAgTG9jay1mcmVlIGFsZ29yaXRobSBieSBBbGV4YW5kZXIgVGVyZWtob3YKKy8vCisKKyNpbmNsdWRlIDxib29zdC9kZXRhaWwvc3BfdHlwZWluZm8uaHBwPgorI2luY2x1ZGUgPG1hY2hpbmUvc3lzL2lubGluZS5oPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitpbmxpbmUgdm9pZCBhdG9taWNfaW5jcmVtZW50KCBpbnQgKiBwdyApCit7CisgICAgLy8gKysqcHc7CisKKyAgICBfQXNtX2ZldGNoYWRkKF9GQVNaX1csIF9TRU1fUkVMLCBwdywgKzEsIF9MREhJTlRfTk9ORSk7Cit9IAorCitpbmxpbmUgaW50IGF0b21pY19kZWNyZW1lbnQoIGludCAqIHB3ICkKK3sKKyAgICAvLyByZXR1cm4gLS0qcHc7CisKKyAgICBpbnQgciA9IHN0YXRpY19jYXN0PGludD4oX0FzbV9mZXRjaGFkZChfRkFTWl9XLCBfU0VNX1JFTCwgcHcsIC0xLCBfTERISU5UX05PTkUpKTsKKyAgICBpZiAoMSA9PSByKQorICAgIHsKKyAgICAgICAgX0FzbV9tZigpOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gciAtIDE7Cit9CisKK2lubGluZSBpbnQgYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggaW50ICogcHcgKQoreworICAgIC8vIGlmKCAqcHcgIT0gMCApICsrKnB3OworICAgIC8vIHJldHVybiAqcHc7CisKKyAgICBpbnQgdiA9ICpwdzsKKyAgICAKKyAgICBmb3IgKDs7KQorICAgIHsKKyAgICAgICAgaWYgKDAgPT0gdikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIF9Bc21fbW92X3RvX2FyKF9BUkVHX0NDViwKKyAgICAgICAgICAgICAgICAgICAgICAgdiwKKyAgICAgICAgICAgICAgICAgICAgICAgKF9VUF9DQUxMX0ZFTkNFIHwgX1VQX1NZU19GRU5DRSB8IF9ET1dOX0NBTExfRkVOQ0UgfCBfRE9XTl9TWVNfRkVOQ0UpKTsKKyAgICAgICAgaW50IHIgPSBzdGF0aWNfY2FzdDxpbnQ+KF9Bc21fY21weGNoZyhfU1pfVywgX1NFTV9BQ1EsIHB3LCB2ICsgMSwgX0xESElOVF9OT05FKSk7CisgICAgICAgIGlmIChyID09IHYpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByICsgMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdiA9IHI7CisgICAgfQorfQorCitjbGFzcyBzcF9jb3VudGVkX2Jhc2UKK3sKK3ByaXZhdGU6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisgICAgc3BfY291bnRlZF9iYXNlICYgb3BlcmF0b3I9ICggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKworICAgIGludCB1c2VfY291bnRfOyAgICAgICAgLy8gI3NoYXJlZAorICAgIGludCB3ZWFrX2NvdW50XzsgICAgICAgLy8gI3dlYWsgKyAoI3NoYXJlZCAhPSAwKQorCitwdWJsaWM6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoKTogdXNlX2NvdW50XyggMSApLCB3ZWFrX2NvdW50XyggMSApCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgfnNwX2NvdW50ZWRfYmFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgfQorCisgICAgLy8gZGlzcG9zZSgpIGlzIGNhbGxlZCB3aGVuIHVzZV9jb3VudF8gZHJvcHMgdG8gemVybywgdG8gcmVsZWFzZQorICAgIC8vIHRoZSByZXNvdXJjZXMgbWFuYWdlZCBieSAqdGhpcy4KKworICAgIHZpcnR1YWwgdm9pZCBkaXNwb3NlKCkgPSAwOyAvLyBub3Rocm93CisKKyAgICAvLyBkZXN0cm95KCkgaXMgY2FsbGVkIHdoZW4gd2Vha19jb3VudF8gZHJvcHMgdG8gemVyby4KKworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkICogZ2V0X2RlbGV0ZXIoIHNwX3R5cGVpbmZvIGNvbnN0ICYgdGkgKSA9IDA7CisgICAgdmlydHVhbCB2b2lkICogZ2V0X3VudHlwZWRfZGVsZXRlcigpID0gMDsKKworICAgIHZvaWQgYWRkX3JlZl9jb3B5KCkKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ1c2VfY291bnRfICk7CisgICAgfQorCisgICAgYm9vbCBhZGRfcmVmX2xvY2soKSAvLyB0cnVlIG9uIHN1Y2Nlc3MKKyAgICB7CisgICAgICAgIHJldHVybiBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApICE9IDA7CisgICAgfQorCisgICAgdm9pZCByZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ1c2VfY291bnRfICkgPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIHdlYWtfcmVsZWFzZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB3ZWFrX2FkZF9yZWYoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmd2Vha19jb3VudF8gKTsKKyAgICB9CisKKyAgICB2b2lkIHdlYWtfcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZGVjcmVtZW50KCAmd2Vha19jb3VudF8gKSA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzdHJveSgpOworICAgICAgICB9CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCAvLyBub3Rocm93CisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50IGNvbnN0IHZvbGF0aWxlICY+KCB1c2VfY291bnRfICk7IC8vIFRPRE8gdXNlIGxkLmFjcSBoZXJlCisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9BQ0NfSUE2NF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2FpeC5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9haXguaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxMjE0Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9haXguaHBwCkBAIC0wLDAgKzEsMTQzIEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0FJWF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfQUlYX0hQUF9JTkNMVURFRAorCisvLworLy8gIGRldGFpbC9zcF9jb3VudGVkX2Jhc2VfYWl4LmhwcAorLy8gICBiYXNlZCBvbjogZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV93MzIuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAwMyBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8gIENvcHlyaWdodCAyMDA0LTIwMDUgUGV0ZXIgRGltb3YKKy8vICBDb3B5cmlnaHQgMjAwNiBNaWNoYWVsIHZhbiBkZXIgV2VzdGh1aXplbgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLworLy8gIExvY2stZnJlZSBhbGdvcml0aG0gYnkgQWxleGFuZGVyIFRlcmVraG92CisvLworLy8gIFRoYW5rcyB0byBCZW4gSGl0Y2hpbmdzIGZvciB0aGUgI3dlYWsgKyAoI3NoYXJlZCAhPSAwKQorLy8gIGZvcm11bGF0aW9uCisvLworCisjaW5jbHVkZSA8Ym9vc3QvZGV0YWlsL3NwX3R5cGVpbmZvLmhwcD4KKyNpbmNsdWRlIDxidWlsdGlucy5oPgorI2luY2x1ZGUgPHN5cy9hdG9taWNfb3AuaD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworaW5saW5lIHZvaWQgYXRvbWljX2luY3JlbWVudCggaW50MzJfdCogcHcgKQoreworICAgIC8vICsrKnB3OworCisgICAgZmV0Y2hfYW5kX2FkZCggcHcsIDEgKTsKK30KKworaW5saW5lIGludDMyX3QgYXRvbWljX2RlY3JlbWVudCggaW50MzJfdCAqIHB3ICkKK3sKKyAgICAvLyByZXR1cm4gLS0qcHc7CisKKyAgICBpbnQzMl90IG9yaWdpbmFsVmFsdWU7CisKKyAgICBfX2x3c3luYygpOworICAgIG9yaWdpbmFsVmFsdWUgPSBmZXRjaF9hbmRfYWRkKCBwdywgLTEgKTsKKyAgICBfX2lzeW5jKCk7CisKKyAgICByZXR1cm4gKG9yaWdpbmFsVmFsdWUgLSAxKTsKK30KKworaW5saW5lIGludDMyX3QgYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggaW50MzJfdCAqIHB3ICkKK3sKKyAgICAvLyBpZiggKnB3ICE9IDAgKSArKypwdzsKKyAgICAvLyByZXR1cm4gKnB3OworCisgICAgaW50MzJfdCB0bXAgPSBmZXRjaF9hbmRfYWRkKCBwdywgMCApOworICAgIGZvciggOzsgKQorICAgIHsKKyAgICAgICAgaWYoIHRtcCA9PSAwICkgcmV0dXJuIDA7CisgICAgICAgIGlmKCBjb21wYXJlX2FuZF9zd2FwKCBwdywgJnRtcCwgdG1wICsgMSApICkgcmV0dXJuICh0bXAgKyAxKTsKKyAgICB9Cit9CisKK2NsYXNzIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2Jhc2UgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworCisgICAgaW50MzJfdCB1c2VfY291bnRfOyAgICAgICAgLy8gI3NoYXJlZAorICAgIGludDMyX3Qgd2Vha19jb3VudF87ICAgICAgIC8vICN3ZWFrICsgKCNzaGFyZWQgIT0gMCkKKworcHVibGljOgorCisgICAgc3BfY291bnRlZF9iYXNlKCk6IHVzZV9jb3VudF8oIDEgKSwgd2Vha19jb3VudF8oIDEgKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5zcF9jb3VudGVkX2Jhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgIH0KKworICAgIC8vIGRpc3Bvc2UoKSBpcyBjYWxsZWQgd2hlbiB1c2VfY291bnRfIGRyb3BzIHRvIHplcm8sIHRvIHJlbGVhc2UKKyAgICAvLyB0aGUgcmVzb3VyY2VzIG1hbmFnZWQgYnkgKnRoaXMuCisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpID0gMDsgLy8gbm90aHJvdworCisgICAgLy8gZGVzdHJveSgpIGlzIGNhbGxlZCB3aGVuIHdlYWtfY291bnRfIGRyb3BzIHRvIHplcm8uCisKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCAqIGdldF9kZWxldGVyKCBzcF90eXBlaW5mbyBjb25zdCAmIHRpICkgPSAwOworICAgIHZpcnR1YWwgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKSA9IDA7CisKKyAgICB2b2lkIGFkZF9yZWZfY29weSgpCisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApOworICAgIH0KKworICAgIGJvb2wgYWRkX3JlZl9sb2NrKCkgLy8gdHJ1ZSBvbiBzdWNjZXNzCisgICAgeworICAgICAgICByZXR1cm4gYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggJnVzZV9jb3VudF8gKSAhPSAwOworICAgIH0KKworICAgIHZvaWQgcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZGVjcmVtZW50KCAmdXNlX2NvdW50XyApID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICB3ZWFrX3JlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgd2Vha19hZGRfcmVmKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJndlYWtfY291bnRfICk7CisgICAgfQorCisgICAgdm9pZCB3ZWFrX3JlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJndlYWtfY291bnRfICkgPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc3Ryb3koKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxvbmcgdXNlX2NvdW50KCkgY29uc3QgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgcmV0dXJuIGZldGNoX2FuZF9hZGQoIGNvbnN0X2Nhc3Q8aW50MzJfdCo+KCZ1c2VfY291bnRfKSwgMCApOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfQUlYX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfY3dfcHBjLmhwcCBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2N3X3BwYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDczNDBhOAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX2N3X3BwYy5ocHAKQEAgLTAsMCArMSwxNzEgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfQ1dfUFBDX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9DV19QUENfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGRldGFpbC9zcF9jb3VudGVkX2Jhc2VfY3dfcHBjLmhwcCAtIENvZGVXYXJyaW9yIG9uIFBvd2VyUEMKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyLCAyMDAzIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLyAgQ29weXJpZ2h0IDIwMDQtMjAwNSBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLworLy8gIExvY2stZnJlZSBhbGdvcml0aG0gYnkgQWxleGFuZGVyIFRlcmVraG92CisvLworLy8gIFRoYW5rcyB0byBCZW4gSGl0Y2hpbmdzIGZvciB0aGUgI3dlYWsgKyAoI3NoYXJlZCAhPSAwKQorLy8gIGZvcm11bGF0aW9uCisvLworCisjaW5jbHVkZSA8Ym9vc3QvZGV0YWlsL3NwX3R5cGVpbmZvLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworaW5saW5lIHZvaWQgYXRvbWljX2luY3JlbWVudCggcmVnaXN0ZXIgbG9uZyAqIHB3ICkKK3sKKyAgICByZWdpc3RlciBpbnQgYTsKKworICAgIGFzbQorICAgIHsKK2xvb3A6CisKKyAgICBsd2FyeCAgIGEsIDAsIHB3CisgICAgYWRkaSAgICBhLCBhLCAxCisgICAgc3R3Y3guICBhLCAwLCBwdworICAgIGJuZS0gICAgbG9vcAorICAgIH0KK30KKworaW5saW5lIGxvbmcgYXRvbWljX2RlY3JlbWVudCggcmVnaXN0ZXIgbG9uZyAqIHB3ICkKK3sKKyAgICByZWdpc3RlciBpbnQgYTsKKworICAgIGFzbQorICAgIHsKKyAgICBzeW5jCisKK2xvb3A6CisKKyAgICBsd2FyeCAgIGEsIDAsIHB3CisgICAgYWRkaSAgICBhLCBhLCAtMQorICAgIHN0d2N4LiAgYSwgMCwgcHcKKyAgICBibmUtICAgIGxvb3AKKworICAgIGlzeW5jCisgICAgfQorCisgICAgcmV0dXJuIGE7Cit9CisKK2lubGluZSBsb25nIGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoIHJlZ2lzdGVyIGxvbmcgKiBwdyApCit7CisgICAgcmVnaXN0ZXIgaW50IGE7CisKKyAgICBhc20KKyAgICB7Citsb29wOgorCisgICAgbHdhcnggICBhLCAwLCBwdworICAgIGNtcHdpICAgYSwgMAorICAgIGJlcSAgICAgc3RvcmUKKworICAgIGFkZGkgICAgYSwgYSwgMQorCitzdG9yZToKKworICAgIHN0d2N4LiAgYSwgMCwgcHcKKyAgICBibmUtICAgIGxvb3AKKyAgICB9CisKKyAgICByZXR1cm4gYTsKK30KKworY2xhc3Mgc3BfY291bnRlZF9iYXNlCit7Citwcml2YXRlOgorCisgICAgc3BfY291bnRlZF9iYXNlKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworICAgIHNwX2NvdW50ZWRfYmFzZSAmIG9wZXJhdG9yPSAoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisKKyAgICBsb25nIHVzZV9jb3VudF87ICAgICAgICAvLyAjc2hhcmVkCisgICAgbG9uZyB3ZWFrX2NvdW50XzsgICAgICAgLy8gI3dlYWsgKyAoI3NoYXJlZCAhPSAwKQorCitwdWJsaWM6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoKTogdXNlX2NvdW50XyggMSApLCB3ZWFrX2NvdW50XyggMSApCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgfnNwX2NvdW50ZWRfYmFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgfQorCisgICAgLy8gZGlzcG9zZSgpIGlzIGNhbGxlZCB3aGVuIHVzZV9jb3VudF8gZHJvcHMgdG8gemVybywgdG8gcmVsZWFzZQorICAgIC8vIHRoZSByZXNvdXJjZXMgbWFuYWdlZCBieSAqdGhpcy4KKworICAgIHZpcnR1YWwgdm9pZCBkaXNwb3NlKCkgPSAwOyAvLyBub3Rocm93CisKKyAgICAvLyBkZXN0cm95KCkgaXMgY2FsbGVkIHdoZW4gd2Vha19jb3VudF8gZHJvcHMgdG8gemVyby4KKworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkICogZ2V0X2RlbGV0ZXIoIHNwX3R5cGVpbmZvIGNvbnN0ICYgdGkgKSA9IDA7CisgICAgdmlydHVhbCB2b2lkICogZ2V0X3VudHlwZWRfZGVsZXRlcigpID0gMDsKKworICAgIHZvaWQgYWRkX3JlZl9jb3B5KCkKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ1c2VfY291bnRfICk7CisgICAgfQorCisgICAgYm9vbCBhZGRfcmVmX2xvY2soKSAvLyB0cnVlIG9uIHN1Y2Nlc3MKKyAgICB7CisgICAgICAgIHJldHVybiBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApICE9IDA7CisgICAgfQorCisgICAgdm9pZCByZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ1c2VfY291bnRfICkgPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIHdlYWtfcmVsZWFzZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB3ZWFrX2FkZF9yZWYoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmd2Vha19jb3VudF8gKTsKKyAgICB9CisKKyAgICB2b2lkIHdlYWtfcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZGVjcmVtZW50KCAmd2Vha19jb3VudF8gKSA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzdHJveSgpOworICAgICAgICB9CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCAvLyBub3Rocm93CisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZyBjb25zdCB2b2xhdGlsZSAmPiggdXNlX2NvdW50XyApOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfQ1dfUFBDX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX2lhNjQuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX2lhNjQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OTQyOGQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfaWE2NC5ocHAKQEAgLTAsMCArMSwxNTggQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfR0NDX0lBNjRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0dDQ19JQTY0X0hQUF9JTkNMVURFRAorCisvLworLy8gIGRldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX2lhNjQuaHBwIC0gZysrIG9uIElBNjQKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyLCAyMDAzIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLyAgQ29weXJpZ2h0IDIwMDQtMjAwNiBQZXRlciBEaW1vdgorLy8gIENvcHlyaWdodCAyMDA1IEJlbiBIdXRjaGluZ3MKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8KKy8vICBMb2NrLWZyZWUgYWxnb3JpdGhtIGJ5IEFsZXhhbmRlciBUZXJla2hvdgorLy8KKworI2luY2x1ZGUgPGJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2lubGluZSB2b2lkIGF0b21pY19pbmNyZW1lbnQoIGludCAqIHB3ICkKK3sKKyAgICAvLyArKypwdzsKKworICAgIGludCB0bXA7CisKKyAgICAvLyBObyBiYXJyaWVyIGlzIHJlcXVpcmVkIGhlcmUgYnV0IGZldGNoYWRkIGFsd2F5cyBoYXMgYW4gYWNxdWlyZSBvcgorICAgIC8vIHJlbGVhc2UgYmFycmllciBhc3NvY2lhdGVkIHdpdGggaXQuICBXZSBjaG9vc2UgcmVsZWFzZSBhcyBpdCBzaG91bGQgYmUKKyAgICAvLyBjaGVhcGVyLgorICAgIF9fYXNtX18gKCJmZXRjaGFkZDQucmVsICUwPSUxLDEiIDoKKyAgICAgICAgICI9ciIodG1wKSwgIj1tIigqcHcpIDoKKyAgICAgICAgICJtIiggKnB3ICkpOworfQorCitpbmxpbmUgaW50IGF0b21pY19kZWNyZW1lbnQoIGludCAqIHB3ICkKK3sKKyAgICAvLyByZXR1cm4gLS0qcHc7CisKKyAgICBpbnQgcnY7CisKKyAgICBfX2FzbV9fICgiICAgICBmZXRjaGFkZDQucmVsICUwPSUxLC0xIDs7IFxuIgorICAgICAgICAgICAgICIgICAgIGNtcC5lcSAgICAgICAgcDcscDA9MSwlMCA7OyBcbiIKKyAgICAgICAgICAgICAiKHA3KSBsZDQuYWNxICAgICAgICUwPSUxICAgICIgOgorICAgICAgICAgICAgICI9JnIiKHJ2KSwgIj1tIigqcHcpIDoKKyAgICAgICAgICAgICAibSIoICpwdyApIDoKKyAgICAgICAgICAgICAicDciKTsKKworICAgIHJldHVybiBydjsKK30KKworaW5saW5lIGludCBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCBpbnQgKiBwdyApCit7CisgICAgLy8gaWYoICpwdyAhPSAwICkgKysqcHc7CisgICAgLy8gcmV0dXJuICpwdzsKKworICAgIGludCBydiwgdG1wLCB0bXAyOworCisgICAgX19hc21fXyAoIjA6ICAgbGQ0ICAgICAgICAgICUwPSUzICAgICAgICAgICA7OyBcbiIKKyAgICAgICAgICIgICAgIGNtcC5lcSAgICAgICBwNyxwMD0wLCUwICAgICAgICA7OyBcbiIKKyAgICAgICAgICIocDcpIGJyLmNvbmQuc3BudCAxZiAgICAgICAgICAgICAgICBcbiIKKyAgICAgICAgICIgICAgIG1vdiAgICAgICAgICBhci5jY3Y9JTAgICAgICAgICBcbiIKKyAgICAgICAgICIgICAgIGFkZCAgICAgICAgICAlMT0xLCUwICAgICAgICAgICA7OyBcbiIKKyAgICAgICAgICIgICAgIGNtcHhjaGc0LmFjcSAlMj0lMywlMSxhci5jY3YgOzsgXG4iCisgICAgICAgICAiICAgICBjbXAubmUgICAgICAgcDcscDA9JTAsJTIgICAgICAgOzsgXG4iCisgICAgICAgICAiKHA3KSBici5jb25kLnNwbnQgMGIgICAgICAgICAgICAgICAgXG4iCisgICAgICAgICAiICAgICBtb3YgICAgICAgICAgJTA9JTEgICAgICAgICAgICAgOzsgXG4iCisgICAgICAgICAiMToiIDogCisgICAgICAgICAiPSZyIihydiksICI9JnIiKHRtcCksICI9JnIiKHRtcDIpLCAiPW0iKCpwdykgOgorICAgICAgICAgIm0iKCAqcHcgKSA6CisgICAgICAgICAiYXIuY2N2IiwgInA3Iik7CisKKyAgICByZXR1cm4gcnY7Cit9CisKK2NsYXNzIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2Jhc2UgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworCisgICAgaW50IHVzZV9jb3VudF87ICAgICAgICAvLyAjc2hhcmVkCisgICAgaW50IHdlYWtfY291bnRfOyAgICAgICAvLyAjd2VhayArICgjc2hhcmVkICE9IDApCisKK3B1YmxpYzoKKworICAgIHNwX2NvdW50ZWRfYmFzZSgpOiB1c2VfY291bnRfKCAxICksIHdlYWtfY291bnRfKCAxICkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+c3BfY291bnRlZF9iYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICB9CisKKyAgICAvLyBkaXNwb3NlKCkgaXMgY2FsbGVkIHdoZW4gdXNlX2NvdW50XyBkcm9wcyB0byB6ZXJvLCB0byByZWxlYXNlCisgICAgLy8gdGhlIHJlc291cmNlcyBtYW5hZ2VkIGJ5ICp0aGlzLgorCisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSA9IDA7IC8vIG5vdGhyb3cKKworICAgIC8vIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2hlbiB3ZWFrX2NvdW50XyBkcm9wcyB0byB6ZXJvLgorCisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggc3BfdHlwZWluZm8gY29uc3QgJiB0aSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkgPSAwOworCisgICAgdm9pZCBhZGRfcmVmX2NvcHkoKQorICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJnVzZV9jb3VudF8gKTsKKyAgICB9CisKKyAgICBib29sIGFkZF9yZWZfbG9jaygpIC8vIHRydWUgb24gc3VjY2VzcworICAgIHsKKyAgICAgICAgcmV0dXJuIGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoICZ1c2VfY291bnRfICkgIT0gMDsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJnVzZV9jb3VudF8gKSA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgd2Vha19yZWxlYXNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHdlYWtfYWRkX3JlZigpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ3ZWFrX2NvdW50XyApOworICAgIH0KKworICAgIHZvaWQgd2Vha19yZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ3ZWFrX2NvdW50XyApID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQgY29uc3Qgdm9sYXRpbGUgJj4oIHVzZV9jb3VudF8gKTsgLy8gVE9ETyB1c2UgbGQuYWNxIGhlcmUKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0dDQ19JQTY0X0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX21pcHMuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX21pcHMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxM2EwYmIKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfbWlwcy5ocHAKQEAgLTAsMCArMSwxODIgQEAKKyNpZm5kZWYgQk9PU1RfREVUQUlMX1NQX0NPVU5URURfQkFTRV9HQ0NfTUlQU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfREVUQUlMX1NQX0NPVU5URURfQkFTRV9HQ0NfTUlQU19IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfbWlwcy5ocHAgLSBnKysgb24gTUlQUworLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDksIFNwaXJlbnQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8KKy8vICBMb2NrLWZyZWUgYWxnb3JpdGhtIGJ5IEFsZXhhbmRlciBUZXJla2hvdgorLy8KKworI2luY2x1ZGUgPGJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2lubGluZSB2b2lkIGF0b21pY19pbmNyZW1lbnQoIGludCAqIHB3ICkKK3sKKyAgICAvLyArKypwdzsKKworICAgIGludCB0bXA7CisKKyAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXworICAgICgKKyAgICAgICAgIjA6XG5cdCIKKyAgICAgICAgIi5zZXQgcHVzaFxuXHQiCisgICAgICAgICIuc2V0IG1pcHMyXG5cdCIKKyAgICAgICAgImxsICUwLCAlMVxuXHQiCisgICAgICAgICJhZGRpdSAlMCwgMVxuXHQiCisgICAgICAgICJzYyAlMCwgJTFcblx0IgorICAgICAgICAiLnNldCBwb3Bcblx0IgorICAgICAgICAiYmVxeiAlMCwgMGIiOgorICAgICAgICAiPSZyIiggdG1wICksICI9bSIoICpwdyApOgorICAgICAgICAibSIoICpwdyApCisgICAgKTsKK30KKworaW5saW5lIGludCBhdG9taWNfZGVjcmVtZW50KCBpbnQgKiBwdyApCit7CisgICAgLy8gcmV0dXJuIC0tKnB3OworCisgICAgaW50IHJ2LCB0bXA7CisKKyAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXworICAgICgKKyAgICAgICAgIjA6XG5cdCIKKyAgICAgICAgIi5zZXQgcHVzaFxuXHQiCisgICAgICAgICIuc2V0IG1pcHMyXG5cdCIKKyAgICAgICAgImxsICUxLCAlMlxuXHQiCisgICAgICAgICJhZGRpdSAlMCwgJTEsIC0xXG5cdCIKKyAgICAgICAgInNjICUwLCAlMlxuXHQiCisgICAgICAgICIuc2V0IHBvcFxuXHQiCisgICAgICAgICJiZXF6ICUwLCAwYlxuXHQiCisgICAgICAgICJhZGRpdSAlMCwgJTEsIC0xIjoKKyAgICAgICAgIj0mciIoIHJ2ICksICI9JnIiKCB0bXAgKSwgIj1tIiggKnB3ICk6CisgICAgICAgICJtIiggKnB3ICk6CisgICAgICAgICJtZW1vcnkiCisgICAgKTsKKworICAgIHJldHVybiBydjsKK30KKworaW5saW5lIGludCBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCBpbnQgKiBwdyApCit7CisgICAgLy8gaWYoICpwdyAhPSAwICkgKysqcHc7CisgICAgLy8gcmV0dXJuICpwdzsKKworICAgIGludCBydiwgdG1wOworCisgICAgX19hc21fXyBfX3ZvbGF0aWxlX18KKyAgICAoCisgICAgICAgICIwOlxuXHQiCisgICAgICAgICIuc2V0IHB1c2hcblx0IgorICAgICAgICAiLnNldCBtaXBzMlxuXHQiCisgICAgICAgICJsbCAlMCwgJTJcblx0IgorICAgICAgICAiYmVxeiAlMCwgMWZcblx0IgorICAgICAgICAiYWRkaXUgJTEsICUwLCAxXG5cdCIKKyAgICAgICAgInNjICUxLCAlMlxuXHQiCisgICAgICAgICIuc2V0IHBvcFxuXHQiCisgICAgICAgICJiZXF6ICUxLCAwYlxuXHQiCisgICAgICAgICJhZGRpdSAlMCwgJTAsIDFcblx0IgorICAgICAgICAiMToiOgorICAgICAgICAiPSZyIiggcnYgKSwgIj0mciIoIHRtcCApLCAiPW0iKCAqcHcgKToKKyAgICAgICAgIm0iKCAqcHcgKToKKyAgICAgICAgIm1lbW9yeSIKKyAgICApOworCisgICAgcmV0dXJuIHJ2OworfQorCitjbGFzcyBzcF9jb3VudGVkX2Jhc2UKK3sKK3ByaXZhdGU6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisgICAgc3BfY291bnRlZF9iYXNlICYgb3BlcmF0b3I9ICggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKworICAgIGludCB1c2VfY291bnRfOyAgICAgICAgLy8gI3NoYXJlZAorICAgIGludCB3ZWFrX2NvdW50XzsgICAgICAgLy8gI3dlYWsgKyAoI3NoYXJlZCAhPSAwKQorCitwdWJsaWM6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoKTogdXNlX2NvdW50XyggMSApLCB3ZWFrX2NvdW50XyggMSApCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgfnNwX2NvdW50ZWRfYmFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgfQorCisgICAgLy8gZGlzcG9zZSgpIGlzIGNhbGxlZCB3aGVuIHVzZV9jb3VudF8gZHJvcHMgdG8gemVybywgdG8gcmVsZWFzZQorICAgIC8vIHRoZSByZXNvdXJjZXMgbWFuYWdlZCBieSAqdGhpcy4KKworICAgIHZpcnR1YWwgdm9pZCBkaXNwb3NlKCkgPSAwOyAvLyBub3Rocm93CisKKyAgICAvLyBkZXN0cm95KCkgaXMgY2FsbGVkIHdoZW4gd2Vha19jb3VudF8gZHJvcHMgdG8gemVyby4KKworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkICogZ2V0X2RlbGV0ZXIoIHNwX3R5cGVpbmZvIGNvbnN0ICYgdGkgKSA9IDA7CisgICAgdmlydHVhbCB2b2lkICogZ2V0X3VudHlwZWRfZGVsZXRlcigpID0gMDsKKworICAgIHZvaWQgYWRkX3JlZl9jb3B5KCkKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ1c2VfY291bnRfICk7CisgICAgfQorCisgICAgYm9vbCBhZGRfcmVmX2xvY2soKSAvLyB0cnVlIG9uIHN1Y2Nlc3MKKyAgICB7CisgICAgICAgIHJldHVybiBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApICE9IDA7CisgICAgfQorCisgICAgdm9pZCByZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ1c2VfY291bnRfICkgPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIHdlYWtfcmVsZWFzZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB3ZWFrX2FkZF9yZWYoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmd2Vha19jb3VudF8gKTsKKyAgICB9CisKKyAgICB2b2lkIHdlYWtfcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZGVjcmVtZW50KCAmd2Vha19jb3VudF8gKSA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzdHJveSgpOworICAgICAgICB9CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCAvLyBub3Rocm93CisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50IGNvbnN0IHZvbGF0aWxlICY+KCB1c2VfY291bnRfICk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0dDQ19NSVBTX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX3BwYy5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfcHBjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjY2MGNhCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX3BwYy5ocHAKQEAgLTAsMCArMSwxODIgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfR0NDX1BQQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfR0NDX1BQQ19IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfcHBjLmhwcCAtIGcrKyBvbiBQb3dlclBDCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAwMyBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8gIENvcHlyaWdodCAyMDA0LTIwMDUgUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8KKy8vICBMb2NrLWZyZWUgYWxnb3JpdGhtIGJ5IEFsZXhhbmRlciBUZXJla2hvdgorLy8KKy8vICBUaGFua3MgdG8gQmVuIEhpdGNoaW5ncyBmb3IgdGhlICN3ZWFrICsgKCNzaGFyZWQgIT0gMCkKKy8vICBmb3JtdWxhdGlvbgorLy8KKworI2luY2x1ZGUgPGJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2lubGluZSB2b2lkIGF0b21pY19pbmNyZW1lbnQoIGludCAqIHB3ICkKK3sKKyAgICAvLyArKypwdzsKKworICAgIGludCB0bXA7CisKKyAgICBfX2FzbV9fCisgICAgKAorICAgICAgICAiMDpcblx0IgorICAgICAgICAibHdhcnggJTEsIDAsICUyXG5cdCIKKyAgICAgICAgImFkZGkgJTEsICUxLCAxXG5cdCIKKyAgICAgICAgInN0d2N4LiAlMSwgMCwgJTJcblx0IgorICAgICAgICAiYm5lLSAwYiI6CisKKyAgICAgICAgIj1tIiggKnB3ICksICI9JmIiKCB0bXAgKToKKyAgICAgICAgInIiKCBwdyApLCAibSIoICpwdyApOgorICAgICAgICAiY2MiCisgICAgKTsKK30KKworaW5saW5lIGludCBhdG9taWNfZGVjcmVtZW50KCBpbnQgKiBwdyApCit7CisgICAgLy8gcmV0dXJuIC0tKnB3OworCisgICAgaW50IHJ2OworCisgICAgX19hc21fXyBfX3ZvbGF0aWxlX18KKyAgICAoCisgICAgICAgICJzeW5jXG5cdCIKKyAgICAgICAgIjA6XG5cdCIKKyAgICAgICAgImx3YXJ4ICUxLCAwLCAlMlxuXHQiCisgICAgICAgICJhZGRpICUxLCAlMSwgLTFcblx0IgorICAgICAgICAic3R3Y3guICUxLCAwLCAlMlxuXHQiCisgICAgICAgICJibmUtIDBiXG5cdCIKKyAgICAgICAgImlzeW5jIjoKKworICAgICAgICAiPW0iKCAqcHcgKSwgIj0mYiIoIHJ2ICk6CisgICAgICAgICJyIiggcHcgKSwgIm0iKCAqcHcgKToKKyAgICAgICAgIm1lbW9yeSIsICJjYyIKKyAgICApOworCisgICAgcmV0dXJuIHJ2OworfQorCitpbmxpbmUgaW50IGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoIGludCAqIHB3ICkKK3sKKyAgICAvLyBpZiggKnB3ICE9IDAgKSArKypwdzsKKyAgICAvLyByZXR1cm4gKnB3OworCisgICAgaW50IHJ2OworCisgICAgX19hc21fXworICAgICgKKyAgICAgICAgIjA6XG5cdCIKKyAgICAgICAgImx3YXJ4ICUxLCAwLCAlMlxuXHQiCisgICAgICAgICJjbXB3aSAlMSwgMFxuXHQiCisgICAgICAgICJiZXEgMWZcblx0IgorICAgICAgICAiYWRkaSAlMSwgJTEsIDFcblx0IgorICAgICAgICAiMTpcblx0IgorICAgICAgICAic3R3Y3guICUxLCAwLCAlMlxuXHQiCisgICAgICAgICJibmUtIDBiIjoKKworICAgICAgICAiPW0iKCAqcHcgKSwgIj0mYiIoIHJ2ICk6CisgICAgICAgICJyIiggcHcgKSwgIm0iKCAqcHcgKToKKyAgICAgICAgImNjIgorICAgICk7CisKKyAgICByZXR1cm4gcnY7Cit9CisKK2NsYXNzIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2Jhc2UgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworCisgICAgaW50IHVzZV9jb3VudF87ICAgICAgICAvLyAjc2hhcmVkCisgICAgaW50IHdlYWtfY291bnRfOyAgICAgICAvLyAjd2VhayArICgjc2hhcmVkICE9IDApCisKK3B1YmxpYzoKKworICAgIHNwX2NvdW50ZWRfYmFzZSgpOiB1c2VfY291bnRfKCAxICksIHdlYWtfY291bnRfKCAxICkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+c3BfY291bnRlZF9iYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICB9CisKKyAgICAvLyBkaXNwb3NlKCkgaXMgY2FsbGVkIHdoZW4gdXNlX2NvdW50XyBkcm9wcyB0byB6ZXJvLCB0byByZWxlYXNlCisgICAgLy8gdGhlIHJlc291cmNlcyBtYW5hZ2VkIGJ5ICp0aGlzLgorCisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSA9IDA7IC8vIG5vdGhyb3cKKworICAgIC8vIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2hlbiB3ZWFrX2NvdW50XyBkcm9wcyB0byB6ZXJvLgorCisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggc3BfdHlwZWluZm8gY29uc3QgJiB0aSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkgPSAwOworCisgICAgdm9pZCBhZGRfcmVmX2NvcHkoKQorICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJnVzZV9jb3VudF8gKTsKKyAgICB9CisKKyAgICBib29sIGFkZF9yZWZfbG9jaygpIC8vIHRydWUgb24gc3VjY2VzcworICAgIHsKKyAgICAgICAgcmV0dXJuIGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoICZ1c2VfY291bnRfICkgIT0gMDsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJnVzZV9jb3VudF8gKSA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgd2Vha19yZWxlYXNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHdlYWtfYWRkX3JlZigpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ3ZWFrX2NvdW50XyApOworICAgIH0KKworICAgIHZvaWQgd2Vha19yZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ3ZWFrX2NvdW50XyApID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQgY29uc3Qgdm9sYXRpbGUgJj4oIHVzZV9jb3VudF8gKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0dDQ19QUENfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2Nfc3BhcmMuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX3NwYXJjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODg4ZWExCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX3NwYXJjLmhwcApAQCAtMCwwICsxLDE2NyBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9HQ0NfU1BBUkNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX0dDQ19TUEFSQ19IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vICBkZXRhaWwvc3BfY291bnRlZF9iYXNlX2djY19zcGFyYy5ocHAgLSBnKysgb24gU3BhcmMgVjgrCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwNiBQaW90ciBXeWRlcnNraQorLy8gIENvcHlyaWdodCAoYykgMjAwNiBUb21hcyBQdXZlcmxlCisvLyAgQ29weXJpZ2h0IChjKSAyMDA2IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQKKy8vCisvLyAgVGhhbmtzIHRvIE1pY2hhZWwgdmFuIGRlciBXZXN0aHVpemVuCisKKyNpbmNsdWRlIDxib29zdC9kZXRhaWwvc3BfdHlwZWluZm8uaHBwPgorI2luY2x1ZGUgPGludHR5cGVzLmg+IC8vIGludDMyX3QKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworaW5saW5lIGludDMyX3QgY29tcGFyZV9hbmRfc3dhcCggaW50MzJfdCAqIGRlc3RfLCBpbnQzMl90IGNvbXBhcmVfLCBpbnQzMl90IHN3YXBfICkKK3sKKyAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyggImNhcyBbJTFdLCAlMiwgJTAiCisgICAgICAgICAgICAgICAgICAgICAgICA6ICIrciIgKHN3YXBfKQorICAgICAgICAgICAgICAgICAgICAgICAgOiAiciIgKGRlc3RfKSwgInIiIChjb21wYXJlXykKKyAgICAgICAgICAgICAgICAgICAgICAgIDogIm1lbW9yeSIgKTsKKworICAgIHJldHVybiBzd2FwXzsKK30KKworaW5saW5lIGludDMyX3QgYXRvbWljX2ZldGNoX2FuZF9hZGQoIGludDMyX3QgKiBwdywgaW50MzJfdCBkdiApCit7CisgICAgLy8gbG9uZyByID0gKnB3OworICAgIC8vICpwdyArPSBkdjsKKyAgICAvLyByZXR1cm4gcjsKKworICAgIGZvciggOzsgKQorICAgIHsKKyAgICAgICAgaW50MzJfdCByID0gKnB3OworCisgICAgICAgIGlmKCBfX2J1aWx0aW5fZXhwZWN0KChjb21wYXJlX2FuZF9zd2FwKHB3LCByLCByICsgZHYpID09IHIpLCAxKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByOworICAgICAgICB9CisgICAgfQorfQorCitpbmxpbmUgdm9pZCBhdG9taWNfaW5jcmVtZW50KCBpbnQzMl90ICogcHcgKQoreworICAgIGF0b21pY19mZXRjaF9hbmRfYWRkKCBwdywgMSApOworfQorCitpbmxpbmUgaW50MzJfdCBhdG9taWNfZGVjcmVtZW50KCBpbnQzMl90ICogcHcgKQoreworICAgIHJldHVybiBhdG9taWNfZmV0Y2hfYW5kX2FkZCggcHcsIC0xICk7Cit9CisKK2lubGluZSBpbnQzMl90IGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoIGludDMyX3QgKiBwdyApCit7CisgICAgLy8gbG9uZyByID0gKnB3OworICAgIC8vIGlmKCByICE9IDAgKSArKypwdzsKKyAgICAvLyByZXR1cm4gcjsKKworICAgIGZvciggOzsgKQorICAgIHsKKyAgICAgICAgaW50MzJfdCByID0gKnB3OworCisgICAgICAgIGlmKCByID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcjsKKyAgICAgICAgfQorCisgICAgICAgIGlmKCBfX2J1aWx0aW5fZXhwZWN0KCAoIGNvbXBhcmVfYW5kX3N3YXAoIHB3LCByLCByICsgMSApID09IHIgKSwgMSApICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHI7CisgICAgICAgIH0KKyAgICB9ICAgIAorfQorCitjbGFzcyBzcF9jb3VudGVkX2Jhc2UKK3sKK3ByaXZhdGU6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisgICAgc3BfY291bnRlZF9iYXNlICYgb3BlcmF0b3I9ICggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKworICAgIGludDMyX3QgdXNlX2NvdW50XzsgICAgICAgIC8vICNzaGFyZWQKKyAgICBpbnQzMl90IHdlYWtfY291bnRfOyAgICAgICAvLyAjd2VhayArICgjc2hhcmVkICE9IDApCisKK3B1YmxpYzoKKworICAgIHNwX2NvdW50ZWRfYmFzZSgpOiB1c2VfY291bnRfKCAxICksIHdlYWtfY291bnRfKCAxICkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+c3BfY291bnRlZF9iYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICB9CisKKyAgICAvLyBkaXNwb3NlKCkgaXMgY2FsbGVkIHdoZW4gdXNlX2NvdW50XyBkcm9wcyB0byB6ZXJvLCB0byByZWxlYXNlCisgICAgLy8gdGhlIHJlc291cmNlcyBtYW5hZ2VkIGJ5ICp0aGlzLgorCisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSA9IDA7IC8vIG5vdGhyb3cKKworICAgIC8vIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2hlbiB3ZWFrX2NvdW50XyBkcm9wcyB0byB6ZXJvLgorCisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggc3BfdHlwZWluZm8gY29uc3QgJiB0aSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkgPSAwOworCisgICAgdm9pZCBhZGRfcmVmX2NvcHkoKQorICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJnVzZV9jb3VudF8gKTsKKyAgICB9CisKKyAgICBib29sIGFkZF9yZWZfbG9jaygpIC8vIHRydWUgb24gc3VjY2VzcworICAgIHsKKyAgICAgICAgcmV0dXJuIGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoICZ1c2VfY291bnRfICkgIT0gMDsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJnVzZV9jb3VudF8gKSA9PSAxICkKKyAgICAgICAgeworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgd2Vha19yZWxlYXNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHdlYWtfYWRkX3JlZigpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ3ZWFrX2NvdW50XyApOworICAgIH0KKworICAgIHZvaWQgd2Vha19yZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ3ZWFrX2NvdW50XyApID09IDEgKQorICAgICAgICB7CisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiBjb25zdF9jYXN0PCBpbnQzMl90IGNvbnN0IHZvbGF0aWxlICYgPiggdXNlX2NvdW50XyApOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfR0NDX1NQQVJDX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX3g4Ni5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfeDg2LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjhkNDI2Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX3g4Ni5ocHAKQEAgLTAsMCArMSwxNzQgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfR0NDX1g4Nl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfR0NDX1g4Nl9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9nY2NfeDg2LmhwcCAtIGcrKyBvbiA0ODYrIG9yIEFNRDY0CisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAwMyBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8gIENvcHlyaWdodCAyMDA0LTIwMDUgUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyAgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworLy8KKy8vICBMb2NrLWZyZWUgYWxnb3JpdGhtIGJ5IEFsZXhhbmRlciBUZXJla2hvdgorLy8KKy8vICBUaGFua3MgdG8gQmVuIEhpdGNoaW5ncyBmb3IgdGhlICN3ZWFrICsgKCNzaGFyZWQgIT0gMCkKKy8vICBmb3JtdWxhdGlvbgorLy8KKworI2luY2x1ZGUgPGJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2lubGluZSBpbnQgYXRvbWljX2V4Y2hhbmdlX2FuZF9hZGQoIGludCAqIHB3LCBpbnQgZHYgKQoreworICAgIC8vIGludCByID0gKnB3OworICAgIC8vICpwdyArPSBkdjsKKyAgICAvLyByZXR1cm4gcjsKKworICAgIGludCByOworCisgICAgX19hc21fXyBfX3ZvbGF0aWxlX18KKyAgICAoCisgICAgICAgICJsb2NrXG5cdCIKKyAgICAgICAgInhhZGQgJTEsICUwIjoKKyAgICAgICAgIj1tIiggKnB3ICksICI9ciIoIHIgKTogLy8gb3V0cHV0cyAoJTAsICUxKQorICAgICAgICAibSIoICpwdyApLCAiMSIoIGR2ICk6IC8vIGlucHV0cyAoJTIsICUzID09ICUxKQorICAgICAgICAibWVtb3J5IiwgImNjIiAvLyBjbG9iYmVycworICAgICk7CisKKyAgICByZXR1cm4gcjsKK30KKworaW5saW5lIHZvaWQgYXRvbWljX2luY3JlbWVudCggaW50ICogcHcgKQoreworICAgIC8vYXRvbWljX2V4Y2hhbmdlX2FuZF9hZGQoIHB3LCAxICk7CisKKyAgICBfX2FzbV9fCisgICAgKAorICAgICAgICAibG9ja1xuXHQiCisgICAgICAgICJpbmNsICUwIjoKKyAgICAgICAgIj1tIiggKnB3ICk6IC8vIG91dHB1dCAoJTApCisgICAgICAgICJtIiggKnB3ICk6IC8vIGlucHV0ICglMSkKKyAgICAgICAgImNjIiAvLyBjbG9iYmVycworICAgICk7Cit9CisKK2lubGluZSBpbnQgYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggaW50ICogcHcgKQoreworICAgIC8vIGludCBydiA9ICpwdzsKKyAgICAvLyBpZiggcnYgIT0gMCApICsrKnB3OworICAgIC8vIHJldHVybiBydjsKKworICAgIGludCBydiwgdG1wOworCisgICAgX19hc21fXworICAgICgKKyAgICAgICAgIm1vdmwgJTAsICUlZWF4XG5cdCIKKyAgICAgICAgIjA6XG5cdCIKKyAgICAgICAgInRlc3QgJSVlYXgsICUlZWF4XG5cdCIKKyAgICAgICAgImplIDFmXG5cdCIKKyAgICAgICAgIm1vdmwgJSVlYXgsICUyXG5cdCIKKyAgICAgICAgImluY2wgJTJcblx0IgorICAgICAgICAibG9ja1xuXHQiCisgICAgICAgICJjbXB4Y2hnbCAlMiwgJTBcblx0IgorICAgICAgICAiam5lIDBiXG5cdCIKKyAgICAgICAgIjE6IjoKKyAgICAgICAgIj1tIiggKnB3ICksICI9JmEiKCBydiApLCAiPSZyIiggdG1wICk6IC8vIG91dHB1dHMgKCUwLCAlMSwgJTIpCisgICAgICAgICJtIiggKnB3ICk6IC8vIGlucHV0ICglMykKKyAgICAgICAgImNjIiAvLyBjbG9iYmVycworICAgICk7CisKKyAgICByZXR1cm4gcnY7Cit9CisKK2NsYXNzIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2Jhc2UgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworCisgICAgaW50IHVzZV9jb3VudF87ICAgICAgICAvLyAjc2hhcmVkCisgICAgaW50IHdlYWtfY291bnRfOyAgICAgICAvLyAjd2VhayArICgjc2hhcmVkICE9IDApCisKK3B1YmxpYzoKKworICAgIHNwX2NvdW50ZWRfYmFzZSgpOiB1c2VfY291bnRfKCAxICksIHdlYWtfY291bnRfKCAxICkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+c3BfY291bnRlZF9iYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICB9CisKKyAgICAvLyBkaXNwb3NlKCkgaXMgY2FsbGVkIHdoZW4gdXNlX2NvdW50XyBkcm9wcyB0byB6ZXJvLCB0byByZWxlYXNlCisgICAgLy8gdGhlIHJlc291cmNlcyBtYW5hZ2VkIGJ5ICp0aGlzLgorCisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSA9IDA7IC8vIG5vdGhyb3cKKworICAgIC8vIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2hlbiB3ZWFrX2NvdW50XyBkcm9wcyB0byB6ZXJvLgorCisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggc3BfdHlwZWluZm8gY29uc3QgJiB0aSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkgPSAwOworCisgICAgdm9pZCBhZGRfcmVmX2NvcHkoKQorICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJnVzZV9jb3VudF8gKTsKKyAgICB9CisKKyAgICBib29sIGFkZF9yZWZfbG9jaygpIC8vIHRydWUgb24gc3VjY2VzcworICAgIHsKKyAgICAgICAgcmV0dXJuIGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoICZ1c2VfY291bnRfICkgIT0gMDsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2V4Y2hhbmdlX2FuZF9hZGQoICZ1c2VfY291bnRfLCAtMSApID09IDEgKQorICAgICAgICB7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICB3ZWFrX3JlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgd2Vha19hZGRfcmVmKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJndlYWtfY291bnRfICk7CisgICAgfQorCisgICAgdm9pZCB3ZWFrX3JlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2V4Y2hhbmdlX2FuZF9hZGQoICZ3ZWFrX2NvdW50XywgLTEgKSA9PSAxICkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzdHJveSgpOworICAgICAgICB9CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCAvLyBub3Rocm93CisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50IGNvbnN0IHZvbGF0aWxlICY+KCB1c2VfY291bnRfICk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9HQ0NfWDg2X0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfbnQuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwODEzODMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9udC5ocHAKQEAgLTAsMCArMSwxMDggQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfTlRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX05UX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBkZXRhaWwvc3BfY291bnRlZF9iYXNlX250LmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIsIDIwMDMgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgMjAwNC0yMDA1IFBldGVyIERpbW92CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2luY2x1ZGUgPGJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2NsYXNzIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIHNwX2NvdW50ZWRfYmFzZSggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2Jhc2UgJiBvcGVyYXRvcj0gKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworCisgICAgbG9uZyB1c2VfY291bnRfOyAgICAgICAgLy8gI3NoYXJlZAorICAgIGxvbmcgd2Vha19jb3VudF87ICAgICAgIC8vICN3ZWFrICsgKCNzaGFyZWQgIT0gMCkKKworcHVibGljOgorCisgICAgc3BfY291bnRlZF9iYXNlKCk6IHVzZV9jb3VudF8oIDEgKSwgd2Vha19jb3VudF8oIDEgKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5zcF9jb3VudGVkX2Jhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgIH0KKworICAgIC8vIGRpc3Bvc2UoKSBpcyBjYWxsZWQgd2hlbiB1c2VfY291bnRfIGRyb3BzIHRvIHplcm8sIHRvIHJlbGVhc2UKKyAgICAvLyB0aGUgcmVzb3VyY2VzIG1hbmFnZWQgYnkgKnRoaXMuCisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpID0gMDsgLy8gbm90aHJvdworCisgICAgLy8gZGVzdHJveSgpIGlzIGNhbGxlZCB3aGVuIHdlYWtfY291bnRfIGRyb3BzIHRvIHplcm8uCisKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCAqIGdldF9kZWxldGVyKCBzcF90eXBlaW5mbyBjb25zdCAmIHRpICkgPSAwOworICAgIHZpcnR1YWwgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKSA9IDA7CisKKyAgICB2b2lkIGFkZF9yZWZfY29weSgpCisgICAgeworICAgICAgICArK3VzZV9jb3VudF87CisgICAgfQorCisgICAgYm9vbCBhZGRfcmVmX2xvY2soKSAvLyB0cnVlIG9uIHN1Y2Nlc3MKKyAgICB7CisgICAgICAgIGlmKCB1c2VfY291bnRfID09IDAgKSByZXR1cm4gZmFsc2U7CisgICAgICAgICsrdXNlX2NvdW50XzsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdm9pZCByZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIC0tdXNlX2NvdW50XyA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgd2Vha19yZWxlYXNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHdlYWtfYWRkX3JlZigpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgICsrd2Vha19jb3VudF87CisgICAgfQorCisgICAgdm9pZCB3ZWFrX3JlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggLS13ZWFrX2NvdW50XyA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzdHJveSgpOworICAgICAgICB9CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCAvLyBub3Rocm93CisgICAgeworICAgICAgICByZXR1cm4gdXNlX2NvdW50XzsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX05UX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfcHQuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfcHQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyZGRhM2QKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9wdC5ocHAKQEAgLTAsMCArMSwxMzYgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfUFRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX1BUX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBkZXRhaWwvc3BfY291bnRlZF9iYXNlX3B0LmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIsIDIwMDMgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgMjAwNC0yMDA1IFBldGVyIERpbW92CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlCisvLyBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2luY2x1ZGUgPGJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHA+CisjaW5jbHVkZSA8cHRocmVhZC5oPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitjbGFzcyBzcF9jb3VudGVkX2Jhc2UKK3sKK3ByaXZhdGU6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisgICAgc3BfY291bnRlZF9iYXNlICYgb3BlcmF0b3I9ICggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKworICAgIGxvbmcgdXNlX2NvdW50XzsgICAgICAgIC8vICNzaGFyZWQKKyAgICBsb25nIHdlYWtfY291bnRfOyAgICAgICAvLyAjd2VhayArICgjc2hhcmVkICE9IDApCisKKyAgICBtdXRhYmxlIHB0aHJlYWRfbXV0ZXhfdCBtXzsKKworcHVibGljOgorCisgICAgc3BfY291bnRlZF9iYXNlKCk6IHVzZV9jb3VudF8oIDEgKSwgd2Vha19jb3VudF8oIDEgKQorICAgIHsKKy8vIEhQVVggMTAuMjAgLyBEQ0UgaGFzIGEgbm9uc3RhbmRhcmQgcHRocmVhZF9tdXRleF9pbml0CisKKyNpZiBkZWZpbmVkKF9faHB1eCkgJiYgZGVmaW5lZChfREVDVEhSRUFEU18pCisgICAgICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCggJm1fLCBwdGhyZWFkX211dGV4YXR0cl9kZWZhdWx0ICk7CisjZWxzZQorICAgICAgICBwdGhyZWFkX211dGV4X2luaXQoICZtXywgMCApOworI2VuZGlmCisgICAgfQorCisgICAgdmlydHVhbCB+c3BfY291bnRlZF9iYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgcHRocmVhZF9tdXRleF9kZXN0cm95KCAmbV8gKTsKKyAgICB9CisKKyAgICAvLyBkaXNwb3NlKCkgaXMgY2FsbGVkIHdoZW4gdXNlX2NvdW50XyBkcm9wcyB0byB6ZXJvLCB0byByZWxlYXNlCisgICAgLy8gdGhlIHJlc291cmNlcyBtYW5hZ2VkIGJ5ICp0aGlzLgorCisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSA9IDA7IC8vIG5vdGhyb3cKKworICAgIC8vIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2hlbiB3ZWFrX2NvdW50XyBkcm9wcyB0byB6ZXJvLgorCisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggc3BfdHlwZWluZm8gY29uc3QgJiB0aSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkgPSAwOworCisgICAgdm9pZCBhZGRfcmVmX2NvcHkoKQorICAgIHsKKyAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCAmbV8gKTsKKyAgICAgICAgKyt1c2VfY291bnRfOworICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayggJm1fICk7CisgICAgfQorCisgICAgYm9vbCBhZGRfcmVmX2xvY2soKSAvLyB0cnVlIG9uIHN1Y2Nlc3MKKyAgICB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayggJm1fICk7CisgICAgICAgIGJvb2wgciA9IHVzZV9jb3VudF8gPT0gMD8gZmFsc2U6ICggKyt1c2VfY291bnRfLCB0cnVlICk7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCAmbV8gKTsKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorCisgICAgdm9pZCByZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCAmbV8gKTsKKyAgICAgICAgbG9uZyBuZXdfdXNlX2NvdW50ID0gLS11c2VfY291bnRfOworICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayggJm1fICk7CisKKyAgICAgICAgaWYoIG5ld191c2VfY291bnQgPT0gMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIHdlYWtfcmVsZWFzZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB3ZWFrX2FkZF9yZWYoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBwdGhyZWFkX211dGV4X2xvY2soICZtXyApOworICAgICAgICArK3dlYWtfY291bnRfOworICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayggJm1fICk7CisgICAgfQorCisgICAgdm9pZCB3ZWFrX3JlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBwdGhyZWFkX211dGV4X2xvY2soICZtXyApOworICAgICAgICBsb25nIG5ld193ZWFrX2NvdW50ID0gLS13ZWFrX2NvdW50XzsKKyAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soICZtXyApOworCisgICAgICAgIGlmKCBuZXdfd2Vha19jb3VudCA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzdHJveSgpOworICAgICAgICB9CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCAvLyBub3Rocm93CisgICAgeworICAgICAgICBwdGhyZWFkX211dGV4X2xvY2soICZtXyApOworICAgICAgICBsb25nIHIgPSB1c2VfY291bnRfOworICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayggJm1fICk7CisKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9QVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3NuY19wczMuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc25jX3BzMy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEwZmYzMQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3NuY19wczMuaHBwCkBAIC0wLDAgKzEsMTYyIEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX1NOQ19QUzNfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX1NOQ19QUzNfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8gIGRldGFpbC9zcF9jb3VudGVkX2Jhc2VfZ2NjX3NwYXJjLmhwcCAtIGcrKyBvbiBTcGFyYyBWOCsKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA2IFBpb3RyIFd5ZGVyc2tpCisvLyAgQ29weXJpZ2h0IChjKSAyMDA2IFRvbWFzIFB1dmVybGUKKy8vICBDb3B5cmlnaHQgKGMpIDIwMDYgUGV0ZXIgRGltb3YKKy8vICBDb3B5cmlnaHQgKGMpIDIwMTEgRW1pbCBEb3RjaGV2c2tpCisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQKKy8vCisvLyAgVGhhbmtzIHRvIE1pY2hhZWwgdmFuIGRlciBXZXN0aHVpemVuCisKKyNpbmNsdWRlIDxib29zdC9kZXRhaWwvc3BfdHlwZWluZm8uaHBwPgorI2luY2x1ZGUgPGludHR5cGVzLmg+IC8vIHVpbnQzMl90CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2lubGluZSB1aW50MzJfdCBjb21wYXJlX2FuZF9zd2FwKCB1aW50MzJfdCAqIGRlc3RfLCB1aW50MzJfdCBjb21wYXJlXywgdWludDMyX3Qgc3dhcF8gKQoreworICAgIHJldHVybiBfX2J1aWx0aW5fY2VsbEF0b21pY0NvbXBhcmVBbmRTd2FwMzIoZGVzdF8sY29tcGFyZV8sc3dhcF8pOworfQorCitpbmxpbmUgdWludDMyX3QgYXRvbWljX2ZldGNoX2FuZF9hZGQoIHVpbnQzMl90ICogcHcsIHVpbnQzMl90IGR2ICkKK3sKKyAgICAvLyBsb25nIHIgPSAqcHc7CisgICAgLy8gKnB3ICs9IGR2OworICAgIC8vIHJldHVybiByOworCisgICAgZm9yKCA7OyApCisgICAgeworICAgICAgICB1aW50MzJfdCByID0gKnB3OworCisgICAgICAgIGlmKCBfX2J1aWx0aW5fZXhwZWN0KChjb21wYXJlX2FuZF9zd2FwKHB3LCByLCByICsgZHYpID09IHIpLCAxKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByOworICAgICAgICB9CisgICAgfQorfQorCitpbmxpbmUgdm9pZCBhdG9taWNfaW5jcmVtZW50KCB1aW50MzJfdCAqIHB3ICkKK3sKKyAgICAodm9pZCkgX19idWlsdGluX2NlbGxBdG9taWNJbmNyMzIoIHB3ICk7Cit9CisKK2lubGluZSB1aW50MzJfdCBhdG9taWNfZGVjcmVtZW50KCB1aW50MzJfdCAqIHB3ICkKK3sKKyAgICByZXR1cm4gX19idWlsdGluX2NlbGxBdG9taWNEZWNyMzIoIHB3ICk7Cit9CisKK2lubGluZSB1aW50MzJfdCBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCB1aW50MzJfdCAqIHB3ICkKK3sKKyAgICAvLyBsb25nIHIgPSAqcHc7CisgICAgLy8gaWYoIHIgIT0gMCApICsrKnB3OworICAgIC8vIHJldHVybiByOworCisgICAgZm9yKCA7OyApCisgICAgeworICAgICAgICB1aW50MzJfdCByID0gKnB3OworCisgICAgICAgIGlmKCByID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcjsKKyAgICAgICAgfQorCisgICAgICAgIGlmKCBfX2J1aWx0aW5fZXhwZWN0KCAoIGNvbXBhcmVfYW5kX3N3YXAoIHB3LCByLCByICsgMSApID09IHIgKSwgMSApICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHI7CisgICAgICAgIH0KKyAgICB9ICAgIAorfQorCitjbGFzcyBzcF9jb3VudGVkX2Jhc2UKK3sKK3ByaXZhdGU6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisgICAgc3BfY291bnRlZF9iYXNlICYgb3BlcmF0b3I9ICggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKworICAgIHVpbnQzMl90IHVzZV9jb3VudF87ICAgICAgICAvLyAjc2hhcmVkCisgICAgdWludDMyX3Qgd2Vha19jb3VudF87ICAgICAgIC8vICN3ZWFrICsgKCNzaGFyZWQgIT0gMCkKKworcHVibGljOgorCisgICAgc3BfY291bnRlZF9iYXNlKCk6IHVzZV9jb3VudF8oIDEgKSwgd2Vha19jb3VudF8oIDEgKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5zcF9jb3VudGVkX2Jhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgIH0KKworICAgIC8vIGRpc3Bvc2UoKSBpcyBjYWxsZWQgd2hlbiB1c2VfY291bnRfIGRyb3BzIHRvIHplcm8sIHRvIHJlbGVhc2UKKyAgICAvLyB0aGUgcmVzb3VyY2VzIG1hbmFnZWQgYnkgKnRoaXMuCisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpID0gMDsgLy8gbm90aHJvdworCisgICAgLy8gZGVzdHJveSgpIGlzIGNhbGxlZCB3aGVuIHdlYWtfY291bnRfIGRyb3BzIHRvIHplcm8uCisKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCAqIGdldF9kZWxldGVyKCBzcF90eXBlaW5mbyBjb25zdCAmIHRpICkgPSAwOworICAgIHZpcnR1YWwgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKSA9IDA7CisKKyAgICB2b2lkIGFkZF9yZWZfY29weSgpCisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApOworICAgIH0KKworICAgIGJvb2wgYWRkX3JlZl9sb2NrKCkgLy8gdHJ1ZSBvbiBzdWNjZXNzCisgICAgeworICAgICAgICByZXR1cm4gYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggJnVzZV9jb3VudF8gKSAhPSAwOworICAgIH0KKworICAgIHZvaWQgcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZGVjcmVtZW50KCAmdXNlX2NvdW50XyApID09IDEgKQorICAgICAgICB7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICB3ZWFrX3JlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgd2Vha19hZGRfcmVmKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJndlYWtfY291bnRfICk7CisgICAgfQorCisgICAgdm9pZCB3ZWFrX3JlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJndlYWtfY291bnRfICkgPT0gMSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc3Ryb3koKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxvbmcgdXNlX2NvdW50KCkgY29uc3QgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8IHVpbnQzMl90IGNvbnN0IHZvbGF0aWxlICYgPiggdXNlX2NvdW50XyApOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfU05DX1BTM19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3NwaW4uaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc3Bpbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2MxMTAzNgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3NwaW4uaHBwCkBAIC0wLDAgKzEsMTMyIEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX1NQSU5fSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX1NQSU5fSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGRldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc3Bpbi5ocHAgLSBzcGlubG9jayBwb29sIGF0b21pYyBlbXVsYXRpb24KKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyLCAyMDAzIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLyAgQ29weXJpZ2h0IDIwMDQtMjAwOCBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpbmNsdWRlIDxib29zdC9kZXRhaWwvc3BfdHlwZWluZm8uaHBwPgorI2luY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfcG9vbC5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2lubGluZSBpbnQgYXRvbWljX2V4Y2hhbmdlX2FuZF9hZGQoIGludCAqIHB3LCBpbnQgZHYgKQoreworICAgIHNwaW5sb2NrX3Bvb2w8MT46OnNjb3BlZF9sb2NrIGxvY2soIHB3ICk7CisKKyAgICBpbnQgciA9ICpwdzsKKyAgICAqcHcgKz0gZHY7CisgICAgcmV0dXJuIHI7Cit9CisKK2lubGluZSB2b2lkIGF0b21pY19pbmNyZW1lbnQoIGludCAqIHB3ICkKK3sKKyAgICBzcGlubG9ja19wb29sPDE+OjpzY29wZWRfbG9jayBsb2NrKCBwdyApOworICAgICsrKnB3OworfQorCitpbmxpbmUgaW50IGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoIGludCAqIHB3ICkKK3sKKyAgICBzcGlubG9ja19wb29sPDE+OjpzY29wZWRfbG9jayBsb2NrKCBwdyApOworCisgICAgaW50IHJ2ID0gKnB3OworICAgIGlmKCBydiAhPSAwICkgKysqcHc7CisgICAgcmV0dXJuIHJ2OworfQorCitjbGFzcyBzcF9jb3VudGVkX2Jhc2UKK3sKK3ByaXZhdGU6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisgICAgc3BfY291bnRlZF9iYXNlICYgb3BlcmF0b3I9ICggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKworICAgIGludCB1c2VfY291bnRfOyAgICAgICAgLy8gI3NoYXJlZAorICAgIGludCB3ZWFrX2NvdW50XzsgICAgICAgLy8gI3dlYWsgKyAoI3NoYXJlZCAhPSAwKQorCitwdWJsaWM6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoKTogdXNlX2NvdW50XyggMSApLCB3ZWFrX2NvdW50XyggMSApCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgfnNwX2NvdW50ZWRfYmFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgfQorCisgICAgLy8gZGlzcG9zZSgpIGlzIGNhbGxlZCB3aGVuIHVzZV9jb3VudF8gZHJvcHMgdG8gemVybywgdG8gcmVsZWFzZQorICAgIC8vIHRoZSByZXNvdXJjZXMgbWFuYWdlZCBieSAqdGhpcy4KKworICAgIHZpcnR1YWwgdm9pZCBkaXNwb3NlKCkgPSAwOyAvLyBub3Rocm93CisKKyAgICAvLyBkZXN0cm95KCkgaXMgY2FsbGVkIHdoZW4gd2Vha19jb3VudF8gZHJvcHMgdG8gemVyby4KKworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkICogZ2V0X2RlbGV0ZXIoIHNwX3R5cGVpbmZvIGNvbnN0ICYgdGkgKSA9IDA7CisgICAgdmlydHVhbCB2b2lkICogZ2V0X3VudHlwZWRfZGVsZXRlcigpID0gMDsKKworICAgIHZvaWQgYWRkX3JlZl9jb3B5KCkKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ1c2VfY291bnRfICk7CisgICAgfQorCisgICAgYm9vbCBhZGRfcmVmX2xvY2soKSAvLyB0cnVlIG9uIHN1Y2Nlc3MKKyAgICB7CisgICAgICAgIHJldHVybiBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApICE9IDA7CisgICAgfQorCisgICAgdm9pZCByZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19leGNoYW5nZV9hbmRfYWRkKCAmdXNlX2NvdW50XywgLTEgKSA9PSAxICkKKyAgICAgICAgeworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgd2Vha19yZWxlYXNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHdlYWtfYWRkX3JlZigpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ3ZWFrX2NvdW50XyApOworICAgIH0KKworICAgIHZvaWQgd2Vha19yZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19leGNoYW5nZV9hbmRfYWRkKCAmd2Vha19jb3VudF8sIC0xICkgPT0gMSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc3Ryb3koKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxvbmcgdXNlX2NvdW50KCkgY29uc3QgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgc3BpbmxvY2tfcG9vbDwxPjo6c2NvcGVkX2xvY2sgbG9jayggJnVzZV9jb3VudF8gKTsKKyAgICAgICAgcmV0dXJuIHVzZV9jb3VudF87CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9TUElOX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc3luYy5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV9zeW5jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDY1NDI1Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2Vfc3luYy5ocHAKQEAgLTAsMCArMSwxNTYgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfU1lOQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfU1lOQ19IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vICBkZXRhaWwvc3BfY291bnRlZF9iYXNlX3N5bmMuaHBwIC0gZysrIDQuMSsgX19zeW5jIGludHJpbnNpY3MKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA3IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQKKworI2luY2x1ZGUgPGJvb3N0L2RldGFpbC9zcF90eXBlaW5mby5ocHA+CisjaW5jbHVkZSA8bGltaXRzLmg+CisKKyNpZiBkZWZpbmVkKCBfX2lhNjRfXyApICYmIGRlZmluZWQoIF9fSU5URUxfQ09NUElMRVIgKQorIyBpbmNsdWRlIDxpYTY0aW50cmluLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworI2lmIElOVF9NQVggPj0gMjE0NzQ4MzY0NworCit0eXBlZGVmIGludCBzcF9pbnQzMl90OworCisjZWxzZQorCit0eXBlZGVmIGxvbmcgc3BfaW50MzJfdDsKKworI2VuZGlmCisKK2lubGluZSB2b2lkIGF0b21pY19pbmNyZW1lbnQoIHNwX2ludDMyX3QgKiBwdyApCit7CisgICAgX19zeW5jX2ZldGNoX2FuZF9hZGQoIHB3LCAxICk7Cit9CisKK2lubGluZSBzcF9pbnQzMl90IGF0b21pY19kZWNyZW1lbnQoIHNwX2ludDMyX3QgKiBwdyApCit7CisgICAgcmV0dXJuIF9fc3luY19mZXRjaF9hbmRfYWRkKCBwdywgLTEgKTsKK30KKworaW5saW5lIHNwX2ludDMyX3QgYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggc3BfaW50MzJfdCAqIHB3ICkKK3sKKyAgICAvLyBsb25nIHIgPSAqcHc7CisgICAgLy8gaWYoIHIgIT0gMCApICsrKnB3OworICAgIC8vIHJldHVybiByOworCisgICAgc3BfaW50MzJfdCByID0gKnB3OworCisgICAgZm9yKCA7OyApCisgICAgeworICAgICAgICBpZiggciA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHI7CisgICAgICAgIH0KKworICAgICAgICBzcF9pbnQzMl90IHIyID0gX19zeW5jX3ZhbF9jb21wYXJlX2FuZF9zd2FwKCBwdywgciwgciArIDEgKTsKKworICAgICAgICBpZiggcjIgPT0gciApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiByOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgciA9IHIyOworICAgICAgICB9CisgICAgfSAgICAKK30KKworY2xhc3Mgc3BfY291bnRlZF9iYXNlCit7Citwcml2YXRlOgorCisgICAgc3BfY291bnRlZF9iYXNlKCBzcF9jb3VudGVkX2Jhc2UgY29uc3QgJiApOworICAgIHNwX2NvdW50ZWRfYmFzZSAmIG9wZXJhdG9yPSAoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisKKyAgICBzcF9pbnQzMl90IHVzZV9jb3VudF87ICAgICAgICAvLyAjc2hhcmVkCisgICAgc3BfaW50MzJfdCB3ZWFrX2NvdW50XzsgICAgICAgLy8gI3dlYWsgKyAoI3NoYXJlZCAhPSAwKQorCitwdWJsaWM6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoKTogdXNlX2NvdW50XyggMSApLCB3ZWFrX2NvdW50XyggMSApCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgfnNwX2NvdW50ZWRfYmFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgfQorCisgICAgLy8gZGlzcG9zZSgpIGlzIGNhbGxlZCB3aGVuIHVzZV9jb3VudF8gZHJvcHMgdG8gemVybywgdG8gcmVsZWFzZQorICAgIC8vIHRoZSByZXNvdXJjZXMgbWFuYWdlZCBieSAqdGhpcy4KKworICAgIHZpcnR1YWwgdm9pZCBkaXNwb3NlKCkgPSAwOyAvLyBub3Rocm93CisKKyAgICAvLyBkZXN0cm95KCkgaXMgY2FsbGVkIHdoZW4gd2Vha19jb3VudF8gZHJvcHMgdG8gemVyby4KKworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkICogZ2V0X2RlbGV0ZXIoIHNwX3R5cGVpbmZvIGNvbnN0ICYgdGkgKSA9IDA7CisgICAgdmlydHVhbCB2b2lkICogZ2V0X3VudHlwZWRfZGVsZXRlcigpID0gMDsKKworICAgIHZvaWQgYWRkX3JlZl9jb3B5KCkKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ1c2VfY291bnRfICk7CisgICAgfQorCisgICAgYm9vbCBhZGRfcmVmX2xvY2soKSAvLyB0cnVlIG9uIHN1Y2Nlc3MKKyAgICB7CisgICAgICAgIHJldHVybiBhdG9taWNfY29uZGl0aW9uYWxfaW5jcmVtZW50KCAmdXNlX2NvdW50XyApICE9IDA7CisgICAgfQorCisgICAgdm9pZCByZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ1c2VfY291bnRfICkgPT0gMSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIHdlYWtfcmVsZWFzZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB3ZWFrX2FkZF9yZWYoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBhdG9taWNfaW5jcmVtZW50KCAmd2Vha19jb3VudF8gKTsKKyAgICB9CisKKyAgICB2b2lkIHdlYWtfcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBhdG9taWNfZGVjcmVtZW50KCAmd2Vha19jb3VudF8gKSA9PSAxICkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzdHJveSgpOworICAgICAgICB9CisgICAgfQorCisgICAgbG9uZyB1c2VfY291bnQoKSBjb25zdCAvLyBub3Rocm93CisgICAgeworICAgICAgICByZXR1cm4gY29uc3RfY2FzdDwgc3BfaW50MzJfdCBjb25zdCB2b2xhdGlsZSAmID4oIHVzZV9jb3VudF8gKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX1NZTkNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfYmFzZV92YWNwcF9wcGMuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfdmFjcHBfcHBjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODc0NTAyCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfdmFjcHBfcHBjLmhwcApAQCAtMCwwICsxLDE1MSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9WQUNQUF9QUENfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9CQVNFX1ZBQ1BQX1BQQ19IUFBfSU5DTFVERUQKKworLy8KKy8vICBkZXRhaWwvc3BfY291bnRlZF9iYXNlX3ZhY3BwX3BwYy5ocHAgLSB4bEModmFjcHApIG9uIFBPV0VSCisvLyAgIGJhc2VkIG9uOiBkZXRhaWwvc3BfY291bnRlZF9iYXNlX3czMi5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyLCAyMDAzIFBldGVyIERpbW92IGFuZCBNdWx0aSBNZWRpYSBMdGQuCisvLyAgQ29weXJpZ2h0IDIwMDQtMjAwNSBQZXRlciBEaW1vdgorLy8gIENvcHlyaWdodCAyMDA2IE1pY2hhZWwgdmFuIGRlciBXZXN0aHVpemVuCisvLyAgQ29weXJpZ2h0IDIwMTIgSUJNIENvcnAuCisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vCisvLyAgTG9jay1mcmVlIGFsZ29yaXRobSBieSBBbGV4YW5kZXIgVGVyZWtob3YKKy8vCisvLyAgVGhhbmtzIHRvIEJlbiBIaXRjaGluZ3MgZm9yIHRoZSAjd2VhayArICgjc2hhcmVkICE9IDApCisvLyAgZm9ybXVsYXRpb24KKy8vCisKKyNpbmNsdWRlIDxib29zdC9kZXRhaWwvc3BfdHlwZWluZm8uaHBwPgorCitleHRlcm4gImJ1aWx0aW4iIHZvaWQgX19sd3N5bmModm9pZCk7CitleHRlcm4gImJ1aWx0aW4iIHZvaWQgX19pc3luYyh2b2lkKTsKK2V4dGVybiAiYnVpbHRpbiIgaW50IF9fZmV0Y2hfYW5kX2FkZCh2b2xhdGlsZSBpbnQqIGFkZHIsIGludCB2YWwpOworZXh0ZXJuICJidWlsdGluIiBpbnQgX19jb21wYXJlX2FuZF9zd2FwKHZvbGF0aWxlIGludCosIGludCosIGludCk7CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2lubGluZSB2b2lkIGF0b21pY19pbmNyZW1lbnQoIGludCAqcHcgKQoreworICAgLy8gKysqcHc7CisgICBfX2x3c3luYygpOworICAgX19mZXRjaF9hbmRfYWRkKHB3LCAxKTsKKyAgIF9faXN5bmMoKTsKK30gCisKK2lubGluZSBpbnQgYXRvbWljX2RlY3JlbWVudCggaW50ICpwdyApCit7CisgICAvLyByZXR1cm4gLS0qcHc7CisgICBfX2x3c3luYygpOworICAgaW50IG9yaWdpbmFsVmFsdWUgPSBfX2ZldGNoX2FuZF9hZGQocHcsIC0xKTsKKyAgIF9faXN5bmMoKTsKKworICAgcmV0dXJuIChvcmlnaW5hbFZhbHVlIC0gMSk7Cit9CisKK2lubGluZSBpbnQgYXRvbWljX2NvbmRpdGlvbmFsX2luY3JlbWVudCggaW50ICpwdyApCit7CisgICAvLyBpZiggKnB3ICE9IDAgKSArKypwdzsKKyAgIC8vIHJldHVybiAqcHc7CisKKyAgIF9fbHdzeW5jKCk7CisgICBpbnQgdiA9ICpjb25zdF9jYXN0PHZvbGF0aWxlIGludCo+KHB3KTsKKyAgIGZvciAoOzspCisgICAvLyBsb29wIHVudGlsIHN0YXRlIGlzIGtub3duCisgICB7CisgICAgICBpZiAodiA9PSAwKSByZXR1cm4gMDsKKyAgICAgIGlmIChfX2NvbXBhcmVfYW5kX3N3YXAocHcsICZ2LCB2ICsgMSkpCisgICAgICB7CisgICAgICAgICBfX2lzeW5jKCk7IHJldHVybiAodiArIDEpOworICAgICAgfQorICAgfQorfQorCitjbGFzcyBzcF9jb3VudGVkX2Jhc2UKK3sKK3ByaXZhdGU6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisgICAgc3BfY291bnRlZF9iYXNlICYgb3BlcmF0b3I9ICggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKworICAgIGludCB1c2VfY291bnRfOyAgICAgICAgLy8gI3NoYXJlZAorICAgIGludCB3ZWFrX2NvdW50XzsgICAgICAgLy8gI3dlYWsgKyAoI3NoYXJlZCAhPSAwKQorICAgIGNoYXIgcGFkWzY0XSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyg2NCkpKTsKKyAgICAgICAgICAgIC8vIHBhZCB0byBwcmV2ZW50IGZhbHNlIHNoYXJpbmcKK3B1YmxpYzoKKworICAgIHNwX2NvdW50ZWRfYmFzZSgpOiB1c2VfY291bnRfKCAxICksIHdlYWtfY291bnRfKCAxICkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+c3BfY291bnRlZF9iYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICB9CisKKyAgICAvLyBkaXNwb3NlKCkgaXMgY2FsbGVkIHdoZW4gdXNlX2NvdW50XyBkcm9wcyB0byB6ZXJvLCB0byByZWxlYXNlCisgICAgLy8gdGhlIHJlc291cmNlcyBtYW5hZ2VkIGJ5ICp0aGlzLgorCisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSA9IDA7IC8vIG5vdGhyb3cKKworICAgIC8vIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2hlbiB3ZWFrX2NvdW50XyBkcm9wcyB0byB6ZXJvLgorCisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggc3BfdHlwZWluZm8gY29uc3QgJiB0aSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkgPSAwOworCisgICAgdm9pZCBhZGRfcmVmX2NvcHkoKQorICAgIHsKKyAgICAgICAgYXRvbWljX2luY3JlbWVudCggJnVzZV9jb3VudF8gKTsKKyAgICB9CisKKyAgICBib29sIGFkZF9yZWZfbG9jaygpIC8vIHRydWUgb24gc3VjY2VzcworICAgIHsKKyAgICAgICAgcmV0dXJuIGF0b21pY19jb25kaXRpb25hbF9pbmNyZW1lbnQoICZ1c2VfY291bnRfICkgIT0gMDsKKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggYXRvbWljX2RlY3JlbWVudCggJnVzZV9jb3VudF8gKSA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgd2Vha19yZWxlYXNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHdlYWtfYWRkX3JlZigpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGF0b21pY19pbmNyZW1lbnQoICZ3ZWFrX2NvdW50XyApOworICAgIH0KKworICAgIHZvaWQgd2Vha19yZWxlYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgaWYoIGF0b21pY19kZWNyZW1lbnQoICZ3ZWFrX2NvdW50XyApID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiAqY29uc3RfY2FzdDx2b2xhdGlsZSBpbnQqPigmdXNlX2NvdW50Xyk7IAorICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfVkFDUFBfUFBDX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9jb3VudGVkX2Jhc2VfdzMyLmhwcCBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3czMi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjEwNDY1OQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlX3czMi5ocHAKQEAgLTAsMCArMSwxMzEgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0JBU0VfVzMyX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9XMzJfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGRldGFpbC9zcF9jb3VudGVkX2Jhc2VfdzMyLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIsIDIwMDMgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgMjAwNC0yMDA1IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vCisvLyAgTG9jay1mcmVlIGFsZ29yaXRobSBieSBBbGV4YW5kZXIgVGVyZWtob3YKKy8vCisvLyAgVGhhbmtzIHRvIEJlbiBIaXRjaGluZ3MgZm9yIHRoZSAjd2VhayArICgjc2hhcmVkICE9IDApCisvLyAgZm9ybXVsYXRpb24KKy8vCisKKyNpbmNsdWRlIDxib29zdC9kZXRhaWwvaW50ZXJsb2NrZWQuaHBwPgorI2luY2x1ZGUgPGJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKyNpbmNsdWRlIDxib29zdC9kZXRhaWwvc3BfdHlwZWluZm8uaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitjbGFzcyBzcF9jb3VudGVkX2Jhc2UKK3sKK3ByaXZhdGU6CisKKyAgICBzcF9jb3VudGVkX2Jhc2UoIHNwX2NvdW50ZWRfYmFzZSBjb25zdCAmICk7CisgICAgc3BfY291bnRlZF9iYXNlICYgb3BlcmF0b3I9ICggc3BfY291bnRlZF9iYXNlIGNvbnN0ICYgKTsKKworICAgIGxvbmcgdXNlX2NvdW50XzsgICAgICAgIC8vICNzaGFyZWQKKyAgICBsb25nIHdlYWtfY291bnRfOyAgICAgICAvLyAjd2VhayArICgjc2hhcmVkICE9IDApCisKK3B1YmxpYzoKKworICAgIHNwX2NvdW50ZWRfYmFzZSgpOiB1c2VfY291bnRfKCAxICksIHdlYWtfY291bnRfKCAxICkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+c3BfY291bnRlZF9iYXNlKCkgLy8gbm90aHJvdworICAgIHsKKyAgICB9CisKKyAgICAvLyBkaXNwb3NlKCkgaXMgY2FsbGVkIHdoZW4gdXNlX2NvdW50XyBkcm9wcyB0byB6ZXJvLCB0byByZWxlYXNlCisgICAgLy8gdGhlIHJlc291cmNlcyBtYW5hZ2VkIGJ5ICp0aGlzLgorCisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSA9IDA7IC8vIG5vdGhyb3cKKworICAgIC8vIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2hlbiB3ZWFrX2NvdW50XyBkcm9wcyB0byB6ZXJvLgorCisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfZGVsZXRlciggc3BfdHlwZWluZm8gY29uc3QgJiB0aSApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkgPSAwOworCisgICAgdm9pZCBhZGRfcmVmX2NvcHkoKQorICAgIHsKKyAgICAgICAgQk9PU1RfSU5URVJMT0NLRURfSU5DUkVNRU5UKCAmdXNlX2NvdW50XyApOworICAgIH0KKworICAgIGJvb2wgYWRkX3JlZl9sb2NrKCkgLy8gdHJ1ZSBvbiBzdWNjZXNzCisgICAgeworICAgICAgICBmb3IoIDs7ICkKKyAgICAgICAgeworICAgICAgICAgICAgbG9uZyB0bXAgPSBzdGF0aWNfY2FzdDwgbG9uZyBjb25zdCB2b2xhdGlsZSYgPiggdXNlX2NvdW50XyApOworICAgICAgICAgICAgaWYoIHRtcCA9PSAwICkgcmV0dXJuIGZhbHNlOworCisjaWYgZGVmaW5lZCggQk9PU1RfTVNWQyApICYmIEJPT1NUX1dPUktBUk9VTkQoIEJPT1NUX01TVkMsID09IDEyMDAgKQorCisgICAgICAgICAgICAvLyB3b3JrIGFyb3VuZCBhIGNvZGUgZ2VuZXJhdGlvbiBidWcKKworICAgICAgICAgICAgbG9uZyB0bXAyID0gdG1wICsgMTsKKyAgICAgICAgICAgIGlmKCBCT09TVF9JTlRFUkxPQ0tFRF9DT01QQVJFX0VYQ0hBTkdFKCAmdXNlX2NvdW50XywgdG1wMiwgdG1wICkgPT0gdG1wMiAtIDEgKSByZXR1cm4gdHJ1ZTsKKworI2Vsc2UKKworICAgICAgICAgICAgaWYoIEJPT1NUX0lOVEVSTE9DS0VEX0NPTVBBUkVfRVhDSEFOR0UoICZ1c2VfY291bnRfLCB0bXAgKyAxLCB0bXAgKSA9PSB0bXAgKSByZXR1cm4gdHJ1ZTsKKworI2VuZGlmCisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHJlbGVhc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBpZiggQk9PU1RfSU5URVJMT0NLRURfREVDUkVNRU5UKCAmdXNlX2NvdW50XyApID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICB3ZWFrX3JlbGVhc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgd2Vha19hZGRfcmVmKCkgLy8gbm90aHJvdworICAgIHsKKyAgICAgICAgQk9PU1RfSU5URVJMT0NLRURfSU5DUkVNRU5UKCAmd2Vha19jb3VudF8gKTsKKyAgICB9CisKKyAgICB2b2lkIHdlYWtfcmVsZWFzZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGlmKCBCT09TVF9JTlRFUkxPQ0tFRF9ERUNSRU1FTlQoICZ3ZWFrX2NvdW50XyApID09IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxsb25nIGNvbnN0IHZvbGF0aWxlICY+KCB1c2VfY291bnRfICk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfQkFTRV9XMzJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfaW1wbC5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2NvdW50ZWRfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI0ZGRkNwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9pbXBsLmhwcApAQCAtMCwwICsxLDI1NCBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0NPVU5URURfSU1QTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9DT1VOVEVEX0lNUExfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIGRldGFpbC9zcF9jb3VudGVkX2ltcGwuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAwMyBQZXRlciBEaW1vdiBhbmQgTXVsdGkgTWVkaWEgTHRkLgorLy8gIENvcHlyaWdodCAyMDA0LTIwMDUgUGV0ZXIgRGltb3YKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfU1BfVVNFX1NURF9BTExPQ0FUT1IpICYmIGRlZmluZWQoQk9PU1RfU1BfVVNFX1FVSUNLX0FMTE9DQVRPUikKKyMgZXJyb3IgQk9PU1RfU1BfVVNFX1NURF9BTExPQ0FUT1IgYW5kIEJPT1NUX1NQX1VTRV9RVUlDS19BTExPQ0FUT1IgYXJlIGluY29tcGF0aWJsZS4KKyNlbmRpZgorCisjaW5jbHVkZSA8Ym9vc3QvY2hlY2tlZF9kZWxldGUuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY291bnRlZF9iYXNlLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfU1BfVVNFX1FVSUNLX0FMTE9DQVRPUikKKyNpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3F1aWNrX2FsbG9jYXRvci5ocHA+CisjZW5kaWYKKworI2lmIGRlZmluZWQoQk9PU1RfU1BfVVNFX1NURF9BTExPQ0FUT1IpCisjaW5jbHVkZSA8bWVtb3J5PiAgICAgICAgICAgLy8gc3RkOjphbGxvY2F0b3IKKyNlbmRpZgorCisjaW5jbHVkZSA8Y3N0ZGRlZj4gICAgICAgICAgLy8gc3RkOjpzaXplX3QKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKwordm9pZCBzcF9zY2FsYXJfY29uc3RydWN0b3JfaG9vayggdm9pZCAqIHB4LCBzdGQ6OnNpemVfdCBzaXplLCB2b2lkICogcG4gKTsKK3ZvaWQgc3Bfc2NhbGFyX2Rlc3RydWN0b3JfaG9vayggdm9pZCAqIHB4LCBzdGQ6OnNpemVfdCBzaXplLCB2b2lkICogcG4gKTsKKworI2VuZGlmCisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKwordGVtcGxhdGU8Y2xhc3MgWD4gY2xhc3Mgc3BfY291bnRlZF9pbXBsX3A6IHB1YmxpYyBzcF9jb3VudGVkX2Jhc2UKK3sKK3ByaXZhdGU6CisKKyAgICBYICogcHhfOworCisgICAgc3BfY291bnRlZF9pbXBsX3AoIHNwX2NvdW50ZWRfaW1wbF9wIGNvbnN0ICYgKTsKKyAgICBzcF9jb3VudGVkX2ltcGxfcCAmIG9wZXJhdG9yPSAoIHNwX2NvdW50ZWRfaW1wbF9wIGNvbnN0ICYgKTsKKworICAgIHR5cGVkZWYgc3BfY291bnRlZF9pbXBsX3A8WD4gdGhpc190eXBlOworCitwdWJsaWM6CisKKyAgICBleHBsaWNpdCBzcF9jb3VudGVkX2ltcGxfcCggWCAqIHB4ICk6IHB4XyggcHggKQorICAgIHsKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX0VOQUJMRV9ERUJVR19IT09LUykKKyAgICAgICAgbmRuYm9vc3Q6OnNwX3NjYWxhcl9jb25zdHJ1Y3Rvcl9ob29rKCBweCwgc2l6ZW9mKFgpLCB0aGlzICk7CisjZW5kaWYKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpIC8vIG5vdGhyb3cKKyAgICB7CisjaWYgZGVmaW5lZChCT09TVF9TUF9FTkFCTEVfREVCVUdfSE9PS1MpCisgICAgICAgIG5kbmJvb3N0OjpzcF9zY2FsYXJfZGVzdHJ1Y3Rvcl9ob29rKCBweF8sIHNpemVvZihYKSwgdGhpcyApOworI2VuZGlmCisgICAgICAgIG5kbmJvb3N0OjpjaGVja2VkX2RlbGV0ZSggcHhfICk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkICogZ2V0X2RlbGV0ZXIoIGRldGFpbDo6c3BfdHlwZWluZm8gY29uc3QgJiApCisgICAgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworI2lmIGRlZmluZWQoQk9PU1RfU1BfVVNFX1NURF9BTExPQ0FUT1IpCisKKyAgICB2b2lkICogb3BlcmF0b3IgbmV3KCBzdGQ6OnNpemVfdCApCisgICAgeworICAgICAgICByZXR1cm4gc3RkOjphbGxvY2F0b3I8dGhpc190eXBlPigpLmFsbG9jYXRlKCAxLCBzdGF0aWNfY2FzdDx0aGlzX3R5cGUgKj4oMCkgKTsKKyAgICB9CisKKyAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZSggdm9pZCAqIHAgKQorICAgIHsKKyAgICAgICAgc3RkOjphbGxvY2F0b3I8dGhpc190eXBlPigpLmRlYWxsb2NhdGUoIHN0YXRpY19jYXN0PHRoaXNfdHlwZSAqPihwKSwgMSApOworICAgIH0KKworI2VuZGlmCisKKyNpZiBkZWZpbmVkKEJPT1NUX1NQX1VTRV9RVUlDS19BTExPQ0FUT1IpCisKKyAgICB2b2lkICogb3BlcmF0b3IgbmV3KCBzdGQ6OnNpemVfdCApCisgICAgeworICAgICAgICByZXR1cm4gcXVpY2tfYWxsb2NhdG9yPHRoaXNfdHlwZT46OmFsbG9jKCk7CisgICAgfQorCisgICAgdm9pZCBvcGVyYXRvciBkZWxldGUoIHZvaWQgKiBwICkKKyAgICB7CisgICAgICAgIHF1aWNrX2FsbG9jYXRvcjx0aGlzX3R5cGU+OjpkZWFsbG9jKCBwICk7CisgICAgfQorCisjZW5kaWYKK307CisKKy8vCisvLyBCb3JsYW5kJ3MgQ29kZWd1YXJkIHRyaXBzIHVwIG92ZXIgdGhlIC1WeC0gb3B0aW9uIGhlcmU6CisvLworI2lmZGVmIF9fQ09ERUdVQVJEX18KKyMgcHJhZ21hIG9wdGlvbiBwdXNoIC1WeC0KKyNlbmRpZgorCit0ZW1wbGF0ZTxjbGFzcyBQLCBjbGFzcyBEPiBjbGFzcyBzcF9jb3VudGVkX2ltcGxfcGQ6IHB1YmxpYyBzcF9jb3VudGVkX2Jhc2UKK3sKK3ByaXZhdGU6CisKKyAgICBQIHB0cjsgLy8gY29weSBjb25zdHJ1Y3RvciBtdXN0IG5vdCB0aHJvdworICAgIEQgZGVsOyAvLyBjb3B5IGNvbnN0cnVjdG9yIG11c3Qgbm90IHRocm93CisKKyAgICBzcF9jb3VudGVkX2ltcGxfcGQoIHNwX2NvdW50ZWRfaW1wbF9wZCBjb25zdCAmICk7CisgICAgc3BfY291bnRlZF9pbXBsX3BkICYgb3BlcmF0b3I9ICggc3BfY291bnRlZF9pbXBsX3BkIGNvbnN0ICYgKTsKKworICAgIHR5cGVkZWYgc3BfY291bnRlZF9pbXBsX3BkPFAsIEQ+IHRoaXNfdHlwZTsKKworcHVibGljOgorCisgICAgLy8gcHJlOiBkKHApIG11c3Qgbm90IHRocm93CisKKyAgICBzcF9jb3VudGVkX2ltcGxfcGQoIFAgcCwgRCAmIGQgKTogcHRyKCBwICksIGRlbCggZCApCisgICAgeworICAgIH0KKworICAgIHNwX2NvdW50ZWRfaW1wbF9wZCggUCBwICk6IHB0ciggcCApLCBkZWwoKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIGRlbCggcHRyICk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkICogZ2V0X2RlbGV0ZXIoIGRldGFpbDo6c3BfdHlwZWluZm8gY29uc3QgJiB0aSApCisgICAgeworICAgICAgICByZXR1cm4gdGkgPT0gQk9PU1RfU1BfVFlQRUlEKEQpPyAmcmVpbnRlcnByZXRfY2FzdDxjaGFyJj4oIGRlbCApOiAwOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCAqIGdldF91bnR5cGVkX2RlbGV0ZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICZyZWludGVycHJldF9jYXN0PGNoYXImPiggZGVsICk7CisgICAgfQorCisjaWYgZGVmaW5lZChCT09TVF9TUF9VU0VfU1REX0FMTE9DQVRPUikKKworICAgIHZvaWQgKiBvcGVyYXRvciBuZXcoIHN0ZDo6c2l6ZV90ICkKKyAgICB7CisgICAgICAgIHJldHVybiBzdGQ6OmFsbG9jYXRvcjx0aGlzX3R5cGU+KCkuYWxsb2NhdGUoIDEsIHN0YXRpY19jYXN0PHRoaXNfdHlwZSAqPigwKSApOworICAgIH0KKworICAgIHZvaWQgb3BlcmF0b3IgZGVsZXRlKCB2b2lkICogcCApCisgICAgeworICAgICAgICBzdGQ6OmFsbG9jYXRvcjx0aGlzX3R5cGU+KCkuZGVhbGxvY2F0ZSggc3RhdGljX2Nhc3Q8dGhpc190eXBlICo+KHApLCAxICk7CisgICAgfQorCisjZW5kaWYKKworI2lmIGRlZmluZWQoQk9PU1RfU1BfVVNFX1FVSUNLX0FMTE9DQVRPUikKKworICAgIHZvaWQgKiBvcGVyYXRvciBuZXcoIHN0ZDo6c2l6ZV90ICkKKyAgICB7CisgICAgICAgIHJldHVybiBxdWlja19hbGxvY2F0b3I8dGhpc190eXBlPjo6YWxsb2MoKTsKKyAgICB9CisKKyAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZSggdm9pZCAqIHAgKQorICAgIHsKKyAgICAgICAgcXVpY2tfYWxsb2NhdG9yPHRoaXNfdHlwZT46OmRlYWxsb2MoIHAgKTsKKyAgICB9CisKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8Y2xhc3MgUCwgY2xhc3MgRCwgY2xhc3MgQT4gY2xhc3Mgc3BfY291bnRlZF9pbXBsX3BkYTogcHVibGljIHNwX2NvdW50ZWRfYmFzZQoreworcHJpdmF0ZToKKworICAgIFAgcF87IC8vIGNvcHkgY29uc3RydWN0b3IgbXVzdCBub3QgdGhyb3cKKyAgICBEIGRfOyAvLyBjb3B5IGNvbnN0cnVjdG9yIG11c3Qgbm90IHRocm93CisgICAgQSBhXzsgLy8gY29weSBjb25zdHJ1Y3RvciBtdXN0IG5vdCB0aHJvdworCisgICAgc3BfY291bnRlZF9pbXBsX3BkYSggc3BfY291bnRlZF9pbXBsX3BkYSBjb25zdCAmICk7CisgICAgc3BfY291bnRlZF9pbXBsX3BkYSAmIG9wZXJhdG9yPSAoIHNwX2NvdW50ZWRfaW1wbF9wZGEgY29uc3QgJiApOworCisgICAgdHlwZWRlZiBzcF9jb3VudGVkX2ltcGxfcGRhPFAsIEQsIEE+IHRoaXNfdHlwZTsKKworcHVibGljOgorCisgICAgLy8gcHJlOiBkKCBwICkgbXVzdCBub3QgdGhyb3cKKworICAgIHNwX2NvdW50ZWRfaW1wbF9wZGEoIFAgcCwgRCAmIGQsIEEgYSApOiBwXyggcCApLCBkXyggZCApLCBhXyggYSApCisgICAgeworICAgIH0KKworICAgIHNwX2NvdW50ZWRfaW1wbF9wZGEoIFAgcCwgQSBhICk6IHBfKCBwICksIGRfKCksIGFfKCBhICkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSAvLyBub3Rocm93CisgICAgeworICAgICAgICBkXyggcF8gKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIC8vIG5vdGhyb3cKKyAgICB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgQTo6dGVtcGxhdGUgcmViaW5kPCB0aGlzX3R5cGUgPjo6b3RoZXIgQTI7CisKKyAgICAgICAgQTIgYTIoIGFfICk7CisKKyAgICAgICAgdGhpcy0+fnRoaXNfdHlwZSgpOworICAgICAgICBhMi5kZWFsbG9jYXRlKCB0aGlzLCAxICk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkICogZ2V0X2RlbGV0ZXIoIGRldGFpbDo6c3BfdHlwZWluZm8gY29uc3QgJiB0aSApCisgICAgeworICAgICAgICByZXR1cm4gdGkgPT0gQk9PU1RfU1BfVFlQRUlEKCBEICk/ICZyZWludGVycHJldF9jYXN0PGNoYXImPiggZF8gKTogMDsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgKiBnZXRfdW50eXBlZF9kZWxldGVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiAmcmVpbnRlcnByZXRfY2FzdDxjaGFyJj4oIGRfICk7CisgICAgfQorfTsKKworI2lmZGVmIF9fQ09ERUdVQVJEX18KKyMgcHJhZ21hIG9wdGlvbiBwb3AKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfQ09VTlRFRF9JTVBMX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9mb3J3YXJkLmhwcCBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfZm9yd2FyZC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ4MjNhMAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfZm9yd2FyZC5ocHAKQEAgLTAsMCArMSwzOSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0ZPUldBUkRfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfRk9SV0FSRF9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vICBkZXRhaWwvc3BfZm9yd2FyZC5ocHAKKy8vCisvLyAgQ29weXJpZ2h0IDIwMDgsMjAxMiBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTICkKKwordGVtcGxhdGU8IGNsYXNzIFQgPiBUJiYgc3BfZm9yd2FyZCggVCAmIHQgKSBCT09TVF9OT0VYQ0VQVAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDwgVCYmID4oIHQgKTsKK30KKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUF9GT1JXQVJEX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9oYXNfc3luYy5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2hhc19zeW5jLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmRlMjFkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9oYXNfc3luYy5ocHAKQEAgLTAsMCArMSw2OSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0hBU19TWU5DX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX0hBU19TWU5DX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2hhc19zeW5jLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDkgUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgRGVmaW5lcyB0aGUgQk9PU1RfU1BfSEFTX1NZTkMgbWFjcm8gaWYgdGhlIF9fc3luY18qIGludHJpbnNpY3MKKy8vICBhcmUgYXZhaWxhYmxlLgorLy8KKworI2lmbmRlZiBCT09TVF9TUF9OT19TWU5DCisKKyNpZiBkZWZpbmVkKCBfX0dDQ19IQVZFX1NZTkNfQ09NUEFSRV9BTkRfU1dBUF80ICkKKworIyBkZWZpbmUgQk9PU1RfU1BfSEFTX1NZTkMKKworI2VsaWYgZGVmaW5lZCggX19JQk1DUFBfXyApICYmICggX19JQk1DUFBfXyA+PSAxMjEwICkKKworIyBkZWZpbmUgQk9PU1RfU1BfSEFTX1NZTkMKKworI2VsaWYgZGVmaW5lZCggX19HTlVDX18gKSAmJiAoIF9fR05VQ19fICogMTAwICsgX19HTlVDX01JTk9SX18gPj0gNDAxICkKKworI2RlZmluZSBCT09TVF9TUF9IQVNfU1lOQworCisjaWYgZGVmaW5lZCggX19hcm1fXyApICB8fCBkZWZpbmVkKCBfX2FybWVsX18gKQorI3VuZGVmIEJPT1NUX1NQX0hBU19TWU5DCisjZW5kaWYKKworI2lmIGRlZmluZWQoIF9faHBwYSApIHx8IGRlZmluZWQoIF9faHBwYV9fICkKKyN1bmRlZiBCT09TVF9TUF9IQVNfU1lOQworI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBfX202OGtfXyApCisjdW5kZWYgQk9PU1RfU1BfSEFTX1NZTkMKKyNlbmRpZgorCisjaWYgZGVmaW5lZCggX19zaF9fICkKKyN1bmRlZiBCT09TVF9TUF9IQVNfU1lOQworI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBfX3NwYXJjX18gKQorI3VuZGVmIEJPT1NUX1NQX0hBU19TWU5DCisjZW5kaWYKKworI2lmIGRlZmluZWQoIF9fSU5URUxfQ09NUElMRVIgKSAmJiAhZGVmaW5lZCggX19pYTY0X18gKSAmJiAoIF9fSU5URUxfQ09NUElMRVIgPCAxMTEwICkKKyN1bmRlZiBCT09TVF9TUF9IQVNfU1lOQworI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fUEFUSFNDQUxFX18pICYmICgoX19QQVRIQ0NfXyA9PSA0KSAmJiAoX19QQVRIQ0NfTUlOT1JfXyA8IDkpKSAKKyN1bmRlZiBCT09TVF9TUF9IQVNfU1lOQworI2VuZGlmCisKKyNlbmRpZgorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TUF9OT19TWU5DCisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfSEFTX1NZTkNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2lmX2FycmF5LmhwcCBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfaWZfYXJyYXkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxMmZmZTcKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX2lmX2FycmF5LmhwcApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIEdsZW4gSm9zZXBoIEZlcm5hbmRlcyAKKyAqIGdsZW5mZSBhdCBsaXZlIGRvdCBjb20KKyAqCisgKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgCisgKiBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgCisgKiBvciBjb3B5IGF0IGh0dHA6Ly9ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorICovCisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfSUZfQVJSQVlfSFBQCisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfSUZfQVJSQVlfSFBQCisKKyNpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvc2hhcmVkX3B0ci5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgbmFtZXNwYWNlIGRldGFpbCB7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IAorICAgICAgICBzdHJ1Y3Qgc3BfaWZfYXJyYXk7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgIHN0cnVjdCBzcF9pZl9hcnJheTxUW10+IHsKKyAgICAgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VFtdPiB0eXBlOworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICBzdHJ1Y3Qgc3BfaWZfc2l6ZV9hcnJheTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc3RkOjpzaXplX3QgTj4KKyAgICAgICAgc3RydWN0IHNwX2lmX3NpemVfYXJyYXk8VFtOXT4geworICAgICAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUW05dPiB0eXBlOworICAgICAgICB9OworICAgIH0KK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX251bGxwdHJfdC5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwX251bGxwdHJfdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjM3NTkyNwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfbnVsbHB0cl90LmhwcApAQCAtMCwwICsxLDQ1IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfTlVMTFBUUl9UX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQX05VTExQVFJfVF9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vICBkZXRhaWwvc3BfbnVsbHB0cl90LmhwcAorLy8KKy8vICBDb3B5cmlnaHQgMjAxMyBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPGNzdGRkZWY+CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfTlVMTFBUUiApCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKKyNpZiBkZWZpbmVkKCBfX2NsYW5nX18gKSAmJiAhZGVmaW5lZCggX0xJQkNQUF9WRVJTSU9OICkgJiYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX0RFQ0xUWVBFICkKKworICAgIHR5cGVkZWYgZGVjbHR5cGUobnVsbHB0cikgc3BfbnVsbHB0cl90OworCisjZWxzZQorCisgICAgdHlwZWRlZiBzdGQ6Om51bGxwdHJfdCBzcF9udWxscHRyX3Q7CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9OVUxMUFRSICkKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BfTlVMTFBUUl9UX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9jay5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGQ3YWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9jay5ocHAKQEAgLTAsMCArMSw1NiBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBib29zdC9kZXRhaWwvc3BpbmxvY2suaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwOCBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBzdHJ1Y3Qgc3BpbmxvY2sKKy8vICB7CisvLyAgICAgIHZvaWQgbG9jaygpOworLy8gICAgICBib29sIHRyeV9sb2NrKCk7CisvLyAgICAgIHZvaWQgdW5sb2NrKCk7CisvLworLy8gICAgICBjbGFzcyBzY29wZWRfbG9jazsKKy8vICB9OworLy8KKy8vICAjZGVmaW5lIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklUIDx1bnNwZWNpZmllZD4KKy8vCisKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfaGFzX3N5bmMuaHBwPgorCisjaWYgZGVmaW5lZCggQk9PU1RfU1BfVVNFX1BUSFJFQURTICkKKyMgIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfcHQuaHBwPgorCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBkZWZpbmVkKCBfX2FybV9fICkgJiYgIWRlZmluZWQoIF9fdGh1bWJfXyApCisjICBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX2djY19hcm0uaHBwPgorCisjZWxpZiBkZWZpbmVkKCBCT09TVF9TUF9IQVNfU1lOQyApCisjICBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3N5bmMuaHBwPgorCisjZWxpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX1dJTjMyX18pIHx8IGRlZmluZWQoX19DWUdXSU5fXykKKyMgIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfdzMyLmhwcD4KKworI2VsaWYgZGVmaW5lZChCT09TVF9IQVNfUFRIUkVBRFMpCisjICBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3B0LmhwcD4KKworI2VsaWYgIWRlZmluZWQoQk9PU1RfSEFTX1RIUkVBRFMpCisjICBpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX250LmhwcD4KKworI2Vsc2UKKyMgIGVycm9yIFVucmVjb2duaXplZCB0aHJlYWRpbmcgcGxhdGZvcm0KKyNlbmRpZgorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja19nY2NfYXJtLmhwcCBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfZ2NjX2FybS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ViMDBlNwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfZ2NjX2FybS5ocHAKQEAgLTAsMCArMSwxMjAgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUElOTE9DS19HQ0NfQVJNX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX0dDQ19BUk1fSFBQX0lOQ0xVREVECisKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA4LCAyMDExIFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC95aWVsZF9rLmhwcD4KKworI2lmIGRlZmluZWQoX19BUk1fQVJDSF83X18pIHx8IGRlZmluZWQoX19BUk1fQVJDSF83QV9fKSB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfN1JfXykgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzdNX18pIHx8IGRlZmluZWQoX19BUk1fQVJDSF83RU1fXykgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzdTX18pCisKKyMgZGVmaW5lIEJPT1NUX1NQX0FSTV9CQVJSSUVSICJkbWIiCisjIGRlZmluZSBCT09TVF9TUF9BUk1fSEFTX0xEUkVYCisKKyNlbGlmIGRlZmluZWQoX19BUk1fQVJDSF82X18pIHx8IGRlZmluZWQoX19BUk1fQVJDSF82Sl9fKSB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNktfXykgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzZaX18pIHx8IGRlZmluZWQoX19BUk1fQVJDSF82WktfXykgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzZUMl9fKQorCisjIGRlZmluZSBCT09TVF9TUF9BUk1fQkFSUklFUiAibWNyIHAxNSwgMCwgcjAsIGM3LCBjMTAsIDUiCisjIGRlZmluZSBCT09TVF9TUF9BUk1fSEFTX0xEUkVYCisKKyNlbHNlCisKKyMgZGVmaW5lIEJPT1NUX1NQX0FSTV9CQVJSSUVSICIiCisKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitjbGFzcyBzcGlubG9jaworeworcHVibGljOgorCisgICAgaW50IHZfOworCitwdWJsaWM6CisKKyAgICBib29sIHRyeV9sb2NrKCkKKyAgICB7CisgICAgICAgIGludCByOworCisjaWZkZWYgQk9PU1RfU1BfQVJNX0hBU19MRFJFWAorCisgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICAgICAgICAgImxkcmV4ICUwLCBbJTJdOyBcbiIKKyAgICAgICAgICAgICJjbXAgJTAsICUxOyBcbiIKKyAgICAgICAgICAgICJzdHJleG5lICUwLCAlMSwgWyUyXTsgXG4iCisgICAgICAgICAgICBCT09TVF9TUF9BUk1fQkFSUklFUiA6CisgICAgICAgICAgICAiPSZyIiggciApOiAvLyBvdXRwdXRzCisgICAgICAgICAgICAiciIoIDEgKSwgInIiKCAmdl8gKTogLy8gaW5wdXRzCisgICAgICAgICAgICAibWVtb3J5IiwgImNjIiApOworCisjZWxzZQorCisgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKAorICAgICAgICAgICAgInN3cCAlMCwgJTEsIFslMl07XG4iCisgICAgICAgICAgICBCT09TVF9TUF9BUk1fQkFSUklFUiA6CisgICAgICAgICAgICAiPSZyIiggciApOiAvLyBvdXRwdXRzCisgICAgICAgICAgICAiciIoIDEgKSwgInIiKCAmdl8gKTogLy8gaW5wdXRzCisgICAgICAgICAgICAibWVtb3J5IiwgImNjIiApOworCisjZW5kaWYKKworICAgICAgICByZXR1cm4gciA9PSAwOworICAgIH0KKworICAgIHZvaWQgbG9jaygpCisgICAgeworICAgICAgICBmb3IoIHVuc2lnbmVkIGsgPSAwOyAhdHJ5X2xvY2soKTsgKytrICkKKyAgICAgICAgeworICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6eWllbGQoIGsgKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgdW5sb2NrKCkKKyAgICB7CisgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKCBCT09TVF9TUF9BUk1fQkFSUklFUiA6OjogIm1lbW9yeSIgKTsKKyAgICAgICAgKmNvbnN0X2Nhc3Q8IGludCB2b2xhdGlsZSogPiggJnZfICkgPSAwOworICAgIH0KKworcHVibGljOgorCisgICAgY2xhc3Mgc2NvcGVkX2xvY2sKKyAgICB7CisgICAgcHJpdmF0ZToKKworICAgICAgICBzcGlubG9jayAmIHNwXzsKKworICAgICAgICBzY29wZWRfbG9jayggc2NvcGVkX2xvY2sgY29uc3QgJiApOworICAgICAgICBzY29wZWRfbG9jayAmIG9wZXJhdG9yPSggc2NvcGVkX2xvY2sgY29uc3QgJiApOworCisgICAgcHVibGljOgorCisgICAgICAgIGV4cGxpY2l0IHNjb3BlZF9sb2NrKCBzcGlubG9jayAmIHNwICk6IHNwXyggc3AgKQorICAgICAgICB7CisgICAgICAgICAgICBzcC5sb2NrKCk7CisgICAgICAgIH0KKworICAgICAgICB+c2NvcGVkX2xvY2soKQorICAgICAgICB7CisgICAgICAgICAgICBzcF8udW5sb2NrKCk7CisgICAgICAgIH0KKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklUIHswfQorCisjdW5kZWYgQk9PU1RfU1BfQVJNX0JBUlJJRVIKKyN1bmRlZiBCT09TVF9TUF9BUk1fSEFTX0xEUkVYCisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfR0NDX0FSTV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfbnQuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja19udC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdlZTAyOQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfbnQuaHBwCkBAIC0wLDAgKzEsODkgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUElOTE9DS19OVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUElOTE9DS19OVF9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA4IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaW5jbHVkZSA8Ym9vc3QvYXNzZXJ0LmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworY2xhc3Mgc3BpbmxvY2sKK3sKK3B1YmxpYzoKKworICAgIGJvb2wgbG9ja2VkXzsKKworcHVibGljOgorCisgICAgaW5saW5lIGJvb2wgdHJ5X2xvY2soKQorICAgIHsKKyAgICAgICAgaWYoIGxvY2tlZF8gKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBsb2NrZWRfID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgaW5saW5lIHZvaWQgbG9jaygpCisgICAgeworICAgICAgICBCT09TVF9BU1NFUlQoICFsb2NrZWRfICk7CisgICAgICAgIGxvY2tlZF8gPSB0cnVlOworICAgIH0KKworICAgIGlubGluZSB2b2lkIHVubG9jaygpCisgICAgeworICAgICAgICBCT09TVF9BU1NFUlQoIGxvY2tlZF8gKTsKKyAgICAgICAgbG9ja2VkXyA9IGZhbHNlOworICAgIH0KKworcHVibGljOgorCisgICAgY2xhc3Mgc2NvcGVkX2xvY2sKKyAgICB7CisgICAgcHJpdmF0ZToKKworICAgICAgICBzcGlubG9jayAmIHNwXzsKKworICAgICAgICBzY29wZWRfbG9jayggc2NvcGVkX2xvY2sgY29uc3QgJiApOworICAgICAgICBzY29wZWRfbG9jayAmIG9wZXJhdG9yPSggc2NvcGVkX2xvY2sgY29uc3QgJiApOworCisgICAgcHVibGljOgorCisgICAgICAgIGV4cGxpY2l0IHNjb3BlZF9sb2NrKCBzcGlubG9jayAmIHNwICk6IHNwXyggc3AgKQorICAgICAgICB7CisgICAgICAgICAgICBzcC5sb2NrKCk7CisgICAgICAgIH0KKworICAgICAgICB+c2NvcGVkX2xvY2soKQorICAgICAgICB7CisgICAgICAgICAgICBzcF8udW5sb2NrKCk7CisgICAgICAgIH0KKyAgICB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZGVmaW5lIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklUIHsgZmFsc2UgfQorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX05UX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja19wb29sLmhwcCBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfcG9vbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc4NDAyNgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfcG9vbC5ocHAKQEAgLTAsMCArMSw5MSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX1BPT0xfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfUE9PTF9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYm9vc3QvZGV0YWlsL3NwaW5sb2NrX3Bvb2wuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwOCBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBzcGlubG9ja19wb29sPDA+IGlzIHJlc2VydmVkIGZvciBhdG9taWM8Piwgd2hlbi9pZiBpdCBhcnJpdmVzCisvLyAgc3BpbmxvY2tfcG9vbDwxPiBpcyByZXNlcnZlZCBmb3Igc2hhcmVkX3B0ciByZWZlcmVuY2UgY291bnRzCisvLyAgc3BpbmxvY2tfcG9vbDwyPiBpcyByZXNlcnZlZCBmb3Igc2hhcmVkX3B0ciBhdG9taWMgYWNjZXNzCisvLworCisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrLmhwcD4KKyNpbmNsdWRlIDxjc3RkZGVmPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCit0ZW1wbGF0ZTwgaW50IEkgPiBjbGFzcyBzcGlubG9ja19wb29sCit7Citwcml2YXRlOgorCisgICAgc3RhdGljIHNwaW5sb2NrIHBvb2xfWyA0MSBdOworCitwdWJsaWM6CisKKyAgICBzdGF0aWMgc3BpbmxvY2sgJiBzcGlubG9ja19mb3IoIHZvaWQgY29uc3QgKiBwdiApCisgICAgeworI2lmIGRlZmluZWQoX19WTVMpICYmIF9fSU5JVElBTF9QT0lOVEVSX1NJWkUgPT0gNjQgIAorICAgICAgICBzdGQ6OnNpemVfdCBpID0gcmVpbnRlcnByZXRfY2FzdDwgdW5zaWduZWQgbG9uZyBsb25nID4oIHB2ICkgJSA0MTsKKyNlbHNlICAKKyAgICAgICAgc3RkOjpzaXplX3QgaSA9IHJlaW50ZXJwcmV0X2Nhc3Q8IHN0ZDo6c2l6ZV90ID4oIHB2ICkgJSA0MTsKKyNlbmRpZiAgCisgICAgICAgIHJldHVybiBwb29sX1sgaSBdOworICAgIH0KKworICAgIGNsYXNzIHNjb3BlZF9sb2NrCisgICAgeworICAgIHByaXZhdGU6CisKKyAgICAgICAgc3BpbmxvY2sgJiBzcF87CisKKyAgICAgICAgc2NvcGVkX2xvY2soIHNjb3BlZF9sb2NrIGNvbnN0ICYgKTsKKyAgICAgICAgc2NvcGVkX2xvY2sgJiBvcGVyYXRvcj0oIHNjb3BlZF9sb2NrIGNvbnN0ICYgKTsKKworICAgIHB1YmxpYzoKKworICAgICAgICBleHBsaWNpdCBzY29wZWRfbG9jayggdm9pZCBjb25zdCAqIHB2ICk6IHNwXyggc3BpbmxvY2tfZm9yKCBwdiApICkKKyAgICAgICAgeworICAgICAgICAgICAgc3BfLmxvY2soKTsKKyAgICAgICAgfQorCisgICAgICAgIH5zY29wZWRfbG9jaygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNwXy51bmxvY2soKTsKKyAgICAgICAgfQorICAgIH07Cit9OworCit0ZW1wbGF0ZTwgaW50IEkgPiBzcGlubG9jayBzcGlubG9ja19wb29sPCBJID46OnBvb2xfWyA0MSBdID0KK3sKKyAgICBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIAorICAgIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgCisgICAgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCAKKyAgICBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIAorICAgIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgCisgICAgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCAKKyAgICBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIAorICAgIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQsIEJPT1NUX0RFVEFJTF9TUElOTE9DS19JTklULCBCT09TVF9ERVRBSUxfU1BJTkxPQ0tfSU5JVCwgCisgICAgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQKK307CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUElOTE9DS19QT09MX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja19wdC5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3B0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDhiMWViCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja19wdC5ocHAKQEAgLTAsMCArMSw3OSBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX1BUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX1BUX0hQUF9JTkNMVURFRAorCisvLyBNUyBjb21wYXRpYmxlIGNvbXBpbGVycyBzdXBwb3J0ICNwcmFnbWEgb25jZQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDEwMjApCisjIHByYWdtYSBvbmNlCisjZW5kaWYKKworLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDggUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisKKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKK2NsYXNzIHNwaW5sb2NrCit7CitwdWJsaWM6CisKKyAgICBwdGhyZWFkX211dGV4X3Qgdl87CisKK3B1YmxpYzoKKworICAgIGJvb2wgdHJ5X2xvY2soKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHB0aHJlYWRfbXV0ZXhfdHJ5bG9jayggJnZfICkgPT0gMDsKKyAgICB9CisKKyAgICB2b2lkIGxvY2soKQorICAgIHsKKyAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCAmdl8gKTsKKyAgICB9CisKKyAgICB2b2lkIHVubG9jaygpCisgICAgeworICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayggJnZfICk7CisgICAgfQorCitwdWJsaWM6CisKKyAgICBjbGFzcyBzY29wZWRfbG9jaworICAgIHsKKyAgICBwcml2YXRlOgorCisgICAgICAgIHNwaW5sb2NrICYgc3BfOworCisgICAgICAgIHNjb3BlZF9sb2NrKCBzY29wZWRfbG9jayBjb25zdCAmICk7CisgICAgICAgIHNjb3BlZF9sb2NrICYgb3BlcmF0b3I9KCBzY29wZWRfbG9jayBjb25zdCAmICk7CisKKyAgICBwdWJsaWM6CisKKyAgICAgICAgZXhwbGljaXQgc2NvcGVkX2xvY2soIHNwaW5sb2NrICYgc3AgKTogc3BfKCBzcCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHNwLmxvY2soKTsKKyAgICAgICAgfQorCisgICAgICAgIH5zY29wZWRfbG9jaygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNwXy51bmxvY2soKTsKKyAgICAgICAgfQorICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQgeyBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSIH0KKworI2VuZGlmIC8vICNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUElOTE9DS19QVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfc3luYy5ocHAgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3N5bmMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlOGIyZDUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvZGV0YWlsL3NwaW5sb2NrX3N5bmMuaHBwCkBAIC0wLDAgKzEsODcgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9TUElOTE9DS19TWU5DX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX1NZTkNfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwOCBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKworI2luY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwveWllbGRfay5ocHA+CisKKyNpZiBkZWZpbmVkKCBfX2lhNjRfXyApICYmIGRlZmluZWQoIF9fSU5URUxfQ09NUElMRVIgKQorIyBpbmNsdWRlIDxpYTY0aW50cmluLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworY2xhc3Mgc3BpbmxvY2sKK3sKK3B1YmxpYzoKKworICAgIGludCB2XzsKKworcHVibGljOgorCisgICAgYm9vbCB0cnlfbG9jaygpCisgICAgeworICAgICAgICBpbnQgciA9IF9fc3luY19sb2NrX3Rlc3RfYW5kX3NldCggJnZfLCAxICk7CisgICAgICAgIHJldHVybiByID09IDA7CisgICAgfQorCisgICAgdm9pZCBsb2NrKCkKKyAgICB7CisgICAgICAgIGZvciggdW5zaWduZWQgayA9IDA7ICF0cnlfbG9jaygpOyArK2sgKQorICAgICAgICB7CisgICAgICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjp5aWVsZCggayApOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB1bmxvY2soKQorICAgIHsKKyAgICAgICAgX19zeW5jX2xvY2tfcmVsZWFzZSggJnZfICk7CisgICAgfQorCitwdWJsaWM6CisKKyAgICBjbGFzcyBzY29wZWRfbG9jaworICAgIHsKKyAgICBwcml2YXRlOgorCisgICAgICAgIHNwaW5sb2NrICYgc3BfOworCisgICAgICAgIHNjb3BlZF9sb2NrKCBzY29wZWRfbG9jayBjb25zdCAmICk7CisgICAgICAgIHNjb3BlZF9sb2NrICYgb3BlcmF0b3I9KCBzY29wZWRfbG9jayBjb25zdCAmICk7CisKKyAgICBwdWJsaWM6CisKKyAgICAgICAgZXhwbGljaXQgc2NvcGVkX2xvY2soIHNwaW5sb2NrICYgc3AgKTogc3BfKCBzcCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHNwLmxvY2soKTsKKyAgICAgICAgfQorCisgICAgICAgIH5zY29wZWRfbG9jaygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNwXy51bmxvY2soKTsKKyAgICAgICAgfQorICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQgezB9CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfU1lOQ19IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfdzMyLmhwcCBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BpbmxvY2tfdzMyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjE1YTE3Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja193MzIuaHBwCkBAIC0wLDAgKzEsMTEzIEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfVzMyX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1NQSU5MT0NLX1czMl9IUFBfSU5DTFVERUQKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgQ29weXJpZ2h0IChjKSAyMDA4IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLworCisjaW5jbHVkZSA8Ym9vc3QvZGV0YWlsL2ludGVybG9ja2VkLmhwcD4KKyNpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3lpZWxkX2suaHBwPgorCisvLyBCT09TVF9DT01QSUxFUl9GRU5DRQorCisjaWYgZGVmaW5lZChfX0lOVEVMX0NPTVBJTEVSKQorCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0ZFTkNFIF9fbWVtb3J5X2JhcnJpZXIoKTsKKworI2VsaWYgZGVmaW5lZCggX01TQ19WRVIgKSAmJiBfTVNDX1ZFUiA+PSAxMzEwCisKK2V4dGVybiAiQyIgdm9pZCBfUmVhZFdyaXRlQmFycmllcigpOworI3ByYWdtYSBpbnRyaW5zaWMoIF9SZWFkV3JpdGVCYXJyaWVyICkKKworI2RlZmluZSBCT09TVF9DT01QSUxFUl9GRU5DRSBfUmVhZFdyaXRlQmFycmllcigpOworCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKQorCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0ZFTkNFIF9fYXNtX18gX192b2xhdGlsZV9fKCAiIiA6IDogOiAibWVtb3J5IiApOworCisjZWxzZQorCisjZGVmaW5lIEJPT1NUX0NPTVBJTEVSX0ZFTkNFCisKKyNlbmRpZgorCisvLworCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCitjbGFzcyBzcGlubG9jaworeworcHVibGljOgorCisgICAgbG9uZyB2XzsKKworcHVibGljOgorCisgICAgYm9vbCB0cnlfbG9jaygpCisgICAgeworICAgICAgICBsb25nIHIgPSBCT09TVF9JTlRFUkxPQ0tFRF9FWENIQU5HRSggJnZfLCAxICk7CisKKyAgICAgICAgQk9PU1RfQ09NUElMRVJfRkVOQ0UKKworICAgICAgICByZXR1cm4gciA9PSAwOworICAgIH0KKworICAgIHZvaWQgbG9jaygpCisgICAgeworICAgICAgICBmb3IoIHVuc2lnbmVkIGsgPSAwOyAhdHJ5X2xvY2soKTsgKytrICkKKyAgICAgICAgeworICAgICAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6eWllbGQoIGsgKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgdW5sb2NrKCkKKyAgICB7CisgICAgICAgIEJPT1NUX0NPTVBJTEVSX0ZFTkNFCisgICAgICAgICpjb25zdF9jYXN0PCBsb25nIHZvbGF0aWxlKiA+KCAmdl8gKSA9IDA7CisgICAgfQorCitwdWJsaWM6CisKKyAgICBjbGFzcyBzY29wZWRfbG9jaworICAgIHsKKyAgICBwcml2YXRlOgorCisgICAgICAgIHNwaW5sb2NrICYgc3BfOworCisgICAgICAgIHNjb3BlZF9sb2NrKCBzY29wZWRfbG9jayBjb25zdCAmICk7CisgICAgICAgIHNjb3BlZF9sb2NrICYgb3BlcmF0b3I9KCBzY29wZWRfbG9jayBjb25zdCAmICk7CisKKyAgICBwdWJsaWM6CisKKyAgICAgICAgZXhwbGljaXQgc2NvcGVkX2xvY2soIHNwaW5sb2NrICYgc3AgKTogc3BfKCBzcCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHNwLmxvY2soKTsKKyAgICAgICAgfQorCisgICAgICAgIH5zY29wZWRfbG9jaygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNwXy51bmxvY2soKTsKKyAgICAgICAgfQorICAgIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNkZWZpbmUgQk9PU1RfREVUQUlMX1NQSU5MT0NLX0lOSVQgezB9CisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9ERVRBSUxfU1BJTkxPQ0tfVzMyX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL2RldGFpbC95aWVsZF9rLmhwcCBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwveWllbGRfay5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjI5MTZhMAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9kZXRhaWwveWllbGRfay5ocHAKQEAgLTAsMCArMSwxNDkgQEAKKyNpZm5kZWYgQk9PU1RfU01BUlRfUFRSX0RFVEFJTF9ZSUVMRF9LX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1lJRUxEX0tfSFBQX0lOQ0xVREVECisKKy8vIE1TIGNvbXBhdGlibGUgY29tcGlsZXJzIHN1cHBvcnQgI3ByYWdtYSBvbmNlCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLworLy8gIHlpZWxkX2suaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwOCBQZXRlciBEaW1vdgorLy8KKy8vICB2b2lkIHlpZWxkKCB1bnNpZ25lZCBrICk7CisvLworLy8gIFR5cGljYWwgdXNlOgorLy8KKy8vICBmb3IoIHVuc2lnbmVkIGsgPSAwOyAhdHJ5X2xvY2soKTsgKytrICkgeWllbGQoIGsgKTsKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAorLy8KKworI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy5ocHA+CisKKy8vIEJPT1NUX1NNVF9QQVVTRQorCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPj0gMTMxMCAmJiAoIGRlZmluZWQoX01fSVg4NikgfHwgZGVmaW5lZChfTV9YNjQpICkKKworZXh0ZXJuICJDIiB2b2lkIF9tbV9wYXVzZSgpOworI3ByYWdtYSBpbnRyaW5zaWMoIF9tbV9wYXVzZSApCisKKyNkZWZpbmUgQk9PU1RfU01UX1BBVVNFIF9tbV9wYXVzZSgpOworCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgKQorCisjZGVmaW5lIEJPT1NUX1NNVF9QQVVTRSBfX2FzbV9fIF9fdm9sYXRpbGVfXyggInJlcDsgbm9wIiA6IDogOiAibWVtb3J5IiApOworCisjZW5kaWYKKworLy8KKworI2lmIGRlZmluZWQoIFdJTjMyICkgfHwgZGVmaW5lZCggX1dJTjMyICkgfHwgZGVmaW5lZCggX19XSU4zMl9fICkgfHwgZGVmaW5lZCggX19DWUdXSU5fXyApCisKKyNpZiBkZWZpbmVkKCBCT09TVF9VU0VfV0lORE9XU19IICkKKyMgaW5jbHVkZSA8d2luZG93cy5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdAoreworCituYW1lc3BhY2UgZGV0YWlsCit7CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfVVNFX1dJTkRPV1NfSCApCisgIGV4dGVybiAiQyIgdm9pZCBfX3N0ZGNhbGwgU2xlZXAoIHVuc2lnbmVkIGxvbmcgbXMgKTsKKyNlbmRpZgorCitpbmxpbmUgdm9pZCB5aWVsZCggdW5zaWduZWQgayApCit7CisgICAgaWYoIGsgPCA0ICkKKyAgICB7CisgICAgfQorI2lmIGRlZmluZWQoIEJPT1NUX1NNVF9QQVVTRSApCisgICAgZWxzZSBpZiggayA8IDE2ICkKKyAgICB7CisgICAgICAgIEJPT1NUX1NNVF9QQVVTRQorICAgIH0KKyNlbmRpZgorICAgIGVsc2UgaWYoIGsgPCAzMiApCisgICAgeworICAgICAgICBTbGVlcCggMCApOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBTbGVlcCggMSApOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbGlmIGRlZmluZWQoIEJPT1NUX0hBU19QVEhSRUFEUyApCisKKyNpbmNsdWRlIDxzY2hlZC5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworaW5saW5lIHZvaWQgeWllbGQoIHVuc2lnbmVkIGsgKQoreworICAgIGlmKCBrIDwgNCApCisgICAgeworICAgIH0KKyNpZiBkZWZpbmVkKCBCT09TVF9TTVRfUEFVU0UgKQorICAgIGVsc2UgaWYoIGsgPCAxNiApCisgICAgeworICAgICAgICBCT09TVF9TTVRfUEFVU0UKKyAgICB9CisjZW5kaWYKKyAgICBlbHNlIGlmKCBrIDwgMzIgfHwgayAmIDEgKQorICAgIHsKKyAgICAgICAgc2NoZWRfeWllbGQoKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgLy8gZysrIC1XZXh0cmEgd2FybnMgb24ge30gb3IgezB9CisgICAgICAgIHN0cnVjdCB0aW1lc3BlYyBycXRwID0geyAwLCAwIH07CisKKyAgICAgICAgLy8gUE9TSVggc2F5cyB0aGF0IHRpbWVzcGVjIGhhcyB0dl9zZWMgYW5kIHR2X25zZWMKKyAgICAgICAgLy8gQnV0IGl0IGRvZXNuJ3QgZ3VhcmFudGVlIG9yZGVyIG9yIHBsYWNlbWVudAorCisgICAgICAgIHJxdHAudHZfc2VjID0gMDsKKyAgICAgICAgcnF0cC50dl9uc2VjID0gMTAwMDsKKworICAgICAgICBuYW5vc2xlZXAoICZycXRwLCAwICk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2Vsc2UKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisKK25hbWVzcGFjZSBkZXRhaWwKK3sKKworaW5saW5lIHZvaWQgeWllbGQoIHVuc2lnbmVkICkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZgorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfREVUQUlMX1lJRUxEX0tfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC9zbWFydF9wdHIvbWFrZV9zaGFyZWQuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL21ha2Vfc2hhcmVkLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDBlM2VhCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc21hcnRfcHRyL21ha2Vfc2hhcmVkLmhwcApAQCAtMCwwICsxLDIyIEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9NQUtFX1NIQVJFRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX01BS0VfU0hBUkVEX0hQUF9JTkNMVURFRAorCisvLyAgbWFrZV9zaGFyZWQuaHBwCisvLworLy8gIENvcHlyaWdodCAoYykgMjAwNywgMjAwOCwgMjAxMiBQZXRlciBEaW1vdgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3NtYXJ0X3B0ci9tYWtlX3NoYXJlZC5odG1sCisvLyAgZm9yIGRvY3VtZW50YXRpb24uCisKKyNpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvbWFrZV9zaGFyZWRfb2JqZWN0LmhwcD4KKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkgJiYgIWRlZmluZWQoIEJPT1NUX05PX1NGSU5BRSApCisjIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9tYWtlX3NoYXJlZF9hcnJheS5ocHA+CisjIGluY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9hbGxvY2F0ZV9zaGFyZWRfYXJyYXkuaHBwPgorI2VuZGlmCisKKyNlbmRpZiAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9NQUtFX1NIQVJFRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9tYWtlX3NoYXJlZF9hcnJheS5ocHAgYi9ib29zdC9zbWFydF9wdHIvbWFrZV9zaGFyZWRfYXJyYXkuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3YWIxOTQKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvbWFrZV9zaGFyZWRfYXJyYXkuaHBwCkBAIC0wLDAgKzEsMjQ3IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIEdsZW4gSm9zZXBoIEZlcm5hbmRlcworICogZ2xlbmZlIGF0IGxpdmUgZG90IGNvbQorICoKKyAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorICogVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0CisgKiBvciBjb3B5IGF0IGh0dHA6Ly9ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorICovCisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9NQUtFX1NIQVJFRF9BUlJBWV9IUFAKKyNkZWZpbmUgQk9PU1RfU01BUlRfUFRSX01BS0VfU0hBUkVEX0FSUkFZX0hQUAorCisjaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL3NoYXJlZF9wdHIuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvYXJyYXlfZGVsZXRlci5ocHA+CisjaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9hcnJheV90cmFpdHMuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvbWFrZV9hcnJheV9oZWxwZXIuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfaWZfYXJyYXkuaHBwPgorI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUKQorI2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9hcnJheTxUPjo6dHlwZQorICAgIG1ha2Vfc2hhcmVkKHN0ZDo6c2l6ZV90IHNpemUpIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSBUMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQxPjo6dHlwZSBUMjsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgc3RkOjpzaXplX3QgbjEgPSBzaXplICogbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VDE+OjpzaXplOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjptYWtlX2FycmF5X2hlbHBlcjxUMltdPiBhMShuMSwgJnAyKTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltdPiBkMShuMSk7CisgICAgICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+IHMxKHAxLCBkMSwgYTEpOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4qIEQyOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+aW5pdChwMik7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyNpZiAhZGVmaW5lZChCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMpICYmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3M+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX2FycmF5PFQ+Ojp0eXBlCisgICAgbWFrZV9zaGFyZWQoc3RkOjpzaXplX3Qgc2l6ZSwgQXJncyYmLi4uIGFyZ3MpIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSBUMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQxPjo6dHlwZSBUMjsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgc3RkOjpzaXplX3QgbjEgPSBzaXplICogbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VDE+OjpzaXplOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjptYWtlX2FycmF5X2hlbHBlcjxUMltdPiBhMShuMSwgJnAyKTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltdPiBkMShuMSk7CisgICAgICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+IHMxKHAxLCBkMSwgYTEpOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4qIEQyOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+aW5pdChwMiwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9zaXplX2FycmF5PFQ+Ojp0eXBlCisgICAgbWFrZV9zaGFyZWQoQXJncyYmLi4uIGFyZ3MpIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSBUMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQxPjo6dHlwZSBUMjsKKyAgICAgICAgZW51bSB7CisgICAgICAgICAgICBOID0gbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VD46OnNpemUKKyAgICAgICAgfTsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6bWFrZV9hcnJheV9oZWxwZXI8VDJbTl0+IGExKCZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbTl0+IGQxOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiogRDI7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT5pbml0KHAyLCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+KHMxLCBwMSk7CisgICAgfQorI2VuZGlmCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVU5JRklFRF9JTklUSUFMSVpBVElPTl9TWU5UQVgpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfc2l6ZV9hcnJheTxUPjo6dHlwZQorICAgIG1ha2Vfc2hhcmVkKGNvbnN0IFQmIGxpc3QpIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSBUMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQxPjo6dHlwZSBUMjsKKyAgICAgICAgdHlwZWRlZiBjb25zdCBUMiBUMzsKKyAgICAgICAgZW51bSB7CisgICAgICAgICAgICBOID0gbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VD46OnNpemUKKyAgICAgICAgfTsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgVDMqIHAzID0gMDsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6bWFrZV9hcnJheV9oZWxwZXI8VDJbTl0+IGExKCZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbTl0+IGQxOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiogRDI7CisgICAgICAgIHAzID0gcmVpbnRlcnByZXRfY2FzdDxUMyo+KGxpc3QpOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+aW5pdF9saXN0KHAyLCBwMyk7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPihzMSwgcDEpOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIGlubGluZSB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9hcnJheTxUPjo6dHlwZQorICAgIG1ha2Vfc2hhcmVkKHN0ZDo6c2l6ZV90IHNpemUsCisgICAgICAgIGNvbnN0IHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlJiBsaXN0KSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIHR5cGVkZWYgY29uc3QgVDIgVDM7CisgICAgICAgIGVudW0geworICAgICAgICAgICAgTSA9IG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQxPjo6c2l6ZQorICAgICAgICB9OworICAgICAgICBUMSogcDEgPSAwOworICAgICAgICBUMiogcDIgPSAwOworICAgICAgICBUMyogcDMgPSAwOworICAgICAgICBzdGQ6OnNpemVfdCBuMSA9IE0gKiBzaXplOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjptYWtlX2FycmF5X2hlbHBlcjxUMltdPiBhMShuMSwgJnAyKTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltdPiBkMShuMSk7CisgICAgICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+IHMxKHAxLCBkMSwgYTEpOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4qIEQyOworICAgICAgICBwMyA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDMqPihsaXN0KTsKKyAgICAgICAgcDEgPSByZWludGVycHJldF9jYXN0PFQxKj4ocDIpOworICAgICAgICBEMiBkMiA9IHN0YXRpY19jYXN0PEQyPihzMS5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpKTsKKyAgICAgICAgZDItPnRlbXBsYXRlIGluaXRfbGlzdDxNPihwMiwgcDMpOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfc2l6ZV9hcnJheTxUPjo6dHlwZQorICAgIG1ha2Vfc2hhcmVkKGNvbnN0IHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlJiBsaXN0KSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIHR5cGVkZWYgY29uc3QgVDIgVDM7CisgICAgICAgIGVudW0geworICAgICAgICAgICAgTSA9IG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQxPjo6c2l6ZSwKKyAgICAgICAgICAgIE4gPSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b3RhbDxUPjo6c2l6ZQorICAgICAgICB9OworICAgICAgICBUMSogcDEgPSAwOworICAgICAgICBUMiogcDIgPSAwOworICAgICAgICBUMyogcDMgPSAwOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjptYWtlX2FycmF5X2hlbHBlcjxUMltOXT4gYTEoJnAyKTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltOXT4gZDE7CisgICAgICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+IHMxKHAxLCBkMSwgYTEpOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbTl0+KiBEMjsKKyAgICAgICAgcDMgPSByZWludGVycHJldF9jYXN0PFQzKj4obGlzdCk7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT50ZW1wbGF0ZSBpbml0X2xpc3Q8TT4ocDIsIHAzKTsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+KHMxLCBwMSk7CisgICAgfQorI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX0hEUl9JTklUSUFMSVpFUl9MSVNUKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX2FycmF5PFQ+Ojp0eXBlCisgICAgbWFrZV9zaGFyZWQoc3RkOjppbml0aWFsaXplcl9saXN0PHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2lubmVyPFQ+Ojp0eXBlPiBsaXN0KSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIHR5cGVkZWYgY29uc3QgVDIgVDM7CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIFQzKiBwMyA9IDA7CisgICAgICAgIHN0ZDo6c2l6ZV90IG4xID0gbGlzdC5zaXplKCkgKiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV90b3RhbDxUMT46OnNpemU7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6Om1ha2VfYXJyYXlfaGVscGVyPFQyW10+IGExKG4xLCAmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW10+IGQxKG4xKTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltdPiogRDI7CisgICAgICAgIHAzID0gcmVpbnRlcnByZXRfY2FzdDxUMyo+KGxpc3QuYmVnaW4oKSk7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT5pbml0X2xpc3QocDIsIHAzKTsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+KHMxLCBwMSk7CisgICAgfQorI2VuZGlmCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfYXJyYXk8VD46OnR5cGUKKyAgICBtYWtlX3NoYXJlZChzdGQ6OnNpemVfdCBzaXplLAorICAgICAgICB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQ+Ojp0eXBlJiYgdmFsdWUpIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSBUMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQxPjo6dHlwZSBUMjsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgc3RkOjpzaXplX3QgbjEgPSBzaXplICogbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VDE+OjpzaXplOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjptYWtlX2FycmF5X2hlbHBlcjxUMltdPiBhMShuMSwgJnAyKTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltdPiBkMShuMSk7CisgICAgICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+IHMxKHAxLCBkMSwgYTEpOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4qIEQyOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+aW5pdChwMiwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxUMj4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+KHMxLCBwMSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX3NpemVfYXJyYXk8VD46OnR5cGUKKyAgICBtYWtlX3NoYXJlZCh0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQ+Ojp0eXBlJiYgdmFsdWUpIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSBUMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQxPjo6dHlwZSBUMjsKKyAgICAgICAgZW51bSB7CisgICAgICAgICAgICBOID0gbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VD46OnNpemUKKyAgICAgICAgfTsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6bWFrZV9hcnJheV9oZWxwZXI8VDJbTl0+IGExKCZwMik7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbTl0+IGQxOworICAgICAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBzMShwMSwgZDEsIGExKTsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiogRDI7CisgICAgICAgIHAxID0gcmVpbnRlcnByZXRfY2FzdDxUMSo+KHAyKTsKKyAgICAgICAgRDIgZDIgPSBzdGF0aWNfY2FzdDxEMj4oczEuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSk7CisgICAgICAgIGQyLT5pbml0KHAyLCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPFQyPih2YWx1ZSkpOworICAgICAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4oczEsIHAxKTsKKyAgICB9CisjZW5kaWYKKyNlbmRpZgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX2FycmF5PFQ+Ojp0eXBlCisgICAgbWFrZV9zaGFyZWRfbm9pbml0KHN0ZDo6c2l6ZV90IHNpemUpIHsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9pbm5lcjxUPjo6dHlwZSBUMTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9iYXNlPFQxPjo6dHlwZSBUMjsKKyAgICAgICAgVDEqIHAxID0gMDsKKyAgICAgICAgVDIqIHAyID0gMDsKKyAgICAgICAgc3RkOjpzaXplX3QgbjEgPSBzaXplICogbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfdG90YWw8VDE+OjpzaXplOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjptYWtlX2FycmF5X2hlbHBlcjxUMltdPiBhMShuMSwgJnAyKTsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltdPiBkMShuMSk7CisgICAgICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+IHMxKHAxLCBkMSwgYTEpOworICAgICAgICB0eXBlZGVmIG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X2RlbGV0ZXI8VDJbXT4qIEQyOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+bm9pbml0KHAyKTsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+KHMxLCBwMSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX3NpemVfYXJyYXk8VD46OnR5cGUKKyAgICBtYWtlX3NoYXJlZF9ub2luaXQoKSB7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfaW5uZXI8VD46OnR5cGUgVDE7CisgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfYmFzZTxUMT46OnR5cGUgVDI7CisgICAgICAgIGVudW0geworICAgICAgICAgICAgTiA9IG5kbmJvb3N0OjpkZXRhaWw6OmFycmF5X3RvdGFsPFQ+OjpzaXplCisgICAgICAgIH07CisgICAgICAgIFQxKiBwMSA9IDA7CisgICAgICAgIFQyKiBwMiA9IDA7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6Om1ha2VfYXJyYXlfaGVscGVyPFQyW05dPiBhMSgmcDIpOworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjphcnJheV9kZWxldGVyPFQyW05dPiBkMTsKKyAgICAgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8VD4gczEocDEsIGQxLCBhMSk7CisgICAgICAgIHR5cGVkZWYgbmRuYm9vc3Q6OmRldGFpbDo6YXJyYXlfZGVsZXRlcjxUMltOXT4qIEQyOworICAgICAgICBwMSA9IHJlaW50ZXJwcmV0X2Nhc3Q8VDEqPihwMik7CisgICAgICAgIEQyIGQyID0gc3RhdGljX2Nhc3Q8RDI+KHMxLl9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkpOworICAgICAgICBkMi0+bm9pbml0KHAyKTsKKyAgICAgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFQ+KHMxLCBwMSk7CisgICAgfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3NtYXJ0X3B0ci9tYWtlX3NoYXJlZF9vYmplY3QuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL21ha2Vfc2hhcmVkX29iamVjdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y0ZTE4ZAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3NtYXJ0X3B0ci9tYWtlX3NoYXJlZF9vYmplY3QuaHBwCkBAIC0wLDAgKzEsMTAyOCBAQAorI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfTUFLRV9TSEFSRURfT0JKRUNUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfTUFLRV9TSEFSRURfT0JKRUNUX0hQUF9JTkNMVURFRAorCisvLyAgbWFrZV9zaGFyZWRfb2JqZWN0LmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMDgsIDIwMTIgUGV0ZXIgRGltb3YKKy8vCisvLyAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgorLy8gIFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9zbWFydF9wdHIvbWFrZV9zaGFyZWQuaHRtbAorLy8gIGZvciBkb2N1bWVudGF0aW9uLgorCisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvc2hhcmVkX3B0ci5ocHA+CisjaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcF9mb3J3YXJkLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy90eXBlX3dpdGhfYWxpZ25tZW50LmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9hbGlnbm1lbnRfb2YuaHBwPgorI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8bmV3PgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCit0ZW1wbGF0ZTwgc3RkOjpzaXplX3QgTiwgc3RkOjpzaXplX3QgQSA+IHN0cnVjdCBzcF9hbGlnbmVkX3N0b3JhZ2UKK3sKKyAgICB1bmlvbiB0eXBlCisgICAgeworICAgICAgICBjaGFyIGRhdGFfWyBOIF07CisgICAgICAgIHR5cGVuYW1lIG5kbmJvb3N0Ojp0eXBlX3dpdGhfYWxpZ25tZW50PCBBID46OnR5cGUgYWxpZ25fOworICAgIH07Cit9OworCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IGNsYXNzIHNwX21zX2RlbGV0ZXIKK3sKK3ByaXZhdGU6CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNwX2FsaWduZWRfc3RvcmFnZTwgc2l6ZW9mKCBUICksIDo6bmRuYm9vc3Q6OmFsaWdubWVudF9vZjwgVCA+Ojp2YWx1ZSA+Ojp0eXBlIHN0b3JhZ2VfdHlwZTsKKworICAgIGJvb2wgaW5pdGlhbGl6ZWRfOworICAgIHN0b3JhZ2VfdHlwZSBzdG9yYWdlXzsKKworcHJpdmF0ZToKKworICAgIHZvaWQgZGVzdHJveSgpCisgICAgeworICAgICAgICBpZiggaW5pdGlhbGl6ZWRfICkKKyAgICAgICAgeworI2lmIGRlZmluZWQoIF9fR05VQ19fICkKKworICAgICAgICAgICAgLy8gZml4ZXMgaW5jb3JyZWN0IGFsaWFzaW5nIHdhcm5pbmcKKyAgICAgICAgICAgIFQgKiBwID0gcmVpbnRlcnByZXRfY2FzdDwgVCogPiggc3RvcmFnZV8uZGF0YV8gKTsKKyAgICAgICAgICAgIHAtPn5UKCk7CisKKyNlbHNlCisKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8IFQqID4oIHN0b3JhZ2VfLmRhdGFfICktPn5UKCk7CisKKyNlbmRpZgorCisgICAgICAgICAgICBpbml0aWFsaXplZF8gPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworcHVibGljOgorCisgICAgc3BfbXNfZGVsZXRlcigpIEJPT1NUX05PRVhDRVBUIDogaW5pdGlhbGl6ZWRfKCBmYWxzZSApCisgICAgeworICAgIH0KKworICAgIC8vIG9wdGltaXphdGlvbjogZG8gbm90IGNvcHkgc3RvcmFnZV8KKyAgICBzcF9tc19kZWxldGVyKCBzcF9tc19kZWxldGVyIGNvbnN0ICYgKSBCT09TVF9OT0VYQ0VQVCA6IGluaXRpYWxpemVkXyggZmFsc2UgKQorICAgIHsKKyAgICB9CisKKyAgICB+c3BfbXNfZGVsZXRlcigpCisgICAgeworICAgICAgICBkZXN0cm95KCk7CisgICAgfQorCisgICAgdm9pZCBvcGVyYXRvcigpKCBUICogKQorICAgIHsKKyAgICAgICAgZGVzdHJveSgpOworICAgIH0KKworICAgIHZvaWQgKiBhZGRyZXNzKCkgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHJldHVybiBzdG9yYWdlXy5kYXRhXzsKKyAgICB9CisKKyAgICB2b2lkIHNldF9pbml0aWFsaXplZCgpIEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICBpbml0aWFsaXplZF8gPSB0cnVlOworICAgIH0KK307CisKK3RlbXBsYXRlPCBjbGFzcyBUID4gc3RydWN0IHNwX2lmX25vdF9hcnJheQoreworICAgIHR5cGVkZWYgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiB0eXBlOworfTsKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKwordGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3Qgc3BfaWZfbm90X2FycmF5PCBUW10gPgoreworfTsKKworI2lmICFkZWZpbmVkKCBfX0JPUkxBTkRDX18gKSB8fCAhQk9PU1RfV09SS0FST1VORCggX19CT1JMQU5EQ19fLCA8IDB4NjAwICkKKwordGVtcGxhdGU8IGNsYXNzIFQsIHN0ZDo6c2l6ZV90IE4gPiBzdHJ1Y3Qgc3BfaWZfbm90X2FycmF5PCBUW05dID4KK3sKK307CisKKyNlbmRpZgorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fRlVOQ1RJT05fVEVNUExBVEVfT1JERVJJTkcgKQorIyBkZWZpbmUgQk9PU1RfU1BfTVNEKCBUICkgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaW5wbGFjZV90YWc8IG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiA+KCkKKyNlbHNlCisjIGRlZmluZSBCT09TVF9TUF9NU0QoIFQgKSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4oKQorI2VuZGlmCisKKy8vIFplcm8tYXJndW1lbnQgdmVyc2lvbnMKKy8vCisvLyBVc2VkIGV2ZW4gd2hlbiB2YXJpYWRpYyB0ZW1wbGF0ZXMgYXJlIGF2YWlsYWJsZSBiZWNhdXNlIG9mIHRoZSBuZXcgVCgpIHZzIG5ldyBUIGlzc3VlCisKK3RlbXBsYXRlPCBjbGFzcyBUID4gdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWQoKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBUID4gdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWRfbm9pbml0KCkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUOworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEgPiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSA+IHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZF9ub2luaXQoIEEgY29uc3QgJiBhICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUOworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19URU1QTEFURVMgKSAmJiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgKQorCisvLyBWYXJpYWRpYyB0ZW1wbGF0ZXMsIHJ2YWx1ZSByZWZlcmVuY2UKKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEFyZzEsIGNsYXNzLi4uIEFyZ3MgPiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCggQXJnMSAmJiBhcmcxLCBBcmdzICYmIC4uLiBhcmdzICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEFyZzE+KCBhcmcxICksIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QXJncz4oIGFyZ3MgKS4uLiApOworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEsIGNsYXNzIEFyZzEsIGNsYXNzLi4uIEFyZ3MgPiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhLCBBcmcxICYmIGFyZzEsIEFyZ3MgJiYgLi4uIGFyZ3MgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QXJnMT4oIGFyZzEgKSwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBcmdzPiggYXJncyApLi4uICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCisjZWxpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgKQorCisvLyBGb3IgZXhhbXBsZSBNU1ZDIDEwLjAKKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEExID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIG1ha2Vfc2hhcmVkKCBBMSAmJiBhMSApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICkgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCgKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMT4oIGExICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEsIGNsYXNzIEExID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEsIEExICYmIGExICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMT4oIGExICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCggQTEgJiYgYTEsIEEyICYmIGEyICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApCisgICAgICAgICk7CisKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBLCBjbGFzcyBBMSwgY2xhc3MgQTIgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgYWxsb2NhdGVfc2hhcmVkKCBBIGNvbnN0ICYgYSwgQTEgJiYgYTEsIEEyICYmIGEyICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMT4oIGExICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEyPiggYTIgKQorICAgICAgICApOworCisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMyA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCggQTEgJiYgYTEsIEEyICYmIGEyLCBBMyAmJiBhMyApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICkgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCgKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMT4oIGExICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEyPiggYTIgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTM+KCBhMyApCisgICAgICAgICk7CisKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEsIEExICYmIGExLCBBMiAmJiBhMiwgQTMgJiYgYTMgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIG1ha2Vfc2hhcmVkKCBBMSAmJiBhMSwgQTIgJiYgYTIsIEEzICYmIGEzLCBBNCAmJiBhNCApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICkgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCgKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMT4oIGExICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEyPiggYTIgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTM+KCBhMyApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBND4oIGE0ICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEsIEExICYmIGExLCBBMiAmJiBhMiwgQTMgJiYgYTMsIEE0ICYmIGE0ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMT4oIGExICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEyPiggYTIgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTM+KCBhMyApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBND4oIGE0ICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCggQTEgJiYgYTEsIEEyICYmIGEyLCBBMyAmJiBhMywgQTQgJiYgYTQsIEE1ICYmIGE1ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE0PiggYTQgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTU+KCBhNSApCisgICAgICAgICk7CisKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgYWxsb2NhdGVfc2hhcmVkKCBBIGNvbnN0ICYgYSwgQTEgJiYgYTEsIEEyICYmIGEyLCBBMyAmJiBhMywgQTQgJiYgYTQsIEE1ICYmIGE1ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMT4oIGExICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEyPiggYTIgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTM+KCBhMyApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBND4oIGE0ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE1PiggYTUgKQorICAgICAgICApOworCisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCggQTEgJiYgYTEsIEEyICYmIGEyLCBBMyAmJiBhMywgQTQgJiYgYTQsIEE1ICYmIGE1LCBBNiAmJiBhNiApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICkgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCgKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMT4oIGExICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEyPiggYTIgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTM+KCBhMyApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBND4oIGE0ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE1PiggYTUgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTY+KCBhNiApCisgICAgICAgICk7CisKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEsIEExICYmIGExLCBBMiAmJiBhMiwgQTMgJiYgYTMsIEE0ICYmIGE0LCBBNSAmJiBhNSwgQTYgJiYgYTYgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE0PiggYTQgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTU+KCBhNSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNj4oIGE2ICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIG1ha2Vfc2hhcmVkKCBBMSAmJiBhMSwgQTIgJiYgYTIsIEEzICYmIGEzLCBBNCAmJiBhNCwgQTUgJiYgYTUsIEE2ICYmIGE2LCBBNyAmJiBhNyApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICkgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCgKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMT4oIGExICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEyPiggYTIgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTM+KCBhMyApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBND4oIGE0ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE1PiggYTUgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTY+KCBhNiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNz4oIGE3ICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEsIEExICYmIGExLCBBMiAmJiBhMiwgQTMgJiYgYTMsIEE0ICYmIGE0LCBBNSAmJiBhNSwgQTYgJiYgYTYsIEE3ICYmIGE3ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMT4oIGExICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEyPiggYTIgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTM+KCBhMyApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBND4oIGE0ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE1PiggYTUgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTY+KCBhNiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNz4oIGE3ICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCggQTEgJiYgYTEsIEEyICYmIGEyLCBBMyAmJiBhMywgQTQgJiYgYTQsIEE1ICYmIGE1LCBBNiAmJiBhNiwgQTcgJiYgYTcsIEE4ICYmIGE4ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE0PiggYTQgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTU+KCBhNSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNj4oIGE2ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE3PiggYTcgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTg+KCBhOCApCisgICAgICAgICk7CisKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTggPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgYWxsb2NhdGVfc2hhcmVkKCBBIGNvbnN0ICYgYSwgQTEgJiYgYTEsIEEyICYmIGEyLCBBMyAmJiBhMywgQTQgJiYgYTQsIEE1ICYmIGE1LCBBNiAmJiBhNiwgQTcgJiYgYTcsIEE4ICYmIGE4ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMT4oIGExICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEyPiggYTIgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTM+KCBhMyApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBND4oIGE0ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE1PiggYTUgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTY+KCBhNiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNz4oIGE3ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE4PiggYTggKQorICAgICAgICApOworCisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOSA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBtYWtlX3NoYXJlZCggQTEgJiYgYTEsIEEyICYmIGEyLCBBMyAmJiBhMywgQTQgJiYgYTQsIEE1ICYmIGE1LCBBNiAmJiBhNiwgQTcgJiYgYTcsIEE4ICYmIGE4LCBBOSAmJiBhOSApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICkgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCgKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMT4oIGExICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEEyPiggYTIgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTM+KCBhMyApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBND4oIGE0ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE1PiggYTUgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTY+KCBhNiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNz4oIGE3ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE4PiggYTggKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTk+KCBhOSApCisgICAgICAgICk7CisKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBLCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTgsIGNsYXNzIEE5ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIGFsbG9jYXRlX3NoYXJlZCggQSBjb25zdCAmIGEsIEExICYmIGExLCBBMiAmJiBhMiwgQTMgJiYgYTMsIEE0ICYmIGE0LCBBNSAmJiBhNSwgQTYgJiYgYTYsIEE3ICYmIGE3LCBBOCAmJiBhOCwgQTkgJiYgYTkgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApLCBhICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEExPiggYTEgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTI+KCBhMiApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBMz4oIGEzICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE0PiggYTQgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTU+KCBhNSApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBNj4oIGE2ICksIAorICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9mb3J3YXJkPEE3PiggYTcgKSwgCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2ZvcndhcmQ8QTg+KCBhOCApLCAKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZm9yd2FyZDxBOT4oIGE5ICkKKyAgICAgICAgKTsKKworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKworI2Vsc2UKKworLy8gQysrMDMgdmVyc2lvbgorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQTEgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWQoIEExIGNvbnN0ICYgYTEgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSwgY2xhc3MgQTEgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgYWxsb2NhdGVfc2hhcmVkKCBBIGNvbnN0ICYgYSwgQTEgY29uc3QgJiBhMSApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICksIGEgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCggYTEgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWQoIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiApOworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEsIGNsYXNzIEExLCBjbGFzcyBBMiA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhLCBBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCBhMSwgYTIgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIG1ha2Vfc2hhcmVkKCBBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCBhMSwgYTIsIGEzICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMyA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhLCBBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCBhMSwgYTIsIGEzICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWQoIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiwgYTMsIGE0ICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgYWxsb2NhdGVfc2hhcmVkKCBBIGNvbnN0ICYgYSwgQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiwgQTMgY29uc3QgJiBhMywgQTQgY29uc3QgJiBhNCApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICksIGEgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCggYTEsIGEyLCBhMywgYTQgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWQoIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiwgYTMsIGE0LCBhNSApOworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhLCBBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCBhMSwgYTIsIGEzLCBhNCwgYTUgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIG1ha2Vfc2hhcmVkKCBBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1LCBBNiBjb25zdCAmIGE2ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2ICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhLCBBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1LCBBNiBjb25zdCAmIGE2ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2ICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWQoIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUsIEE2IGNvbnN0ICYgYTYsIEE3IGNvbnN0ICYgYTcgKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3ICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcgPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgYWxsb2NhdGVfc2hhcmVkKCBBIGNvbnN0ICYgYSwgQTEgY29uc3QgJiBhMSwgQTIgY29uc3QgJiBhMiwgQTMgY29uc3QgJiBhMywgQTQgY29uc3QgJiBhNCwgQTUgY29uc3QgJiBhNSwgQTYgY29uc3QgJiBhNiwgQTcgY29uc3QgJiBhNyApCit7CisgICAgbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiBwdCggc3RhdGljX2Nhc3Q8IFQqID4oIDAgKSwgQk9PU1RfU1BfTVNEKCBUICksIGEgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqIHBkID0gc3RhdGljX2Nhc3Q8bmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICo+KCBwdC5faW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpICk7CisKKyAgICB2b2lkICogcHYgPSBwZC0+YWRkcmVzcygpOworCisgICAgOjpuZXcoIHB2ICkgVCggYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcgKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTggPgordHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfaWZfbm90X2FycmF5PCBUID46OnR5cGUgbWFrZV9zaGFyZWQoIEExIGNvbnN0ICYgYTEsIEEyIGNvbnN0ICYgYTIsIEEzIGNvbnN0ICYgYTMsIEE0IGNvbnN0ICYgYTQsIEE1IGNvbnN0ICYgYTUsIEE2IGNvbnN0ICYgYTYsIEE3IGNvbnN0ICYgYTcsIEE4IGNvbnN0ICYgYTggKQoreworICAgIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gcHQoIHN0YXRpY19jYXN0PCBUKiA+KCAwICksIEJPT1NUX1NQX01TRCggVCApICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKiBwZCA9IHN0YXRpY19jYXN0PG5kbmJvb3N0OjpkZXRhaWw6OnNwX21zX2RlbGV0ZXI8IFQgPiAqPiggcHQuX2ludGVybmFsX2dldF91bnR5cGVkX2RlbGV0ZXIoKSApOworCisgICAgdm9pZCAqIHB2ID0gcGQtPmFkZHJlc3MoKTsKKworICAgIDo6bmV3KCBwdiApIFQoIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCApOworICAgIHBkLT5zZXRfaW5pdGlhbGl6ZWQoKTsKKworICAgIFQgKiBwdDIgPSBzdGF0aWNfY2FzdDwgVCogPiggcHYgKTsKKworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCAmcHQsIHB0MiwgcHQyICk7CisgICAgcmV0dXJuIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4oIHB0LCBwdDIgKTsKK30KKwordGVtcGxhdGU8IGNsYXNzIFQsIGNsYXNzIEEsIGNsYXNzIEExLCBjbGFzcyBBMiwgY2xhc3MgQTMsIGNsYXNzIEE0LCBjbGFzcyBBNSwgY2xhc3MgQTYsIGNsYXNzIEE3LCBjbGFzcyBBOCA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhLCBBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1LCBBNiBjb25zdCAmIGE2LCBBNyBjb25zdCAmIGE3LCBBOCBjb25zdCAmIGE4ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTggKTsKKyAgICBwZC0+c2V0X2luaXRpYWxpemVkKCk7CisKKyAgICBUICogcHQyID0gc3RhdGljX2Nhc3Q8IFQqID4oIHB2ICk7CisKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggJnB0LCBwdDIsIHB0MiApOworICAgIHJldHVybiBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+KCBwdCwgcHQyICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBBMSwgY2xhc3MgQTIsIGNsYXNzIEEzLCBjbGFzcyBBNCwgY2xhc3MgQTUsIGNsYXNzIEE2LCBjbGFzcyBBNywgY2xhc3MgQTgsIGNsYXNzIEE5ID4KK3R5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2lmX25vdF9hcnJheTwgVCA+Ojp0eXBlIG1ha2Vfc2hhcmVkKCBBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1LCBBNiBjb25zdCAmIGE2LCBBNyBjb25zdCAmIGE3LCBBOCBjb25zdCAmIGE4LCBBOSBjb25zdCAmIGE5ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5ICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgQSwgY2xhc3MgQTEsIGNsYXNzIEEyLCBjbGFzcyBBMywgY2xhc3MgQTQsIGNsYXNzIEE1LCBjbGFzcyBBNiwgY2xhc3MgQTcsIGNsYXNzIEE4LCBjbGFzcyBBOSA+Cit0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9pZl9ub3RfYXJyYXk8IFQgPjo6dHlwZSBhbGxvY2F0ZV9zaGFyZWQoIEEgY29uc3QgJiBhLCBBMSBjb25zdCAmIGExLCBBMiBjb25zdCAmIGEyLCBBMyBjb25zdCAmIGEzLCBBNCBjb25zdCAmIGE0LCBBNSBjb25zdCAmIGE1LCBBNiBjb25zdCAmIGE2LCBBNyBjb25zdCAmIGE3LCBBOCBjb25zdCAmIGE4LCBBOSBjb25zdCAmIGE5ICkKK3sKKyAgICBuZG5ib29zdDo6c2hhcmVkX3B0cjwgVCA+IHB0KCBzdGF0aWNfY2FzdDwgVCogPiggMCApLCBCT09TVF9TUF9NU0QoIFQgKSwgYSApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbXNfZGVsZXRlcjwgVCA+ICogcGQgPSBzdGF0aWNfY2FzdDxuZG5ib29zdDo6ZGV0YWlsOjpzcF9tc19kZWxldGVyPCBUID4gKj4oIHB0Ll9pbnRlcm5hbF9nZXRfdW50eXBlZF9kZWxldGVyKCkgKTsKKworICAgIHZvaWQgKiBwdiA9IHBkLT5hZGRyZXNzKCk7CisKKyAgICA6Om5ldyggcHYgKSBUKCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgsIGE5ICk7CisgICAgcGQtPnNldF9pbml0aWFsaXplZCgpOworCisgICAgVCAqIHB0MiA9IHN0YXRpY19jYXN0PCBUKiA+KCBwdiApOworCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoICZwdCwgcHQyLCBwdDIgKTsKKyAgICByZXR1cm4gbmRuYm9vc3Q6OnNoYXJlZF9wdHI8IFQgPiggcHQsIHB0MiApOworfQorCisjZW5kaWYKKworI3VuZGVmIEJPT1NUX1NQX01TRAorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gI2lmbmRlZiBCT09TVF9TTUFSVF9QVFJfTUFLRV9TSEFSRURfT0JKRUNUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc21hcnRfcHRyL3NoYXJlZF9wdHIuaHBwIGIvYm9vc3Qvc21hcnRfcHRyL3NoYXJlZF9wdHIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3NTAzMDgKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC9zbWFydF9wdHIvc2hhcmVkX3B0ci5ocHAKQEAgLTAsMCArMSwxMDM1IEBACisjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9TSEFSRURfUFRSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9TTUFSVF9QVFJfU0hBUkVEX1BUUl9IUFBfSU5DTFVERUQKKworLy8KKy8vICBzaGFyZWRfcHRyLmhwcAorLy8KKy8vICAoQykgQ29weXJpZ2h0IEdyZWcgQ29sdmluIGFuZCBCZW1hbiBEYXdlcyAxOTk4LCAxOTk5LgorLy8gIENvcHlyaWdodCAoYykgMjAwMS0yMDA4IFBldGVyIERpbW92CisvLworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9zbWFydF9wdHIvc2hhcmVkX3B0ci5odG0gZm9yIGRvY3VtZW50YXRpb24uCisvLworCisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4gICAvLyBmb3IgYnJva2VuIGNvbXBpbGVyIHdvcmthcm91bmRzCisKKyNpZiBkZWZpbmVkKEJPT1NUX05PX01FTUJFUl9URU1QTEFURVMpICYmICFkZWZpbmVkKEJPT1NUX01TVkM2X01FTUJFUl9URU1QTEFURVMpCisjaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9zaGFyZWRfcHRyX25tdC5ocHA+CisjZWxzZQorCisvLyBJbiBvcmRlciB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmNpZXMgd2l0aCBCb29zdC5UUjEKKy8vIHdlIG1ha2Ugc3VyZSB0aGF0IG91ciBpbmNsdWRlIG9mIDxtZW1vcnk+IGRvZXNuJ3QgdHJ5IHRvCisvLyBwdWxsIGluIHRoZSBUUjEgaGVhZGVyczogdGhhdCdzIHdoeSB3ZSB1c2UgdGhpcyBoZWFkZXIgCisvLyByYXRoZXIgdGhhbiBpbmNsdWRpbmcgPG1lbW9yeT4gZGlyZWN0bHk6CisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnL25vX3RyMS9tZW1vcnkuaHBwPiAgLy8gc3RkOjphdXRvX3B0cgorCisjaW5jbHVkZSA8Ym9vc3QvYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxib29zdC9jaGVja2VkX2RlbGV0ZS5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdGhyb3dfZXhjZXB0aW9uLmhwcD4KKyNpbmNsdWRlIDxib29zdC9zbWFydF9wdHIvZGV0YWlsL3NoYXJlZF9jb3VudC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfY29udmVydGlibGUuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3NtYXJ0X3B0ci9kZXRhaWwvc3BfbnVsbHB0cl90LmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX1NQX05PX0FUT01JQ19BQ0NFU1MpCisjaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9zcGlubG9ja19wb29sLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tZW1vcnlfb3JkZXIuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+ICAgICAgICAgICAgLy8gZm9yIHN0ZDo6c3dhcAorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+ICAgICAgICAgICAvLyBmb3Igc3RkOjpsZXNzCisjaW5jbHVkZSA8dHlwZWluZm8+ICAgICAgICAgICAgIC8vIGZvciBzdGQ6OmJhZF9jYXN0CisjaW5jbHVkZSA8Y3N0ZGRlZj4gICAgICAgICAgICAgIC8vIGZvciBzdGQ6OnNpemVfdAorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fSU9TVFJFQU0pCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fSU9TRldEKQorI2luY2x1ZGUgPGlvc2Z3ZD4gICAgICAgICAgICAgICAvLyBmb3Igc3RkOjpiYXNpY19vc3RyZWFtCisjZWxzZQorI2luY2x1ZGUgPG9zdHJlYW0+CisjZW5kaWYKKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKwordGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3Mgc2hhcmVkX3B0cjsKK3RlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIHdlYWtfcHRyOwordGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3MgZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXM7CitjbGFzcyBlbmFibGVfc2hhcmVkX2Zyb21fcmF3OworCituYW1lc3BhY2UgZGV0YWlsCit7CisKKy8vIHNwX2VsZW1lbnQsIGVsZW1lbnRfdHlwZQorCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCBzcF9lbGVtZW50Cit7CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCBzcF9lbGVtZW50PCBUW10gPgoreworICAgIHR5cGVkZWYgVCB0eXBlOworfTsKKworI2lmICFkZWZpbmVkKCBfX0JPUkxBTkRDX18gKSB8fCAhQk9PU1RfV09SS0FST1VORCggX19CT1JMQU5EQ19fLCA8IDB4NjAwICkKKwordGVtcGxhdGU8IGNsYXNzIFQsIHN0ZDo6c2l6ZV90IE4gPiBzdHJ1Y3Qgc3BfZWxlbWVudDwgVFtOXSA+Cit7CisgICAgdHlwZWRlZiBUIHR5cGU7Cit9OworCisjZW5kaWYKKworI2VuZGlmIC8vICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKworLy8gc3BfZGVyZWZlcmVuY2UsIHJldHVybiB0eXBlIG9mIG9wZXJhdG9yKgorCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCBzcF9kZXJlZmVyZW5jZQoreworICAgIHR5cGVkZWYgVCAmIHR5cGU7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBzcF9kZXJlZmVyZW5jZTwgdm9pZCA+Cit7CisgICAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMpCisKK3RlbXBsYXRlPD4gc3RydWN0IHNwX2RlcmVmZXJlbmNlPCB2b2lkIGNvbnN0ID4KK3sKKyAgICB0eXBlZGVmIHZvaWQgdHlwZTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHNwX2RlcmVmZXJlbmNlPCB2b2lkIHZvbGF0aWxlID4KK3sKKyAgICB0eXBlZGVmIHZvaWQgdHlwZTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IHNwX2RlcmVmZXJlbmNlPCB2b2lkIGNvbnN0IHZvbGF0aWxlID4KK3sKKyAgICB0eXBlZGVmIHZvaWQgdHlwZTsKK307CisKKyNlbmRpZiAvLyAhZGVmaW5lZChCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUykKKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKwordGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3Qgc3BfZGVyZWZlcmVuY2U8IFRbXSA+Cit7CisgICAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworCisjaWYgIWRlZmluZWQoIF9fQk9STEFORENfXyApIHx8ICFCT09TVF9XT1JLQVJPVU5EKCBfX0JPUkxBTkRDX18sIDwgMHg2MDAgKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgc3RkOjpzaXplX3QgTiA+IHN0cnVjdCBzcF9kZXJlZmVyZW5jZTwgVFtOXSA+Cit7CisgICAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworCisjZW5kaWYKKworI2VuZGlmIC8vICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkKKworLy8gc3BfbWVtYmVyX2FjY2VzcywgcmV0dXJuIHR5cGUgb2Ygb3BlcmF0b3ItPgorCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCBzcF9tZW1iZXJfYWNjZXNzCit7CisgICAgdHlwZWRlZiBUICogdHlwZTsKK307CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTiApCisKK3RlbXBsYXRlPCBjbGFzcyBUID4gc3RydWN0IHNwX21lbWJlcl9hY2Nlc3M8IFRbXSA+Cit7CisgICAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworCisjaWYgIWRlZmluZWQoIF9fQk9STEFORENfXyApIHx8ICFCT09TVF9XT1JLQVJPVU5EKCBfX0JPUkxBTkRDX18sIDwgMHg2MDAgKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgc3RkOjpzaXplX3QgTiA+IHN0cnVjdCBzcF9tZW1iZXJfYWNjZXNzPCBUW05dID4KK3sKKyAgICB0eXBlZGVmIHZvaWQgdHlwZTsKK307CisKKyNlbmRpZgorCisjZW5kaWYgLy8gIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCisvLyBzcF9hcnJheV9hY2Nlc3MsIHJldHVybiB0eXBlIG9mIG9wZXJhdG9yW10KKwordGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3Qgc3BfYXJyYXlfYWNjZXNzCit7CisgICAgdHlwZWRlZiB2b2lkIHR5cGU7Cit9OworCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCA+IHN0cnVjdCBzcF9hcnJheV9hY2Nlc3M8IFRbXSA+Cit7CisgICAgdHlwZWRlZiBUICYgdHlwZTsKK307CisKKyNpZiAhZGVmaW5lZCggX19CT1JMQU5EQ19fICkgfHwgIUJPT1NUX1dPUktBUk9VTkQoIF9fQk9STEFORENfXywgPCAweDYwMCApCisKK3RlbXBsYXRlPCBjbGFzcyBULCBzdGQ6OnNpemVfdCBOID4gc3RydWN0IHNwX2FycmF5X2FjY2VzczwgVFtOXSA+Cit7CisgICAgdHlwZWRlZiBUICYgdHlwZTsKK307CisKKyNlbmRpZgorCisjZW5kaWYgLy8gIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCisvLyBzcF9leHRlbnQsIGZvciBvcGVyYXRvcltdIGluZGV4IGNoZWNrCisKK3RlbXBsYXRlPCBjbGFzcyBUID4gc3RydWN0IHNwX2V4dGVudAoreworICAgIGVudW0gX3Z0IHsgdmFsdWUgPSAwIH07Cit9OworCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCit0ZW1wbGF0ZTwgY2xhc3MgVCwgc3RkOjpzaXplX3QgTiA+IHN0cnVjdCBzcF9leHRlbnQ8IFRbTl0gPgoreworICAgIGVudW0gX3Z0IHsgdmFsdWUgPSBOIH07Cit9OworCisjZW5kaWYgLy8gIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCisvLyBlbmFibGVfc2hhcmVkX2Zyb21fdGhpcyBzdXBwb3J0CisKK3RlbXBsYXRlPCBjbGFzcyBYLCBjbGFzcyBZLCBjbGFzcyBUID4gaW5saW5lIHZvaWQgc3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFg+IGNvbnN0ICogcHB4LCBZIGNvbnN0ICogcHksIG5kbmJvb3N0OjplbmFibGVfc2hhcmVkX2Zyb21fdGhpczwgVCA+IGNvbnN0ICogcGUgKQoreworICAgIGlmKCBwZSAhPSAwICkKKyAgICB7CisgICAgICAgIHBlLT5faW50ZXJuYWxfYWNjZXB0X293bmVyKCBwcHgsIGNvbnN0X2Nhc3Q8IFkqID4oIHB5ICkgKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBYLCBjbGFzcyBZID4gaW5saW5lIHZvaWQgc3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoIG5kbmJvb3N0OjpzaGFyZWRfcHRyPFg+ICogcHB4LCBZIGNvbnN0ICogcHksIG5kbmJvb3N0OjplbmFibGVfc2hhcmVkX2Zyb21fcmF3IGNvbnN0ICogcGUgKTsKKworI2lmZGVmIF9NQU5BR0VECisKKy8vIEF2b2lkIEM0NzkzLCAuLi4gY2F1c2VzIG5hdGl2ZSBjb2RlIGdlbmVyYXRpb24KKworc3RydWN0IHNwX2FueV9wb2ludGVyCit7CisgICAgdGVtcGxhdGU8Y2xhc3MgVD4gc3BfYW55X3BvaW50ZXIoIFQqICkge30KK307CisKK2lubGluZSB2b2lkIHNwX2VuYWJsZV9zaGFyZWRfZnJvbV90aGlzKCBzcF9hbnlfcG9pbnRlciwgc3BfYW55X3BvaW50ZXIsIHNwX2FueV9wb2ludGVyICkKK3sKK30KKworI2Vsc2UgLy8gX01BTkFHRUQKKworaW5saW5lIHZvaWQgc3BfZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXMoIC4uLiApCit7Cit9CisKKyNlbmRpZiAvLyBfTUFOQUdFRAorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX1NGSU5BRSApICYmICFkZWZpbmVkKCBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OICkgJiYgIWRlZmluZWQoIEJPT1NUX05PX0FVVE9fUFRSICkKKworLy8gcnZhbHVlIGF1dG9fcHRyIHN1cHBvcnQgYmFzZWQgb24gYSB0ZWNobmlxdWUgYnkgRGF2ZSBBYnJhaGFtcworCit0ZW1wbGF0ZTwgY2xhc3MgVCwgY2xhc3MgUiA+IHN0cnVjdCBzcF9lbmFibGVfaWZfYXV0b19wdHIKK3sKK307CisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBSID4gc3RydWN0IHNwX2VuYWJsZV9pZl9hdXRvX3B0cjwgc3RkOjphdXRvX3B0cjwgVCA+LCBSID4KK3sKKyAgICB0eXBlZGVmIFIgdHlwZTsKK307IAorCisjZW5kaWYKKworLy8gc3BfYXNzZXJ0X2NvbnZlcnRpYmxlCisKK3RlbXBsYXRlPCBjbGFzcyBZLCBjbGFzcyBUID4gaW5saW5lIHZvaWQgc3BfYXNzZXJ0X2NvbnZlcnRpYmxlKCkKK3sKKyNpZiAhZGVmaW5lZCggQk9PU1RfU1BfTk9fU1BfQ09OVkVSVElCTEUgKQorCisgICAgLy8gc3RhdGljX2Fzc2VydCggc3BfY29udmVydGlibGU8IFksIFQgPjo6dmFsdWUgKTsKKyAgICB0eXBlZGVmIGNoYXIgdG1wWyBzcF9jb252ZXJ0aWJsZTwgWSwgVCA+Ojp2YWx1ZT8gMTogLTEgXTsKKyAgICAodm9pZClzaXplb2YoIHRtcCApOworCisjZWxzZQorCisgICAgVCogcCA9IHN0YXRpY19jYXN0PCBZKiA+KCAwICk7CisgICAgKHZvaWQpcDsKKworI2VuZGlmCit9CisKKy8vIHBvaW50ZXIgY29uc3RydWN0b3IgaGVscGVyCisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBZID4gaW5saW5lIHZvaWQgc3BfcG9pbnRlcl9jb25zdHJ1Y3QoIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gKiBwcHgsIFkgKiBwLCBuZG5ib29zdDo6ZGV0YWlsOjpzaGFyZWRfY291bnQgJiBwbiApCit7CisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c2hhcmVkX2NvdW50KCBwICkuc3dhcCggcG4gKTsKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggcHB4LCBwLCBwICk7Cit9CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTiApCisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBZID4gaW5saW5lIHZvaWQgc3BfcG9pbnRlcl9jb25zdHJ1Y3QoIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUW10gPiAqIC8qcHB4Ki8sIFkgKiBwLCBuZG5ib29zdDo6ZGV0YWlsOjpzaGFyZWRfY291bnQgJiBwbiApCit7CisgICAgc3BfYXNzZXJ0X2NvbnZlcnRpYmxlPCBZW10sIFRbXSA+KCk7CisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c2hhcmVkX2NvdW50KCBwLCBuZG5ib29zdDo6Y2hlY2tlZF9hcnJheV9kZWxldGVyPCBUID4oKSApLnN3YXAoIHBuICk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBzdGQ6OnNpemVfdCBOLCBjbGFzcyBZID4gaW5saW5lIHZvaWQgc3BfcG9pbnRlcl9jb25zdHJ1Y3QoIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUW05dID4gKiAvKnBweCovLCBZICogcCwgbmRuYm9vc3Q6OmRldGFpbDo6c2hhcmVkX2NvdW50ICYgcG4gKQoreworICAgIHNwX2Fzc2VydF9jb252ZXJ0aWJsZTwgWVtOXSwgVFtOXSA+KCk7CisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c2hhcmVkX2NvdW50KCBwLCBuZG5ib29zdDo6Y2hlY2tlZF9hcnJheV9kZWxldGVyPCBUID4oKSApLnN3YXAoIHBuICk7Cit9CisKKyNlbmRpZiAvLyAhZGVmaW5lZCggQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTiApCisKKy8vIGRlbGV0ZXIgY29uc3RydWN0b3IgaGVscGVyCisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBZID4gaW5saW5lIHZvaWQgc3BfZGVsZXRlcl9jb25zdHJ1Y3QoIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUID4gKiBwcHgsIFkgKiBwICkKK3sKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbmFibGVfc2hhcmVkX2Zyb21fdGhpcyggcHB4LCBwLCBwICk7Cit9CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTiApCisKK3RlbXBsYXRlPCBjbGFzcyBULCBjbGFzcyBZID4gaW5saW5lIHZvaWQgc3BfZGVsZXRlcl9jb25zdHJ1Y3QoIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUW10gPiAqIC8qcHB4Ki8sIFkgKiAvKnAqLyApCit7CisgICAgc3BfYXNzZXJ0X2NvbnZlcnRpYmxlPCBZW10sIFRbXSA+KCk7Cit9CisKK3RlbXBsYXRlPCBjbGFzcyBULCBzdGQ6OnNpemVfdCBOLCBjbGFzcyBZID4gaW5saW5lIHZvaWQgc3BfZGVsZXRlcl9jb25zdHJ1Y3QoIG5kbmJvb3N0OjpzaGFyZWRfcHRyPCBUW05dID4gKiAvKnBweCovLCBZICogLypwKi8gKQoreworICAgIHNwX2Fzc2VydF9jb252ZXJ0aWJsZTwgWVtOXSwgVFtOXSA+KCk7Cit9CisKKyNlbmRpZiAvLyAhZGVmaW5lZCggQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTiApCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCisKKy8vCisvLyAgc2hhcmVkX3B0cgorLy8KKy8vICBBbiBlbmhhbmNlZCByZWxhdGl2ZSBvZiBzY29wZWRfcHRyIHdpdGggcmVmZXJlbmNlIGNvdW50ZWQgY29weSBzZW1hbnRpY3MuCisvLyAgVGhlIG9iamVjdCBwb2ludGVkIHRvIGlzIGRlbGV0ZWQgd2hlbiB0aGUgbGFzdCBzaGFyZWRfcHRyIHBvaW50aW5nIHRvIGl0CisvLyAgaXMgZGVzdHJveWVkIG9yIHJlc2V0LgorLy8KKwordGVtcGxhdGU8Y2xhc3MgVD4gY2xhc3Mgc2hhcmVkX3B0cgoreworcHJpdmF0ZToKKworICAgIC8vIEJvcmxhbmQgNS41LjEgc3BlY2lmaWMgd29ya2Fyb3VuZAorICAgIHR5cGVkZWYgc2hhcmVkX3B0cjxUPiB0aGlzX3R5cGU7CisKK3B1YmxpYzoKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZWxlbWVudDwgVCA+Ojp0eXBlIGVsZW1lbnRfdHlwZTsKKworICAgIHNoYXJlZF9wdHIoKSBCT09TVF9OT0VYQ0VQVCA6IHB4KCAwICksIHBuKCkgLy8gbmV2ZXIgdGhyb3dzIGluIDEuMzArCisgICAgeworICAgIH0KKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9OVUxMUFRSICkKKworICAgIHNoYXJlZF9wdHIoIG5kbmJvb3N0OjpkZXRhaWw6OnNwX251bGxwdHJfdCApIEJPT1NUX05PRVhDRVBUIDogcHgoIDAgKSwgcG4oKSAvLyBuZXZlciB0aHJvd3MKKyAgICB7CisgICAgfQorCisjZW5kaWYKKworICAgIHRlbXBsYXRlPGNsYXNzIFk+CisgICAgZXhwbGljaXQgc2hhcmVkX3B0ciggWSAqIHAgKTogcHgoIHAgKSwgcG4oKSAvLyBZIG11c3QgYmUgY29tcGxldGUKKyAgICB7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX3BvaW50ZXJfY29uc3RydWN0KCB0aGlzLCBwLCBwbiApOworICAgIH0KKworICAgIC8vCisgICAgLy8gUmVxdWlyZW1lbnRzOiBEJ3MgY29weSBjb25zdHJ1Y3RvciBtdXN0IG5vdCB0aHJvdworICAgIC8vCisgICAgLy8gc2hhcmVkX3B0ciB3aWxsIHJlbGVhc2UgcCBieSBjYWxsaW5nIGQocCkKKyAgICAvLworCisgICAgdGVtcGxhdGU8Y2xhc3MgWSwgY2xhc3MgRD4gc2hhcmVkX3B0ciggWSAqIHAsIEQgZCApOiBweCggcCApLCBwbiggcCwgZCApCisgICAgeworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9kZWxldGVyX2NvbnN0cnVjdCggdGhpcywgcCApOworICAgIH0KKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9OVUxMUFRSICkKKworICAgIHRlbXBsYXRlPGNsYXNzIEQ+IHNoYXJlZF9wdHIoIG5kbmJvb3N0OjpkZXRhaWw6OnNwX251bGxwdHJfdCBwLCBEIGQgKTogcHgoIHAgKSwgcG4oIHAsIGQgKQorICAgIHsKKyAgICB9CisKKyNlbmRpZgorCisgICAgLy8gQXMgYWJvdmUsIGJ1dCB3aXRoIGFsbG9jYXRvci4gQSdzIGNvcHkgY29uc3RydWN0b3Igc2hhbGwgbm90IHRocm93LgorCisgICAgdGVtcGxhdGU8Y2xhc3MgWSwgY2xhc3MgRCwgY2xhc3MgQT4gc2hhcmVkX3B0ciggWSAqIHAsIEQgZCwgQSBhICk6IHB4KCBwICksIHBuKCBwLCBkLCBhICkKKyAgICB7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2RlbGV0ZXJfY29uc3RydWN0KCB0aGlzLCBwICk7CisgICAgfQorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX05VTExQVFIgKQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRCwgY2xhc3MgQT4gc2hhcmVkX3B0ciggbmRuYm9vc3Q6OmRldGFpbDo6c3BfbnVsbHB0cl90IHAsIEQgZCwgQSBhICk6IHB4KCBwICksIHBuKCBwLCBkLCBhICkKKyAgICB7CisgICAgfQorCisjZW5kaWYKKworLy8gIGdlbmVyYXRlZCBjb3B5IGNvbnN0cnVjdG9yLCBkZXN0cnVjdG9yIGFyZSBmaW5lLi4uCisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgKQorCisvLyAuLi4gZXhjZXB0IGluIEMrKzB4LCBtb3ZlIGRpc2FibGVzIHRoZSBpbXBsaWNpdCBjb3B5CisKKyAgICBzaGFyZWRfcHRyKCBzaGFyZWRfcHRyIGNvbnN0ICYgciApIEJPT1NUX05PRVhDRVBUIDogcHgoIHIucHggKSwgcG4oIHIucG4gKQorICAgIHsKKyAgICB9CisKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4KKyAgICBleHBsaWNpdCBzaGFyZWRfcHRyKCB3ZWFrX3B0cjxZPiBjb25zdCAmIHIgKTogcG4oIHIucG4gKSAvLyBtYXkgdGhyb3cKKyAgICB7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2Fzc2VydF9jb252ZXJ0aWJsZTwgWSwgVCA+KCk7CisKKyAgICAgICAgLy8gaXQgaXMgbm93IHNhZmUgdG8gY29weSByLnB4LCBhcyBwbihyLnBuKSBkaWQgbm90IHRocm93CisgICAgICAgIHB4ID0gci5weDsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPgorICAgIHNoYXJlZF9wdHIoIHdlYWtfcHRyPFk+IGNvbnN0ICYgciwgbmRuYm9vc3Q6OmRldGFpbDo6c3Bfbm90aHJvd190YWcgKQorICAgIEJPT1NUX05PRVhDRVBUIDogcHgoIDAgKSwgcG4oIHIucG4sIG5kbmJvb3N0OjpkZXRhaWw6OnNwX25vdGhyb3dfdGFnKCkgKQorICAgIHsKKyAgICAgICAgaWYoICFwbi5lbXB0eSgpICkKKyAgICAgICAgeworICAgICAgICAgICAgcHggPSByLnB4OworICAgICAgICB9CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4KKyNpZiAhZGVmaW5lZCggQk9PU1RfU1BfTk9fU1BfQ09OVkVSVElCTEUgKQorCisgICAgc2hhcmVkX3B0ciggc2hhcmVkX3B0cjxZPiBjb25zdCAmIHIsIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2VuYWJsZV9pZl9jb252ZXJ0aWJsZTxZLFQ+Ojp0eXBlID0gbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW1wdHkoKSApCisKKyNlbHNlCisKKyAgICBzaGFyZWRfcHRyKCBzaGFyZWRfcHRyPFk+IGNvbnN0ICYgciApCisKKyNlbmRpZgorICAgIEJPT1NUX05PRVhDRVBUIDogcHgoIHIucHggKSwgcG4oIHIucG4gKQorICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfYXNzZXJ0X2NvbnZlcnRpYmxlPCBZLCBUID4oKTsKKyAgICB9CisKKyAgICAvLyBhbGlhc2luZworICAgIHRlbXBsYXRlPCBjbGFzcyBZID4KKyAgICBzaGFyZWRfcHRyKCBzaGFyZWRfcHRyPFk+IGNvbnN0ICYgciwgZWxlbWVudF90eXBlICogcCApIEJPT1NUX05PRVhDRVBUIDogcHgoIHAgKSwgcG4oIHIucG4gKQorICAgIHsKKyAgICB9CisKKyNpZm5kZWYgQk9PU1RfTk9fQVVUT19QVFIKKworICAgIHRlbXBsYXRlPGNsYXNzIFk+CisgICAgZXhwbGljaXQgc2hhcmVkX3B0ciggc3RkOjphdXRvX3B0cjxZPiAmIHIgKTogcHgoci5nZXQoKSksIHBuKCkKKyAgICB7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2Fzc2VydF9jb252ZXJ0aWJsZTwgWSwgVCA+KCk7CisKKyAgICAgICAgWSAqIHRtcCA9IHIuZ2V0KCk7CisgICAgICAgIHBuID0gbmRuYm9vc3Q6OmRldGFpbDo6c2hhcmVkX2NvdW50KCByICk7CisKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZGVsZXRlcl9jb25zdHJ1Y3QoIHRoaXMsIHRtcCApOworICAgIH0KKworI2lmICFkZWZpbmVkKCBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUyApCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPgorICAgIHNoYXJlZF9wdHIoIHN0ZDo6YXV0b19wdHI8WT4gJiYgciApOiBweChyLmdldCgpKSwgcG4oKQorICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfYXNzZXJ0X2NvbnZlcnRpYmxlPCBZLCBUID4oKTsKKworICAgICAgICBZICogdG1wID0gci5nZXQoKTsKKyAgICAgICAgcG4gPSBuZG5ib29zdDo6ZGV0YWlsOjpzaGFyZWRfY291bnQoIHIgKTsKKworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9kZWxldGVyX2NvbnN0cnVjdCggdGhpcywgdG1wICk7CisgICAgfQorCisjZWxpZiAhZGVmaW5lZCggQk9PU1RfTk9fU0ZJTkFFICkgJiYgIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQXA+CisgICAgZXhwbGljaXQgc2hhcmVkX3B0ciggQXAgciwgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX2lmX2F1dG9fcHRyPEFwLCBpbnQ+Ojp0eXBlID0gMCApOiBweCggci5nZXQoKSApLCBwbigpCisgICAgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEFwOjplbGVtZW50X3R5cGUgWTsKKworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9hc3NlcnRfY29udmVydGlibGU8IFksIFQgPigpOworCisgICAgICAgIFkgKiB0bXAgPSByLmdldCgpOworICAgICAgICBwbiA9IG5kbmJvb3N0OjpkZXRhaWw6OnNoYXJlZF9jb3VudCggciApOworCisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2RlbGV0ZXJfY29uc3RydWN0KCB0aGlzLCB0bXAgKTsKKyAgICB9CisKKyNlbmRpZiAvLyBCT09TVF9OT19TRklOQUUsIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworI2VuZGlmIC8vIEJPT1NUX05PX0FVVE9fUFRSCisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfU01BUlRfUFRSICkKKworICAgIHRlbXBsYXRlPCBjbGFzcyBZLCBjbGFzcyBEID4KKyAgICBzaGFyZWRfcHRyKCBzdGQ6OnVuaXF1ZV9wdHI8IFksIEQgPiAmJiByICk6IHB4KCByLmdldCgpICksIHBuKCkKKyAgICB7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwX2Fzc2VydF9jb252ZXJ0aWJsZTwgWSwgVCA+KCk7CisKKyAgICAgICAgdHlwZW5hbWUgc3RkOjp1bmlxdWVfcHRyPCBZLCBEID46OnBvaW50ZXIgdG1wID0gci5nZXQoKTsKKyAgICAgICAgcG4gPSBuZG5ib29zdDo6ZGV0YWlsOjpzaGFyZWRfY291bnQoIHIgKTsKKworICAgICAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcF9kZWxldGVyX2NvbnN0cnVjdCggdGhpcywgdG1wICk7CisgICAgfQorCisjZW5kaWYKKworICAgIC8vIGFzc2lnbm1lbnQKKworICAgIHNoYXJlZF9wdHIgJiBvcGVyYXRvcj0oIHNoYXJlZF9wdHIgY29uc3QgJiByICkgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHRoaXNfdHlwZShyKS5zd2FwKCp0aGlzKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworI2lmICFkZWZpbmVkKEJPT1NUX01TVkMpIHx8IChCT09TVF9NU1ZDID49IDE0MDApCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPgorICAgIHNoYXJlZF9wdHIgJiBvcGVyYXRvcj0oc2hhcmVkX3B0cjxZPiBjb25zdCAmIHIpIEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICB0aGlzX3R5cGUocikuc3dhcCgqdGhpcyk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyNlbmRpZgorCisjaWZuZGVmIEJPT1NUX05PX0FVVE9fUFRSCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPgorICAgIHNoYXJlZF9wdHIgJiBvcGVyYXRvcj0oIHN0ZDo6YXV0b19wdHI8WT4gJiByICkKKyAgICB7CisgICAgICAgIHRoaXNfdHlwZSggciApLnN3YXAoICp0aGlzICk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgKQorCisgICAgdGVtcGxhdGU8Y2xhc3MgWT4KKyAgICBzaGFyZWRfcHRyICYgb3BlcmF0b3I9KCBzdGQ6OmF1dG9fcHRyPFk+ICYmIHIgKQorICAgIHsKKyAgICAgICAgdGhpc190eXBlKCBzdGF0aWNfY2FzdDwgc3RkOjphdXRvX3B0cjxZPiAmJiA+KCByICkgKS5zd2FwKCAqdGhpcyApOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisjZWxpZiAhZGVmaW5lZCggQk9PU1RfTk9fU0ZJTkFFICkgJiYgIWRlZmluZWQoIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04gKQorCisgICAgdGVtcGxhdGU8Y2xhc3MgQXA+CisgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX2lmX2F1dG9fcHRyPCBBcCwgc2hhcmVkX3B0ciAmID46OnR5cGUgb3BlcmF0b3I9KCBBcCByICkKKyAgICB7CisgICAgICAgIHRoaXNfdHlwZSggciApLnN3YXAoICp0aGlzICk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyNlbmRpZiAvLyBCT09TVF9OT19TRklOQUUsIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworI2VuZGlmIC8vIEJPT1NUX05PX0FVVE9fUFRSCisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfU01BUlRfUFRSICkKKworICAgIHRlbXBsYXRlPGNsYXNzIFksIGNsYXNzIEQ+CisgICAgc2hhcmVkX3B0ciAmIG9wZXJhdG9yPSggc3RkOjp1bmlxdWVfcHRyPFksIEQ+ICYmIHIgKQorICAgIHsKKyAgICAgICAgdGhpc190eXBlKCBzdGF0aWNfY2FzdDwgc3RkOjp1bmlxdWVfcHRyPFksIEQ+ICYmID4oIHIgKSApLnN3YXAoKnRoaXMpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisjZW5kaWYKKworLy8gTW92ZSBzdXBwb3J0CisKKyNpZiAhZGVmaW5lZCggQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMgKQorCisgICAgc2hhcmVkX3B0ciggc2hhcmVkX3B0ciAmJiByICkgQk9PU1RfTk9FWENFUFQgOiBweCggci5weCApLCBwbigpCisgICAgeworICAgICAgICBwbi5zd2FwKCByLnBuICk7CisgICAgICAgIHIucHggPSAwOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFk+CisjaWYgIWRlZmluZWQoIEJPT1NUX1NQX05PX1NQX0NPTlZFUlRJQkxFICkKKworICAgIHNoYXJlZF9wdHIoIHNoYXJlZF9wdHI8WT4gJiYgciwgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfZW5hYmxlX2lmX2NvbnZlcnRpYmxlPFksVD46OnR5cGUgPSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9lbXB0eSgpICkKKworI2Vsc2UKKworICAgIHNoYXJlZF9wdHIoIHNoYXJlZF9wdHI8WT4gJiYgciApCisKKyNlbmRpZgorICAgIEJPT1NUX05PRVhDRVBUIDogcHgoIHIucHggKSwgcG4oKQorICAgIHsKKyAgICAgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BfYXNzZXJ0X2NvbnZlcnRpYmxlPCBZLCBUID4oKTsKKworICAgICAgICBwbi5zd2FwKCByLnBuICk7CisgICAgICAgIHIucHggPSAwOworICAgIH0KKworICAgIHNoYXJlZF9wdHIgJiBvcGVyYXRvcj0oIHNoYXJlZF9wdHIgJiYgciApIEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICB0aGlzX3R5cGUoIHN0YXRpY19jYXN0PCBzaGFyZWRfcHRyICYmID4oIHIgKSApLnN3YXAoICp0aGlzICk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPgorICAgIHNoYXJlZF9wdHIgJiBvcGVyYXRvcj0oIHNoYXJlZF9wdHI8WT4gJiYgciApIEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICB0aGlzX3R5cGUoIHN0YXRpY19jYXN0PCBzaGFyZWRfcHRyPFk+ICYmID4oIHIgKSApLnN3YXAoICp0aGlzICk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX05VTExQVFIgKQorCisgICAgc2hhcmVkX3B0ciAmIG9wZXJhdG9yPSggbmRuYm9vc3Q6OmRldGFpbDo6c3BfbnVsbHB0cl90ICkgQk9PU1RfTk9FWENFUFQgLy8gbmV2ZXIgdGhyb3dzCisgICAgeworICAgICAgICB0aGlzX3R5cGUoKS5zd2FwKCp0aGlzKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworI2VuZGlmCisKKyAgICB2b2lkIHJlc2V0KCkgQk9PU1RfTk9FWENFUFQgLy8gbmV2ZXIgdGhyb3dzIGluIDEuMzArCisgICAgeworICAgICAgICB0aGlzX3R5cGUoKS5zd2FwKCp0aGlzKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPiB2b2lkIHJlc2V0KCBZICogcCApIC8vIFkgbXVzdCBiZSBjb21wbGV0ZQorICAgIHsKKyAgICAgICAgQk9PU1RfQVNTRVJUKCBwID09IDAgfHwgcCAhPSBweCApOyAvLyBjYXRjaCBzZWxmLXJlc2V0IGVycm9ycworICAgICAgICB0aGlzX3R5cGUoIHAgKS5zd2FwKCAqdGhpcyApOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFksIGNsYXNzIEQ+IHZvaWQgcmVzZXQoIFkgKiBwLCBEIGQgKQorICAgIHsKKyAgICAgICAgdGhpc190eXBlKCBwLCBkICkuc3dhcCggKnRoaXMgKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZLCBjbGFzcyBELCBjbGFzcyBBPiB2b2lkIHJlc2V0KCBZICogcCwgRCBkLCBBIGEgKQorICAgIHsKKyAgICAgICAgdGhpc190eXBlKCBwLCBkLCBhICkuc3dhcCggKnRoaXMgKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPiB2b2lkIHJlc2V0KCBzaGFyZWRfcHRyPFk+IGNvbnN0ICYgciwgZWxlbWVudF90eXBlICogcCApCisgICAgeworICAgICAgICB0aGlzX3R5cGUoIHIsIHAgKS5zd2FwKCAqdGhpcyApOworICAgIH0KKyAgICAKKyAgICAvLyBuZXZlciB0aHJvd3MgKGJ1dCBoYXMgYSBCT09TVF9BU1NFUlQgaW4gaXQsIHNvIG5vdCBtYXJrZWQgd2l0aCBCT09TVF9OT0VYQ0VQVCkKKyAgICB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpzcF9kZXJlZmVyZW5jZTwgVCA+Ojp0eXBlIG9wZXJhdG9yKiAoKSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfQVNTRVJUKCBweCAhPSAwICk7CisgICAgICAgIHJldHVybiAqcHg7CisgICAgfQorICAgIAorICAgIC8vIG5ldmVyIHRocm93cyAoYnV0IGhhcyBhIEJPT1NUX0FTU0VSVCBpbiBpdCwgc28gbm90IG1hcmtlZCB3aXRoIEJPT1NUX05PRVhDRVBUKQorICAgIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnNwX21lbWJlcl9hY2Nlc3M8IFQgPjo6dHlwZSBvcGVyYXRvci0+ICgpIGNvbnN0IAorICAgIHsKKyAgICAgICAgQk9PU1RfQVNTRVJUKCBweCAhPSAwICk7CisgICAgICAgIHJldHVybiBweDsKKyAgICB9CisgICAgCisgICAgLy8gbmV2ZXIgdGhyb3dzIChidXQgaGFzIGEgQk9PU1RfQVNTRVJUIGluIGl0LCBzbyBub3QgbWFya2VkIHdpdGggQk9PU1RfTk9FWENFUFQpCisgICAgdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6c3BfYXJyYXlfYWNjZXNzPCBUID46OnR5cGUgb3BlcmF0b3JbXSAoIHN0ZDo6cHRyZGlmZl90IGkgKSBjb25zdAorICAgIHsKKyAgICAgICAgQk9PU1RfQVNTRVJUKCBweCAhPSAwICk7CisgICAgICAgIEJPT1NUX0FTU0VSVCggaSA+PSAwICYmICggaSA8IG5kbmJvb3N0OjpkZXRhaWw6OnNwX2V4dGVudDwgVCA+Ojp2YWx1ZSB8fCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9leHRlbnQ8IFQgPjo6dmFsdWUgPT0gMCApICk7CisKKyAgICAgICAgcmV0dXJuIHB4WyBpIF07CisgICAgfQorCisgICAgZWxlbWVudF90eXBlICogZ2V0KCkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHJldHVybiBweDsKKyAgICB9CisKKy8vIGltcGxpY2l0IGNvbnZlcnNpb24gdG8gImJvb2wiCisjaW5jbHVkZSA8Ym9vc3Qvc21hcnRfcHRyL2RldGFpbC9vcGVyYXRvcl9ib29sLmhwcD4KKworICAgIGJvb2wgdW5pcXVlKCkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHJldHVybiBwbi51bmlxdWUoKTsKKyAgICB9CisKKyAgICBsb25nIHVzZV9jb3VudCgpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcG4udXNlX2NvdW50KCk7CisgICAgfQorCisgICAgdm9pZCBzd2FwKCBzaGFyZWRfcHRyICYgb3RoZXIgKSBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgc3RkOjpzd2FwKHB4LCBvdGhlci5weCk7CisgICAgICAgIHBuLnN3YXAob3RoZXIucG4pOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIFk+IGJvb2wgb3duZXJfYmVmb3JlKCBzaGFyZWRfcHRyPFk+IGNvbnN0ICYgcmhzICkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHJldHVybiBwbiA8IHJocy5wbjsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPiBib29sIG93bmVyX2JlZm9yZSggd2Vha19wdHI8WT4gY29uc3QgJiByaHMgKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHBuIDwgcmhzLnBuOworICAgIH0KKworICAgIHZvaWQgKiBfaW50ZXJuYWxfZ2V0X2RlbGV0ZXIoIG5kbmJvb3N0OjpkZXRhaWw6OnNwX3R5cGVpbmZvIGNvbnN0ICYgdGkgKSBjb25zdCBCT09TVF9OT0VYQ0VQVAorICAgIHsKKyAgICAgICAgcmV0dXJuIHBuLmdldF9kZWxldGVyKCB0aSApOworICAgIH0KKworICAgIHZvaWQgKiBfaW50ZXJuYWxfZ2V0X3VudHlwZWRfZGVsZXRlcigpIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcG4uZ2V0X3VudHlwZWRfZGVsZXRlcigpOworICAgIH0KKworICAgIGJvb2wgX2ludGVybmFsX2VxdWl2KCBzaGFyZWRfcHRyIGNvbnN0ICYgciApIGNvbnN0IEJPT1NUX05PRVhDRVBUCisgICAgeworICAgICAgICByZXR1cm4gcHggPT0gci5weCAmJiBwbiA9PSByLnBuOworICAgIH0KKworLy8gVGFzdGVsZXNzIGFzIHRoaXMgbWF5IHNlZW0sIG1ha2luZyBhbGwgbWVtYmVycyBwdWJsaWMgYWxsb3dzIG1lbWJlciB0ZW1wbGF0ZXMKKy8vIHRvIHdvcmsgaW4gdGhlIGFic2VuY2Ugb2YgbWVtYmVyIHRlbXBsYXRlIGZyaWVuZHMuIChNYXR0aGV3IExhbmdzdG9uKQorCisjaWZuZGVmIEJPT1NUX05PX01FTUJFUl9URU1QTEFURV9GUklFTkRTCisKK3ByaXZhdGU6CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPiBmcmllbmQgY2xhc3Mgc2hhcmVkX3B0cjsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBZPiBmcmllbmQgY2xhc3Mgd2Vha19wdHI7CisKKworI2VuZGlmCisKKyAgICBlbGVtZW50X3R5cGUgKiBweDsgICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lZCBwb2ludGVyCisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c2hhcmVkX2NvdW50IHBuOyAgICAvLyByZWZlcmVuY2UgY291bnRlcgorCit9OyAgLy8gc2hhcmVkX3B0cgorCit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KHNoYXJlZF9wdHI8VD4gY29uc3QgJiBhLCBzaGFyZWRfcHRyPFU+IGNvbnN0ICYgYikgQk9PU1RfTk9FWENFUFQKK3sKKyAgICByZXR1cm4gYS5nZXQoKSA9PSBiLmdldCgpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KHNoYXJlZF9wdHI8VD4gY29uc3QgJiBhLCBzaGFyZWRfcHRyPFU+IGNvbnN0ICYgYikgQk9PU1RfTk9FWENFUFQKK3sKKyAgICByZXR1cm4gYS5nZXQoKSAhPSBiLmdldCgpOworfQorCisjaWYgX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA8PSA5NgorCisvLyBSZXNvbHZlIHRoZSBhbWJpZ3VpdHkgYmV0d2VlbiBvdXIgb3AhPSBhbmQgdGhlIG9uZSBpbiByZWxfb3BzCisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSBib29sIG9wZXJhdG9yIT0oc2hhcmVkX3B0cjxUPiBjb25zdCAmIGEsIHNoYXJlZF9wdHI8VD4gY29uc3QgJiBiKSBCT09TVF9OT0VYQ0VQVAoreworICAgIHJldHVybiBhLmdldCgpICE9IGIuZ2V0KCk7Cit9CisKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoIEJPT1NUX05PX0NYWDExX05VTExQVFIgKQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KCBzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgcCwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbnVsbHB0cl90ICkgQk9PU1RfTk9FWENFUFQKK3sKKyAgICByZXR1cm4gcC5nZXQoKSA9PSAwOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9udWxscHRyX3QsIHNoYXJlZF9wdHI8VD4gY29uc3QgJiBwICkgQk9PU1RfTk9FWENFUFQKK3sKKyAgICByZXR1cm4gcC5nZXQoKSA9PSAwOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KCBzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgcCwgbmRuYm9vc3Q6OmRldGFpbDo6c3BfbnVsbHB0cl90ICkgQk9PU1RfTk9FWENFUFQKK3sKKyAgICByZXR1cm4gcC5nZXQoKSAhPSAwOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KCBuZG5ib29zdDo6ZGV0YWlsOjpzcF9udWxscHRyX3QsIHNoYXJlZF9wdHI8VD4gY29uc3QgJiBwICkgQk9PU1RfTk9FWENFUFQKK3sKKyAgICByZXR1cm4gcC5nZXQoKSAhPSAwOworfQorCisjZW5kaWYKKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I8KHNoYXJlZF9wdHI8VD4gY29uc3QgJiBhLCBzaGFyZWRfcHRyPFU+IGNvbnN0ICYgYikgQk9PU1RfTk9FWENFUFQKK3sKKyAgICByZXR1cm4gYS5vd25lcl9iZWZvcmUoIGIgKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIHZvaWQgc3dhcChzaGFyZWRfcHRyPFQ+ICYgYSwgc2hhcmVkX3B0cjxUPiAmIGIpIEJPT1NUX05PRVhDRVBUCit7CisgICAgYS5zd2FwKGIpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVPiBzaGFyZWRfcHRyPFQ+IHN0YXRpY19wb2ludGVyX2Nhc3QoIHNoYXJlZF9wdHI8VT4gY29uc3QgJiByICkgQk9PU1RfTk9FWENFUFQKK3sKKyAgICAodm9pZCkgc3RhdGljX2Nhc3Q8IFQqID4oIHN0YXRpY19jYXN0PCBVKiA+KCAwICkgKTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2hhcmVkX3B0cjxUPjo6ZWxlbWVudF90eXBlIEU7CisKKyAgICBFICogcCA9IHN0YXRpY19jYXN0PCBFKiA+KCByLmdldCgpICk7CisgICAgcmV0dXJuIHNoYXJlZF9wdHI8VD4oIHIsIHAgKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4gc2hhcmVkX3B0cjxUPiBjb25zdF9wb2ludGVyX2Nhc3QoIHNoYXJlZF9wdHI8VT4gY29uc3QgJiByICkgQk9PU1RfTk9FWENFUFQKK3sKKyAgICAodm9pZCkgY29uc3RfY2FzdDwgVCogPiggc3RhdGljX2Nhc3Q8IFUqID4oIDAgKSApOworCisgICAgdHlwZWRlZiB0eXBlbmFtZSBzaGFyZWRfcHRyPFQ+OjplbGVtZW50X3R5cGUgRTsKKworICAgIEUgKiBwID0gY29uc3RfY2FzdDwgRSogPiggci5nZXQoKSApOworICAgIHJldHVybiBzaGFyZWRfcHRyPFQ+KCByLCBwICk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+IHNoYXJlZF9wdHI8VD4gZHluYW1pY19wb2ludGVyX2Nhc3QoIHNoYXJlZF9wdHI8VT4gY29uc3QgJiByICkgQk9PU1RfTk9FWENFUFQKK3sKKyAgICAodm9pZCkgZHluYW1pY19jYXN0PCBUKiA+KCBzdGF0aWNfY2FzdDwgVSogPiggMCApICk7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHNoYXJlZF9wdHI8VD46OmVsZW1lbnRfdHlwZSBFOworCisgICAgRSAqIHAgPSBkeW5hbWljX2Nhc3Q8IEUqID4oIHIuZ2V0KCkgKTsKKyAgICByZXR1cm4gcD8gc2hhcmVkX3B0cjxUPiggciwgcCApOiBzaGFyZWRfcHRyPFQ+KCk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFU+IHNoYXJlZF9wdHI8VD4gcmVpbnRlcnByZXRfcG9pbnRlcl9jYXN0KCBzaGFyZWRfcHRyPFU+IGNvbnN0ICYgciApIEJPT1NUX05PRVhDRVBUCit7CisgICAgKHZvaWQpIHJlaW50ZXJwcmV0X2Nhc3Q8IFQqID4oIHN0YXRpY19jYXN0PCBVKiA+KCAwICkgKTsKKworICAgIHR5cGVkZWYgdHlwZW5hbWUgc2hhcmVkX3B0cjxUPjo6ZWxlbWVudF90eXBlIEU7CisKKyAgICBFICogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8IEUqID4oIHIuZ2V0KCkgKTsKKyAgICByZXR1cm4gc2hhcmVkX3B0cjxUPiggciwgcCApOworfQorCisvLyBnZXRfcG9pbnRlcigpIGVuYWJsZXMgbmRuYm9vc3Q6Om1lbV9mbiB0byByZWNvZ25pemUgc2hhcmVkX3B0cgorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgdHlwZW5hbWUgc2hhcmVkX3B0cjxUPjo6ZWxlbWVudF90eXBlICogZ2V0X3BvaW50ZXIoc2hhcmVkX3B0cjxUPiBjb25zdCAmIHApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIHAuZ2V0KCk7Cit9CisKKy8vIG9wZXJhdG9yPDwKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0lPU1RSRUFNKQorCisjaWYgZGVmaW5lZChCT09TVF9OT19URU1QTEFURURfSU9TVFJFQU1TKSB8fCAoIGRlZmluZWQoX19HTlVDX18pICYmICAoX19HTlVDX18gPCAzKSApCisKK3RlbXBsYXRlPGNsYXNzIFk+IHN0ZDo6b3N0cmVhbSAmIG9wZXJhdG9yPDwgKHN0ZDo6b3N0cmVhbSAmIG9zLCBzaGFyZWRfcHRyPFk+IGNvbnN0ICYgcCkKK3sKKyAgICBvcyA8PCBwLmdldCgpOworICAgIHJldHVybiBvczsKK30KKworI2Vsc2UKKworLy8gaW4gU1RMcG9ydCdzIG5vLWlvc3RyZWFtcyBtb2RlIG5vIGlvc3RyZWFtIHN5bWJvbHMgY2FuIGJlIHVzZWQKKyNpZm5kZWYgX1NUTFBfTk9fSU9TVFJFQU1TCisKKyMgaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTMwMCAmJiBfX1NHSV9TVExfUE9SVCkKKy8vIE1TVkM2IGhhcyBwcm9ibGVtcyBmaW5kaW5nIHN0ZDo6YmFzaWNfb3N0cmVhbSB0aHJvdWdoIHRoZSB1c2luZyBkZWNsYXJhdGlvbiBpbiBuYW1lc3BhY2UgX1NUTAordXNpbmcgc3RkOjpiYXNpY19vc3RyZWFtOwordGVtcGxhdGU8Y2xhc3MgRSwgY2xhc3MgVCwgY2xhc3MgWT4gYmFzaWNfb3N0cmVhbTxFLCBUPiAmIG9wZXJhdG9yPDwgKGJhc2ljX29zdHJlYW08RSwgVD4gJiBvcywgc2hhcmVkX3B0cjxZPiBjb25zdCAmIHApCisjIGVsc2UKK3RlbXBsYXRlPGNsYXNzIEUsIGNsYXNzIFQsIGNsYXNzIFk+IHN0ZDo6YmFzaWNfb3N0cmVhbTxFLCBUPiAmIG9wZXJhdG9yPDwgKHN0ZDo6YmFzaWNfb3N0cmVhbTxFLCBUPiAmIG9zLCBzaGFyZWRfcHRyPFk+IGNvbnN0ICYgcCkKKyMgZW5kaWYKK3sKKyAgICBvcyA8PCBwLmdldCgpOworICAgIHJldHVybiBvczsKK30KKworI2VuZGlmIC8vIF9TVExQX05PX0lPU1RSRUFNUworCisjZW5kaWYgLy8gX19HTlVDX18gPCAzCisKKyNlbmRpZiAvLyAhZGVmaW5lZChCT09TVF9OT19JT1NUUkVBTSkKKworLy8gZ2V0X2RlbGV0ZXIKKworbmFtZXNwYWNlIGRldGFpbAoreworCisjaWYgKCBkZWZpbmVkKF9fR05VQ19fKSAmJiBCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19fLCA8IDMpICkgfHwgXAorICAgICggZGVmaW5lZChfX0VER19WRVJTSU9OX18pICYmIEJPT1NUX1dPUktBUk9VTkQoX19FREdfVkVSU0lPTl9fLCA8PSAyMzgpICkgfHwgXAorICAgICggZGVmaW5lZChfX0hQX2FDQykgJiYgQk9PU1RfV09SS0FST1VORChfX0hQX2FDQywgPD0gMzM1MDApICkKKworLy8gZysrIDIuOXggZG9lc24ndCBhbGxvdyBzdGF0aWNfY2FzdDxYIGNvbnN0ICo+KHZvaWQgKikKKy8vIGFwcGFyZW50bHkgRURHIDIuMzggYW5kIEhQIGFDQyBBLjAzLjM1IGFsc28gZG9uJ3QgYWNjZXB0IGl0CisKK3RlbXBsYXRlPGNsYXNzIEQsIGNsYXNzIFQ+IEQgKiBiYXNpY19nZXRfZGVsZXRlcihzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgcCkKK3sKKyAgICB2b2lkIGNvbnN0ICogcSA9IHAuX2ludGVybmFsX2dldF9kZWxldGVyKEJPT1NUX1NQX1RZUEVJRChEKSk7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8RCAqPihzdGF0aWNfY2FzdDxEIGNvbnN0ICo+KHEpKTsKK30KKworI2Vsc2UKKwordGVtcGxhdGU8Y2xhc3MgRCwgY2xhc3MgVD4gRCAqIGJhc2ljX2dldF9kZWxldGVyKCBzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgcCApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEQgKj4oIHAuX2ludGVybmFsX2dldF9kZWxldGVyKEJPT1NUX1NQX1RZUEVJRChEKSkgKTsKK30KKworI2VuZGlmCisKK2NsYXNzIGVzZnQyX2RlbGV0ZXJfd3JhcHBlcgoreworcHJpdmF0ZToKKworICAgIHNoYXJlZF9wdHI8dm9pZD4gZGVsZXRlcl87CisKK3B1YmxpYzoKKworICAgIGVzZnQyX2RlbGV0ZXJfd3JhcHBlcigpCisgICAgeworICAgIH0KKworICAgIHRlbXBsYXRlPCBjbGFzcyBUID4gdm9pZCBzZXRfZGVsZXRlciggc2hhcmVkX3B0cjxUPiBjb25zdCAmIGRlbGV0ZXIgKQorICAgIHsKKyAgICAgICAgZGVsZXRlcl8gPSBkZWxldGVyOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEQ+IEQqIGdldF9kZWxldGVyKCkgY29uc3QgQk9PU1RfTk9FWENFUFQKKyAgICB7CisgICAgICAgIHJldHVybiBuZG5ib29zdDo6ZGV0YWlsOjpiYXNpY19nZXRfZGVsZXRlcjxEPiggZGVsZXRlcl8gKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTwgY2xhc3MgVD4gdm9pZCBvcGVyYXRvcigpKCBUKiApCisgICAgeworICAgICAgICBCT09TVF9BU1NFUlQoIGRlbGV0ZXJfLnVzZV9jb3VudCgpIDw9IDEgKTsKKyAgICAgICAgZGVsZXRlcl8ucmVzZXQoKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKwordGVtcGxhdGU8Y2xhc3MgRCwgY2xhc3MgVD4gRCAqIGdldF9kZWxldGVyKCBzaGFyZWRfcHRyPFQ+IGNvbnN0ICYgcCApIEJPT1NUX05PRVhDRVBUCit7CisgICAgRCAqZGVsID0gbmRuYm9vc3Q6OmRldGFpbDo6YmFzaWNfZ2V0X2RlbGV0ZXI8RD4ocCk7CisKKyAgICBpZihkZWwgPT0gMCkKKyAgICB7CisgICAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OmVzZnQyX2RlbGV0ZXJfd3JhcHBlciAqZGVsX3dyYXBwZXIgPSBuZG5ib29zdDo6ZGV0YWlsOjpiYXNpY19nZXRfZGVsZXRlcjxuZG5ib29zdDo6ZGV0YWlsOjplc2Z0Ml9kZWxldGVyX3dyYXBwZXI+KHApOworLy8gVGhlIGZvbGxvd2luZyBnZXRfZGVsZXRlciBtZXRob2QgY2FsbCBpcyBmdWxseSBxdWFsaWZpZWQgYmVjYXVzZQorLy8gb2xkZXIgdmVyc2lvbnMgb2YgZ2NjICgyLjk1LCAzLjIuMykgZmFpbCB0byBjb21waWxlIGl0IHdoZW4gd3JpdHRlbiBkZWxfd3JhcHBlci0+Z2V0X2RlbGV0ZXI8RD4oKQorICAgICAgICBpZihkZWxfd3JhcHBlcikgZGVsID0gZGVsX3dyYXBwZXItPjo6bmRuYm9vc3Q6OmRldGFpbDo6ZXNmdDJfZGVsZXRlcl93cmFwcGVyOjpnZXRfZGVsZXRlcjxEPigpOworICAgIH0KKworICAgIHJldHVybiBkZWw7Cit9CisKKy8vIGF0b21pYyBhY2Nlc3MKKworI2lmICFkZWZpbmVkKEJPT1NUX1NQX05PX0FUT01JQ19BQ0NFU1MpCisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSBib29sIGF0b21pY19pc19sb2NrX2ZyZWUoIHNoYXJlZF9wdHI8VD4gY29uc3QgKiAvKnAqLyApIEJPT1NUX05PRVhDRVBUCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBzaGFyZWRfcHRyPFQ+IGF0b21pY19sb2FkKCBzaGFyZWRfcHRyPFQ+IGNvbnN0ICogcCApCit7CisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BpbmxvY2tfcG9vbDwyPjo6c2NvcGVkX2xvY2sgbG9jayggcCApOworICAgIHJldHVybiAqcDsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gaW5saW5lIHNoYXJlZF9wdHI8VD4gYXRvbWljX2xvYWRfZXhwbGljaXQoIHNoYXJlZF9wdHI8VD4gY29uc3QgKiBwLCBtZW1vcnlfb3JkZXIgLyptbyovICkKK3sKKyAgICByZXR1cm4gYXRvbWljX2xvYWQoIHAgKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCBhdG9taWNfc3RvcmUoIHNoYXJlZF9wdHI8VD4gKiBwLCBzaGFyZWRfcHRyPFQ+IHIgKQoreworICAgIG5kbmJvb3N0OjpkZXRhaWw6OnNwaW5sb2NrX3Bvb2w8Mj46OnNjb3BlZF9sb2NrIGxvY2soIHAgKTsKKyAgICBwLT5zd2FwKCByICk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSB2b2lkIGF0b21pY19zdG9yZV9leHBsaWNpdCggc2hhcmVkX3B0cjxUPiAqIHAsIHNoYXJlZF9wdHI8VD4gciwgbWVtb3J5X29yZGVyIC8qbW8qLyApCit7CisgICAgYXRvbWljX3N0b3JlKCBwLCByICk7IC8vIHN0ZDo6bW92ZSggciApCit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+IHNoYXJlZF9wdHI8VD4gYXRvbWljX2V4Y2hhbmdlKCBzaGFyZWRfcHRyPFQ+ICogcCwgc2hhcmVkX3B0cjxUPiByICkKK3sKKyAgICBuZG5ib29zdDo6ZGV0YWlsOjpzcGlubG9jayAmIHNwID0gbmRuYm9vc3Q6OmRldGFpbDo6c3BpbmxvY2tfcG9vbDwyPjo6c3BpbmxvY2tfZm9yKCBwICk7CisKKyAgICBzcC5sb2NrKCk7CisgICAgcC0+c3dhcCggciApOworICAgIHNwLnVubG9jaygpOworCisgICAgcmV0dXJuIHI7IC8vIHJldHVybiBzdGQ6Om1vdmUoIHIgKQorfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBzaGFyZWRfcHRyPFQ+IGF0b21pY19leGNoYW5nZV9leHBsaWNpdCggc2hhcmVkX3B0cjxUPiAqIHAsIHNoYXJlZF9wdHI8VD4gciwgbWVtb3J5X29yZGVyIC8qbW8qLyApCit7CisgICAgcmV0dXJuIGF0b21pY19leGNoYW5nZSggcCwgciApOyAvLyBzdGQ6Om1vdmUoIHIgKQorfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBib29sIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlKCBzaGFyZWRfcHRyPFQ+ICogcCwgc2hhcmVkX3B0cjxUPiAqIHYsIHNoYXJlZF9wdHI8VD4gdyApCit7CisgICAgbmRuYm9vc3Q6OmRldGFpbDo6c3BpbmxvY2sgJiBzcCA9IG5kbmJvb3N0OjpkZXRhaWw6OnNwaW5sb2NrX3Bvb2w8Mj46OnNwaW5sb2NrX2ZvciggcCApOworCisgICAgc3AubG9jaygpOworCisgICAgaWYoIHAtPl9pbnRlcm5hbF9lcXVpdiggKnYgKSApCisgICAgeworICAgICAgICBwLT5zd2FwKCB3ICk7CisKKyAgICAgICAgc3AudW5sb2NrKCk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIHNoYXJlZF9wdHI8VD4gdG1wKCAqcCApOworCisgICAgICAgIHNwLnVubG9jaygpOworCisgICAgICAgIHRtcC5zd2FwKCAqdiApOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCit0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgYm9vbCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9leHBsaWNpdCggc2hhcmVkX3B0cjxUPiAqIHAsIHNoYXJlZF9wdHI8VD4gKiB2LCBzaGFyZWRfcHRyPFQ+IHcsIG1lbW9yeV9vcmRlciAvKnN1Y2Nlc3MqLywgbWVtb3J5X29yZGVyIC8qZmFpbHVyZSovICkKK3sKKyAgICByZXR1cm4gYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2UoIHAsIHYsIHcgKTsgLy8gc3RkOjptb3ZlKCB3ICkKK30KKworI2VuZGlmIC8vICFkZWZpbmVkKEJPT1NUX1NQX05PX0FUT01JQ19BQ0NFU1MpCisKKy8vIGhhc2hfdmFsdWUKKwordGVtcGxhdGU8IGNsYXNzIFQgPiBzdHJ1Y3QgaGFzaDsKKwordGVtcGxhdGU8IGNsYXNzIFQgPiBzdGQ6OnNpemVfdCBoYXNoX3ZhbHVlKCBuZG5ib29zdDo6c2hhcmVkX3B0cjxUPiBjb25zdCAmIHAgKSBCT09TVF9OT0VYQ0VQVAoreworICAgIHJldHVybiBuZG5ib29zdDo6aGFzaDwgVCogPigpKCBwLmdldCgpICk7Cit9CisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAgLy8gI2lmIGRlZmluZWQoQk9PU1RfTk9fTUVNQkVSX1RFTVBMQVRFUykgJiYgIWRlZmluZWQoQk9PU1RfTVNWQzZfTUVNQkVSX1RFTVBMQVRFUykKKworI2VuZGlmICAvLyAjaWZuZGVmIEJPT1NUX1NNQVJUX1BUUl9TSEFSRURfUFRSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3Qvc3RhdGljX2Fzc2VydC5ocHAgYi9ib29zdC9zdGF0aWNfYXNzZXJ0LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjc1Njk1Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3Qvc3RhdGljX2Fzc2VydC5ocHAKQEAgLTAsMCArMSwxOTUgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIAorLy8gIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIAorLy8gIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3N0YXRpY19hc3NlcnQgZm9yIGRvY3VtZW50YXRpb24uCisKKy8qCisgUmV2aXNpb24gaGlzdG9yeToKKyAgIDAyIEF1Z3VzdCAyMDAwCisgICAgICBJbml0aWFsIHZlcnNpb24uCisqLworCisjaWZuZGVmIEJPT1NUX1NUQVRJQ19BU1NFUlRfSFBQCisjZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlRfSFBQCisKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPGJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2lmIGRlZmluZWQoX19HTlVDX18pICYmICFkZWZpbmVkKF9fR1hYX0VYUEVSSU1FTlRBTF9DWFgwWF9fKQorLy8KKy8vIFRoaXMgaXMgaG9ycmlibGUsIGJ1dCBpdCBzZWVtcyB0byBiZSB0aGUgb25seSB3ZSBjYW4gc2h1dCB1cCB0aGUKKy8vICJhbm9ueW1vdXMgdmFyaWFkaWMgbWFjcm9zIHdlcmUgaW50cm9kdWNlZCBpbiBDOTkgWy1XdmFyaWFkaWMtbWFjcm9zXSIKKy8vIHdhcm5pbmcgdGhhdCBnZXQgc3Bld2VkIG91dCBvdGhlcndpc2UgaW4gbm9uLUMrKzExIG1vZGUuCisvLworI3ByYWdtYSBHQ0Mgc3lzdGVtX2hlYWRlcgorI2VuZGlmCisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfU1RBVElDX0FTU0VSVAorIyAgaWZuZGVmIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX01BQ1JPUworIyAgICAgZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlRfTVNHKCAuLi4gKSBzdGF0aWNfYXNzZXJ0KF9fVkFfQVJHU19fKQorIyAgZWxzZQorIyAgICAgZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlRfTVNHKCBCLCBNc2cgKSBCT09TVF9TVEFUSUNfQVNTRVJUKCBCICkKKyMgIGVuZGlmCisjZWxzZQorIyAgICAgZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlRfTVNHKCBCLCBNc2cgKSBCT09TVF9TVEFUSUNfQVNTRVJUKCBCICkKKyNlbmRpZgorCisjaWZkZWYgX19CT1JMQU5EQ19fCisvLworLy8gd29ya2Fyb3VuZCBmb3IgYnVnZ3kgaW50ZWdyYWwtY29uc3RhbnQgZXhwcmVzc2lvbiBzdXBwb3J0OgorI2RlZmluZSBCT09TVF9CVUdHWV9JTlRFR1JBTF9DT05TVEFOVF9FWFBSRVNTSU9OUworI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoX19HTlVDX18gPT0gMykgJiYgKChfX0dOVUNfTUlOT1JfXyA9PSAzKSB8fCAoX19HTlVDX01JTk9SX18gPT0gNCkpCisvLyBnY2MgMy4zIGFuZCAzLjQgZG9uJ3QgcHJvZHVjZSBnb29kIGVycm9yIG1lc3NhZ2VzIHdpdGggdGhlIGRlZmF1bHQgdmVyc2lvbjoKKyMgIGRlZmluZSBCT09TVF9TQV9HQ0NfV09SS0FST1VORAorI2VuZGlmCisKKy8vCisvLyBJZiB0aGUgY29tcGlsZXIgaXNzdWVzIHdhcm5pbmdzIGFib3V0IG9sZCBDIHN0eWxlIGNhc3RzLAorLy8gdGhlbiBlbmFibGUgdGhpczoKKy8vCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKChfX0dOVUNfXyA+IDMpIHx8ICgoX19HTlVDX18gPT0gMykgJiYgKF9fR05VQ19NSU5PUl9fID49IDQpKSkKKyMgIGlmbmRlZiBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MKKyMgICAgIGRlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUX0JPT0xfQ0FTVCggLi4uICkgKChfX1ZBX0FSR1NfXykgPT0gMCA/IGZhbHNlIDogdHJ1ZSkKKyMgIGVsc2UKKyMgICAgIGRlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUX0JPT0xfQ0FTVCggeCApICgoeCkgPT0gMCA/IGZhbHNlIDogdHJ1ZSkKKyMgIGVuZGlmCisjZWxzZQorIyAgaWZuZGVmIEJPT1NUX05PX0NYWDExX1ZBUklBRElDX01BQ1JPUworIyAgICAgZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlRfQk9PTF9DQVNUKCAuLi4gKSAoYm9vbCkoX19WQV9BUkdTX18pCisjICBlbHNlCisjICAgICBkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVF9CT09MX0NBU1QoeCkgKGJvb2wpKHgpCisjICBlbmRpZgorI2VuZGlmCisvLworLy8gSWYgdGhlIGNvbXBpbGVyIHdhcm5zIGFib3V0IHVudXNlZCB0eXBlZGVmcyB0aGVuIGVuYWJsZSB0aGlzOgorLy8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoKF9fR05VQ19fID4gNCkgfHwgKChfX0dOVUNfXyA9PSA0KSAmJiAoX19HTlVDX01JTk9SX18gPj0gNykpKQorIyAgZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlRfVU5VU0VEX0FUVFJJQlVURSBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQorI2Vsc2UKKyMgIGRlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUX1VOVVNFRF9BVFRSSUJVVEUKKyNlbmRpZgorCisjaWZuZGVmIEJPT1NUX05PX0NYWDExX1NUQVRJQ19BU1NFUlQKKyMgIGlmbmRlZiBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MKKyMgICAgIGRlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUKCAuLi4gKSBzdGF0aWNfYXNzZXJ0KF9fVkFfQVJHU19fLCAjX19WQV9BUkdTX18pCisjICBlbHNlCisjICAgICBkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVCggQiApIHN0YXRpY19hc3NlcnQoQiwgI0IpCisjICBlbmRpZgorI2Vsc2UKKworbmFtZXNwYWNlIG5kbmJvb3N0eworCisvLyBIUCBhQ0MgY2Fubm90IGRlYWwgd2l0aCBtaXNzaW5nIG5hbWVzIGZvciB0ZW1wbGF0ZSB2YWx1ZSBwYXJhbWV0ZXJzCit0ZW1wbGF0ZSA8Ym9vbCB4PiBzdHJ1Y3QgU1RBVElDX0FTU0VSVElPTl9GQUlMVVJFOworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgU1RBVElDX0FTU0VSVElPTl9GQUlMVVJFPHRydWU+IHsgZW51bSB7IHZhbHVlID0gMSB9OyB9OworCisvLyBIUCBhQ0MgY2Fubm90IGRlYWwgd2l0aCBtaXNzaW5nIG5hbWVzIGZvciB0ZW1wbGF0ZSB2YWx1ZSBwYXJhbWV0ZXJzCit0ZW1wbGF0ZTxpbnQgeD4gc3RydWN0IHN0YXRpY19hc3NlcnRfdGVzdHt9OworCit9CisKKy8vCisvLyBJbXBsaWNpdCBpbnN0YW50aWF0aW9uIHJlcXVpcmVzIHRoYXQgYWxsIG1lbWJlciBkZWNsYXJhdGlvbnMgYmUKKy8vIGluc3RhbnRpYXRlZCwgYnV0IHRoYXQgdGhlIGRlZmluaXRpb25zIGFyZSAqbm90KiBpbnN0YW50aWF0ZWQuCisvLworLy8gSXQncyBub3QgcGFydGljdWxhcmx5IGNsZWFyIGhvdyB0aGlzIGFwcGxpZXMgdG8gZW51bSdzIG9yIHR5cGVkZWZzOworLy8gYm90aCBhcmUgZGVzY3JpYmVkIGFzIGRlY2xhcmF0aW9ucyBbNy4xLjNdIGFuZCBbNy4yXSBpbiB0aGUgc3RhbmRhcmQsCisvLyBob3dldmVyIHNvbWUgY29tcGlsZXJzIHVzZSAiZGVsYXllZCBldmFsdWF0aW9uIiBvZiBvbmUgb3IgbW9yZSBvZgorLy8gdGhlc2Ugd2hlbiBpbXBsaWNpdGx5IGluc3RhbnRpYXRpbmcgdGVtcGxhdGVzLiAgV2UgdXNlIHR5cGVkZWYgZGVjbGFyYXRpb25zCisvLyBieSBkZWZhdWx0LCBidXQgdHJ5IGRlZmluaW5nIEJPT1NUX1VTRV9FTlVNX1NUQVRJQ19BU1NFUlQgaWYgdGhlIGVudW0KKy8vIHZlcnNpb24gZ2V0cyBiZXR0ZXIgcmVzdWx0cyBmcm9tIHlvdXIgY29tcGlsZXIuLi4KKy8vCisvLyBJbXBsZW1lbnRhdGlvbjoKKy8vIEJvdGggb2YgdGhlc2UgdmVyc2lvbnMgcmVseSBvbiBzaXplb2YoaW5jb21wbGV0ZV90eXBlKSBnZW5lcmF0aW5nIGFuIGVycm9yCisvLyBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgdGhlIGluY29tcGxldGUgdHlwZS4gIFdlIHVzZQorLy8gIlNUQVRJQ19BU1NFUlRJT05fRkFJTFVSRSIgYXMgdGhlIHR5cGUgbmFtZSBoZXJlIHRvIGdlbmVyYXRlCisvLyBhbiBleWUgY2F0Y2hpbmcgZXJyb3IgbWVzc2FnZS4gIFRoZSByZXN1bHQgb2YgdGhlIHNpemVvZiBleHByZXNzaW9uIGlzIGVpdGhlcgorLy8gdXNlZCBhcyBhbiBlbnVtIGluaXRpYWxpc2VyLCBvciBhcyBhIHRlbXBsYXRlIGFyZ3VtZW50IGRlcGVuZGluZyB3aGljaCB2ZXJzaW9uCisvLyBpcyBpbiB1c2UuLi4KKy8vIE5vdGUgdGhhdCB0aGUgYXJndW1lbnQgdG8gdGhlIGFzc2VydCBpcyBleHBsaWNpdGx5IGNhc3QgdG8gYm9vbCB1c2luZyBvbGQtCisvLyBzdHlsZSBjYXN0czogdG9vIG1hbnkgY29tcGlsZXJzIGN1cnJlbnRseSBoYXZlIHByb2JsZW1zIHdpdGggc3RhdGljX2Nhc3QKKy8vIHdoZW4gdXNlZCBpbnNpZGUgaW50ZWdyYWwgY29uc3RhbnQgZXhwcmVzc2lvbnMuCisvLworI2lmICFkZWZpbmVkKEJPT1NUX0JVR0dZX0lOVEVHUkFMX0NPTlNUQU5UX0VYUFJFU1NJT05TKQorCisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiAoQk9PU1RfTVNWQyA8IDEzMDApCisvLyBfX0xJTkVfXyBtYWNybyBicm9rZW4gd2hlbiAtWkkgaXMgdXNlZCBzZWUgUTE5OTA1NworLy8gZm9ydHVuYXRlbHkgTVNWQyBpZ25vcmVzIGR1cGxpY2F0ZSB0eXBlZGVmJ3MuCisjZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlQoIEIgKSBcCisgICB0eXBlZGVmIDo6bmRuYm9vc3Q6OnN0YXRpY19hc3NlcnRfdGVzdDxcCisgICAgICBzaXplb2YoOjpuZG5ib29zdDo6U1RBVElDX0FTU0VSVElPTl9GQUlMVVJFPCAoYm9vbCkoIEIgKSA+KVwKKyAgICAgID4gYm9vc3Rfc3RhdGljX2Fzc2VydF90eXBlZGVmXworI2VsaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX1ZBUklBRElDX01BQ1JPUykKKyNkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVCggQiApIFwKKyAgIHR5cGVkZWYgOjpuZG5ib29zdDo6c3RhdGljX2Fzc2VydF90ZXN0PFwKKyAgICAgIHNpemVvZig6Om5kbmJvb3N0OjpTVEFUSUNfQVNTRVJUSU9OX0ZBSUxVUkU8IEJPT1NUX1NUQVRJQ19BU1NFUlRfQk9PTF9DQVNUICggQiApID4pPlwKKyAgICAgICAgIEJPT1NUX0pPSU4oYm9vc3Rfc3RhdGljX2Fzc2VydF90eXBlZGVmXywgX19DT1VOVEVSX18pCisjZWxpZiBkZWZpbmVkKEJPT1NUX01TVkMpCisjZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlQoLi4uKSBcCisgICB0eXBlZGVmIDo6bmRuYm9vc3Q6OnN0YXRpY19hc3NlcnRfdGVzdDxcCisgICAgICBzaXplb2YoOjpuZG5ib29zdDo6U1RBVElDX0FTU0VSVElPTl9GQUlMVVJFPCBCT09TVF9TVEFUSUNfQVNTRVJUX0JPT0xfQ0FTVCAoX19WQV9BUkdTX18pID4pPlwKKyAgICAgICAgIEJPT1NUX0pPSU4oYm9vc3Rfc3RhdGljX2Fzc2VydF90eXBlZGVmXywgX19DT1VOVEVSX18pCisjZWxpZiAoZGVmaW5lZChCT09TVF9JTlRFTF9DWFhfVkVSU0lPTikgfHwgZGVmaW5lZChCT09TVF9TQV9HQ0NfV09SS0FST1VORCkpICAmJiBkZWZpbmVkKEJPT1NUX05PX0NYWDExX1ZBUklBRElDX01BQ1JPUykKKy8vIGFndXJ0IDE1L3NlcC8wMjogYSBzcGVjaWFsIGNhcmUgaXMgbmVlZGVkIHRvIGZvcmNlIEludGVsIEMrKyBpc3N1ZSBhbiBlcnJvciAKKy8vIGluc3RlYWQgb2Ygd2FybmluZyBpbiBjYXNlIG9mIGZhaWx1cmUKKyMgZGVmaW5lIEJPT1NUX1NUQVRJQ19BU1NFUlQoIEIgKSBcCisgICAgdHlwZWRlZiBjaGFyIEJPT1NUX0pPSU4oYm9vc3Rfc3RhdGljX2Fzc2VydF90eXBlZGVmXywgX19MSU5FX18pIFwKKyAgICAgICAgWyA6Om5kbmJvb3N0OjpTVEFUSUNfQVNTRVJUSU9OX0ZBSUxVUkU8IEJPT1NUX1NUQVRJQ19BU1NFUlRfQk9PTF9DQVNUKCBCICkgPjo6dmFsdWUgXQorI2VsaWYgKGRlZmluZWQoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04pIHx8IGRlZmluZWQoQk9PU1RfU0FfR0NDX1dPUktBUk9VTkQpKSAgJiYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TKQorLy8gYWd1cnQgMTUvc2VwLzAyOiBhIHNwZWNpYWwgY2FyZSBpcyBuZWVkZWQgdG8gZm9yY2UgSW50ZWwgQysrIGlzc3VlIGFuIGVycm9yIAorLy8gaW5zdGVhZCBvZiB3YXJuaW5nIGluIGNhc2Ugb2YgZmFpbHVyZQorIyBkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVCguLi4pIFwKKyAgICB0eXBlZGVmIGNoYXIgQk9PU1RfSk9JTihib29zdF9zdGF0aWNfYXNzZXJ0X3R5cGVkZWZfLCBfX0xJTkVfXykgXAorICAgICAgICBbIDo6bmRuYm9vc3Q6OlNUQVRJQ19BU1NFUlRJT05fRkFJTFVSRTwgQk9PU1RfU1RBVElDX0FTU0VSVF9CT09MX0NBU1QoIF9fVkFfQVJHU19fICkgPjo6dmFsdWUgXQorI2VsaWYgZGVmaW5lZChfX3NnaSkKKy8vIHNwZWNpYWwgdmVyc2lvbiBmb3IgU0dJIE1JUFNwcm8gY29tcGlsZXIKKyNkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVCggQiApIFwKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBcCisgICAgIEJPT1NUX0pPSU4oYm9vc3Rfc3RhdGljX2Fzc2VydF90ZXN0XywgX19MSU5FX18pID0gKCBCICkpOyBcCisgICB0eXBlZGVmIDo6bmRuYm9vc3Q6OnN0YXRpY19hc3NlcnRfdGVzdDxcCisgICAgIHNpemVvZig6Om5kbmJvb3N0OjpTVEFUSUNfQVNTRVJUSU9OX0ZBSUxVUkU8IFwKKyAgICAgICBCT09TVF9KT0lOKGJvb3N0X3N0YXRpY19hc3NlcnRfdGVzdF8sIF9fTElORV9fKSA+KT5cCisgICAgICAgICBCT09TVF9KT0lOKGJvb3N0X3N0YXRpY19hc3NlcnRfdHlwZWRlZl8sIF9fTElORV9fKQorI2VsaWYgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8PSAweDMwMDMpCisvLyBzcGVjaWFsIHZlcnNpb24gZm9yIENvZGVXYXJyaW9yIDw9IDgueAorI2RlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUKCBCICkgXAorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGludCwgXAorICAgICBCT09TVF9KT0lOKGJvb3N0X3N0YXRpY19hc3NlcnRfdGVzdF8sIF9fTElORV9fKSA9IFwKKyAgICAgICBzaXplb2YoOjpuZG5ib29zdDo6U1RBVElDX0FTU0VSVElPTl9GQUlMVVJFPCBCT09TVF9TVEFUSUNfQVNTRVJUX0JPT0xfQ0FTVCggQiApID4pICkKKyNlbHNlCisvLyBnZW5lcmljIHZlcnNpb24KKyMgIGlmbmRlZiBCT09TVF9OT19DWFgxMV9WQVJJQURJQ19NQUNST1MKKyMgICAgIGRlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUKCAuLi4gKSBcCisgICAgICAgICB0eXBlZGVmIDo6bmRuYm9vc3Q6OnN0YXRpY19hc3NlcnRfdGVzdDxcCisgICAgICAgICAgICBzaXplb2YoOjpuZG5ib29zdDo6U1RBVElDX0FTU0VSVElPTl9GQUlMVVJFPCBCT09TVF9TVEFUSUNfQVNTRVJUX0JPT0xfQ0FTVCggX19WQV9BUkdTX18gKSA+KT5cCisgICAgICAgICAgICAgICBCT09TVF9KT0lOKGJvb3N0X3N0YXRpY19hc3NlcnRfdHlwZWRlZl8sIF9fTElORV9fKSBCT09TVF9TVEFUSUNfQVNTRVJUX1VOVVNFRF9BVFRSSUJVVEUKKyMgIGVsc2UKKyMgICAgIGRlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUKCBCICkgXAorICAgICAgICAgdHlwZWRlZiA6Om5kbmJvb3N0OjpzdGF0aWNfYXNzZXJ0X3Rlc3Q8XAorICAgICAgICAgICAgc2l6ZW9mKDo6bmRuYm9vc3Q6OlNUQVRJQ19BU1NFUlRJT05fRkFJTFVSRTwgQk9PU1RfU1RBVElDX0FTU0VSVF9CT09MX0NBU1QoIEIgKSA+KT5cCisgICAgICAgICAgICAgICBCT09TVF9KT0lOKGJvb3N0X3N0YXRpY19hc3NlcnRfdHlwZWRlZl8sIF9fTElORV9fKSBCT09TVF9TVEFUSUNfQVNTRVJUX1VOVVNFRF9BVFRSSUJVVEUKKyMgIGVuZGlmCisjZW5kaWYKKworI2Vsc2UKKy8vIGFsdGVybmF0aXZlIGVudW0gYmFzZWQgaW1wbGVtZW50YXRpb246CisjICBpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfVkFSSUFESUNfTUFDUk9TCisjICAgIGRlZmluZSBCT09TVF9TVEFUSUNfQVNTRVJUKCAuLi4gKSBcCisgICAgICAgICBlbnVtIHsgQk9PU1RfSk9JTihib29zdF9zdGF0aWNfYXNzZXJ0X2VudW1fLCBfX0xJTkVfXykgXAorICAgICAgICAgICAgPSBzaXplb2YoOjpuZG5ib29zdDo6U1RBVElDX0FTU0VSVElPTl9GQUlMVVJFPCAoYm9vbCkoIF9fVkFfQVJHU19fICkgPikgfQorIyAgZWxzZQorIyAgICBkZWZpbmUgQk9PU1RfU1RBVElDX0FTU0VSVChCKSBcCisgICAgICAgICBlbnVtIHsgQk9PU1RfSk9JTihib29zdF9zdGF0aWNfYXNzZXJ0X2VudW1fLCBfX0xJTkVfXykgXAorICAgICAgICAgICAgPSBzaXplb2YoOjpuZG5ib29zdDo6U1RBVElDX0FTU0VSVElPTl9GQUlMVVJFPCAoYm9vbCkoIEIgKSA+KSB9CisjICBlbmRpZgorI2VuZGlmCisjZW5kaWYgLy8gZGVmaW5lZChCT09TVF9OT19DWFgxMV9TVEFUSUNfQVNTRVJUKQorCisjZW5kaWYgLy8gQk9PU1RfU1RBVElDX0FTU0VSVF9IUFAKKworCmRpZmYgLS1naXQgYS9ib29zdC90aHJvd19leGNlcHRpb24uaHBwIGIvYm9vc3QvdGhyb3dfZXhjZXB0aW9uLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NGI4MmZjCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdGhyb3dfZXhjZXB0aW9uLmhwcApAQCAtMCwwICsxLDEwMCBAQAorI2lmbmRlZiBVVUlEX0FBMTVFNzRBODU2RjExRTA4QjhEOTNGMjQ4MjQwMTlCCisjZGVmaW5lIFVVSURfQUExNUU3NEE4NTZGMTFFMDhCOEQ5M0YyNDgyNDAxOUIKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChCT09TVF9FWENFUFRJT05fRU5BQkxFX1dBUk5JTkdTKQorI3ByYWdtYSBHQ0Mgc3lzdGVtX2hlYWRlcgorI2VuZGlmCisjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgIWRlZmluZWQoQk9PU1RfRVhDRVBUSU9OX0VOQUJMRV9XQVJOSU5HUykKKyNwcmFnbWEgd2FybmluZyhwdXNoLDEpCisjZW5kaWYKKworLy8gTVMgY29tcGF0aWJsZSBjb21waWxlcnMgc3VwcG9ydCAjcHJhZ21hIG9uY2UKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA+PSAxMDIwKQorIyBwcmFnbWEgb25jZQorI2VuZGlmCisKKy8vCisvLyAgYm9vc3QvdGhyb3dfZXhjZXB0aW9uLmhwcAorLy8KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDIgUGV0ZXIgRGltb3YgYW5kIE11bHRpIE1lZGlhIEx0ZC4KKy8vICBDb3B5cmlnaHQgKGMpIDIwMDgtMjAwOSBFbWlsIERvdGNoZXZza2kgYW5kIFJldmVyZ2UgU3R1ZGlvcywgSW5jLgorLy8KKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUKKy8vICBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKy8vCisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy91dGlsaXR5L3Rocm93X2V4Y2VwdGlvbi5odG1sCisvLworCisjaW5jbHVkZSA8Ym9vc3QvZXhjZXB0aW9uL2RldGFpbC9hdHRyaWJ1dGVfbm9yZXR1cm4uaHBwPgorI2luY2x1ZGUgPGJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPGV4Y2VwdGlvbj4KKworI2lmICFkZWZpbmVkKCBCT09TVF9FWENFUFRJT05fRElTQUJMRSApICYmIGRlZmluZWQoIF9fQk9STEFORENfXyApICYmIEJPT1NUX1dPUktBUk9VTkQoIF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTkzKSApCisjIGRlZmluZSBCT09TVF9FWENFUFRJT05fRElTQUJMRQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZCggQk9PU1RfRVhDRVBUSU9OX0RJU0FCTEUgKSAmJiBkZWZpbmVkKCBCT09TVF9NU1ZDICkgJiYgQk9PU1RfV09SS0FST1VORCggQk9PU1RfTVNWQywgPCAxMzEwICkKKyMgZGVmaW5lIEJPT1NUX0VYQ0VQVElPTl9ESVNBQkxFCisjZW5kaWYKKworI2lmICFkZWZpbmVkKCBCT09TVF9FWENFUFRJT05fRElTQUJMRSApCisjIGluY2x1ZGUgPGJvb3N0L2V4Y2VwdGlvbi9leGNlcHRpb24uaHBwPgorIyBpbmNsdWRlIDxib29zdC9jdXJyZW50X2Z1bmN0aW9uLmhwcD4KKyMgZGVmaW5lIEJPT1NUX1RIUk9XX0VYQ0VQVElPTih4KSA6Om5kbmJvb3N0OjpleGNlcHRpb25fZGV0YWlsOjp0aHJvd19leGNlcHRpb25fKHgsQk9PU1RfQ1VSUkVOVF9GVU5DVElPTixfX0ZJTEVfXyxfX0xJTkVfXykKKyNlbHNlCisjIGRlZmluZSBCT09TVF9USFJPV19FWENFUFRJT04oeCkgOjpuZG5ib29zdDo6dGhyb3dfZXhjZXB0aW9uKHgpCisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0Cit7CisjaWZkZWYgQk9PU1RfTk9fRVhDRVBUSU9OUworCit2b2lkIHRocm93X2V4Y2VwdGlvbiggc3RkOjpleGNlcHRpb24gY29uc3QgJiBlICk7IC8vIHVzZXIgZGVmaW5lZAorCisjZWxzZQorCitpbmxpbmUgdm9pZCB0aHJvd19leGNlcHRpb25fYXNzZXJ0X2NvbXBhdGliaWxpdHkoIHN0ZDo6ZXhjZXB0aW9uIGNvbnN0ICYgKSB7IH0KKwordGVtcGxhdGU8Y2xhc3MgRT4gQk9PU1RfQVRUUklCVVRFX05PUkVUVVJOIGlubGluZSB2b2lkIHRocm93X2V4Y2VwdGlvbiggRSBjb25zdCAmIGUgKQoreworICAgIC8vQWxsIGJvb3N0IGV4Y2VwdGlvbnMgYXJlIHJlcXVpcmVkIHRvIGRlcml2ZSBmcm9tIHN0ZDo6ZXhjZXB0aW9uLAorICAgIC8vdG8gZW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCBCT09TVF9OT19FWENFUFRJT05TLgorICAgIHRocm93X2V4Y2VwdGlvbl9hc3NlcnRfY29tcGF0aWJpbGl0eShlKTsKKworI2lmbmRlZiBCT09TVF9FWENFUFRJT05fRElTQUJMRQorICAgIHRocm93IGVuYWJsZV9jdXJyZW50X2V4Y2VwdGlvbihlbmFibGVfZXJyb3JfaW5mbyhlKSk7CisjZWxzZQorICAgIHRocm93IGU7CisjZW5kaWYKK30KKworI2VuZGlmCisKKyNpZiAhZGVmaW5lZCggQk9PU1RfRVhDRVBUSU9OX0RJU0FCTEUgKQorICAgIG5hbWVzcGFjZQorICAgIGV4Y2VwdGlvbl9kZXRhaWwKKyAgICB7CisgICAgICAgIHRlbXBsYXRlIDxjbGFzcyBFPgorICAgICAgICBCT09TVF9BVFRSSUJVVEVfTk9SRVRVUk4KKyAgICAgICAgdm9pZAorICAgICAgICB0aHJvd19leGNlcHRpb25fKCBFIGNvbnN0ICYgeCwgY2hhciBjb25zdCAqIGN1cnJlbnRfZnVuY3Rpb24sIGNoYXIgY29uc3QgKiBmaWxlLCBpbnQgbGluZSApCisgICAgICAgIHsKKyAgICAgICAgICAgIG5kbmJvb3N0Ojp0aHJvd19leGNlcHRpb24oCisgICAgICAgICAgICAgICAgc2V0X2luZm8oCisgICAgICAgICAgICAgICAgICAgIHNldF9pbmZvKAorICAgICAgICAgICAgICAgICAgICAgICAgc2V0X2luZm8oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlX2Vycm9yX2luZm8oeCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dfZnVuY3Rpb24oY3VycmVudF9mdW5jdGlvbikpLAorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dfZmlsZShmaWxlKSksCisgICAgICAgICAgICAgICAgICAgIHRocm93X2xpbmUobGluZSkpKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2lmIGRlZmluZWQoX01TQ19WRVIpICYmICFkZWZpbmVkKEJPT1NUX0VYQ0VQVElPTl9FTkFCTEVfV0FSTklOR1MpCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGUuaHBwIGIvYm9vc3QvdHlwZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U3MjZmOAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGUuaHBwCkBAIC0wLDAgKzEsMTggQEAKKy8vIChDKSBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMS4KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworI2lmbmRlZiBCT09TVF9UWVBFX0RXQTIwMDEwMTIwX0hQUAorIyBkZWZpbmUgQk9PU1RfVFlQRV9EV0EyMDAxMDEyMF9IUFAKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworICAvLyBKdXN0IGEgc2ltcGxlICJ0eXBlIGVudmVsb3BlIi4gVXNlZnVsIGluIHZhcmlvdXMgY29udGV4dHMsIG1vc3RseSB0byB3b3JrCisgIC8vIGFyb3VuZCBzb21lIE1TVkMgZGVmaWNpZW5jaWVzLgorICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgc3RydWN0IHR5cGUge307CisKK30KKworI2VuZGlmIC8vIEJPT1NUX1RZUEVfRFdBMjAwMTAxMjBfSFBQCmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9hZGRfbHZhbHVlX3JlZmVyZW5jZS5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9hZGRfbHZhbHVlX3JlZmVyZW5jZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVlYThkZgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2FkZF9sdmFsdWVfcmVmZXJlbmNlLmhwcApAQCAtMCwwICsxLDI2IEBACisvLyAgQ29weXJpZ2h0IDIwMTAgSm9obiBNYWRkb2NrCisKKy8vICBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAorCisjaWZuZGVmIEJPT1NUX1RZUEVfVFJBSVRTX0VYVF9BRERfTFZBTFVFX1JFRkVSRU5DRV9fSFBQCisjZGVmaW5lIEJPT1NUX1RZUEVfVFJBSVRTX0VYVF9BRERfTFZBTFVFX1JFRkVSRU5DRV9fSFBQCisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9hZGRfcmVmZXJlbmNlLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0eworCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9ERUYxKGFkZF9sdmFsdWVfcmVmZXJlbmNlLFQsdHlwZW5hbWUgbmRuYm9vc3Q6OmFkZF9yZWZlcmVuY2U8VD46OnR5cGUpCisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGFkZF9sdmFsdWVfcmVmZXJlbmNlLFQmJixUJikKKyNlbmRpZgorCit9CisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAgLy8gQk9PU1RfVFlQRV9UUkFJVFNfRVhUX0FERF9MVkFMVUVfUkVGRVJFTkNFX19IUFAKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2FkZF9yZWZlcmVuY2UuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvYWRkX3JlZmVyZW5jZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ5ODQ0ZQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2FkZF9yZWZlcmVuY2UuaHBwCkBAIC0wLDAgKzEsMTA3IEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0FERF9SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0FERF9SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorI2luY2x1ZGUgPGJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgZGV0YWlsIHsKKworI2lmIGRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgJiYgZGVmaW5lZChCT09TVF9NU1ZDNl9NRU1CRVJfVEVNUExBVEVTKQorCit0ZW1wbGF0ZSA8Ym9vbCB4Pgorc3RydWN0IHJlZmVyZW5jZV9hZGRlcgoreworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBUJiB0eXBlOworICAgIH07Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IHJlZmVyZW5jZV9hZGRlcjx0cnVlPgoreworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgfTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGFkZF9yZWZlcmVuY2VfaW1wbAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVmZXJlbmNlX2FkZGVyPAorICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxUPjo6dmFsdWUKKyAgICAgICAgPjo6dGVtcGxhdGUgcmVzdWx0XzxUPiByZXN1bHQ7CisKKyAgICB0eXBlZGVmIHR5cGVuYW1lIHJlc3VsdDo6dHlwZSB0eXBlOworfTsKKworI2Vsc2UKKy8vCisvLyBXZSBjYW4ndCBmaWx0ZXIgb3V0IHJ2YWx1ZV9yZWZlcmVuY2VzIGF0IHRoZSBzYW1lIGxldmVsIGFzCisvLyByZWZlcmVuY2VzIG9yIHdlIGdldCBhbWJpZ3VpdGllcyBmcm9tIG1zdmM6CisvLworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBhZGRfcmVmZXJlbmNlX3J2YWx1ZV9sYXllcgoreworICAgIHR5cGVkZWYgVCYgdHlwZTsKK307CisKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGFkZF9yZWZlcmVuY2VfcnZhbHVlX2xheWVyPFQmJj4KK3sKKyAgICB0eXBlZGVmIFQmJiB0eXBlOworfTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBhZGRfcmVmZXJlbmNlX2ltcGwKK3sKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF9yZWZlcmVuY2VfcnZhbHVlX2xheWVyPFQ+Ojp0eXBlIHR5cGU7Cit9OworCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0lNUExfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsYWRkX3JlZmVyZW5jZSxUJixUJikKKyNlbmRpZgorCisjZW5kaWYKKworLy8gdGhlc2UgZnVsbCBzcGVjaWFsaXNhdGlvbnMgYXJlIGFsd2F5cyByZXF1aXJlZDoKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0lNUExfU1BFQzEoYWRkX3JlZmVyZW5jZSx2b2lkLHZvaWQpCisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9JTVBMX1NQRUMxKGFkZF9yZWZlcmVuY2Usdm9pZCBjb25zdCx2b2lkIGNvbnN0KQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfSU1QTF9TUEVDMShhZGRfcmVmZXJlbmNlLHZvaWQgdm9sYXRpbGUsdm9pZCB2b2xhdGlsZSkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0lNUExfU1BFQzEoYWRkX3JlZmVyZW5jZSx2b2lkIGNvbnN0IHZvbGF0aWxlLHZvaWQgY29uc3Qgdm9sYXRpbGUpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0RFRjEoYWRkX3JlZmVyZW5jZSxULHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OmFkZF9yZWZlcmVuY2VfaW1wbDxUPjo6dHlwZSkKKworLy8gYWd1cnQsIDA3L21hci8wMzogd29ya2Fyb3VuZCBCb3JsYW5kJ3MgaWxsLWZvcm1lZCBzZW5zaXRpdml0eSB0byBhbiBhZGRpdGlvbmFsCisvLyBsZXZlbCBvZiBpbmRpcmVjdGlvbiwgaGVyZQorI2lmIEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA8IDB4NjAwKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsYWRkX3JlZmVyZW5jZSxUJixUJikKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfQUREX1JFRkVSRU5DRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2FkZF9ydmFsdWVfcmVmZXJlbmNlLmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL2FkZF9ydmFsdWVfcmVmZXJlbmNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTg4ODZmCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvYWRkX3J2YWx1ZV9yZWZlcmVuY2UuaHBwCkBAIC0wLDAgKzEsNjYgQEAKKy8vICBhZGRfcnZhbHVlX3JlZmVyZW5jZS5ocHAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKy8vICBDb3B5cmlnaHQgMjAxMCBWaWNlbnRlIEouIEJvdGV0IEVzY3JpYmEKKworLy8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CisKKyNpZm5kZWYgQk9PU1RfVFlQRV9UUkFJVFNfRVhUX0FERF9SVkFMVUVfUkVGRVJFTkNFX19IUFAKKyNkZWZpbmUgQk9PU1RfVFlQRV9UUkFJVFNfRVhUX0FERF9SVkFMVUVfUkVGRVJFTkNFX19IUFAKKworI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy5ocHA+CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc192b2lkLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwPgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgQysrMDMgaW1wbGVtZW50YXRpb24gb2YgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLyAgICAgICAgICAgICAyMC45LjcuMiBSZWZlcmVuY2UgbW9kaWZpY2F0aW9ucyBbbWV0YS50cmFucy5yZWZdICAgICAgICAgICAgICAvLworLy8gICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXR0ZW4gYnkgVmljZW50ZSBKLiBCb3RldCBFc2NyaWJhICAgICAgICAgICAgICAgLy8KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisvLyBJZiBUIG5hbWVzIGFuIG9iamVjdCBvciBmdW5jdGlvbiB0eXBlIHRoZW4gdGhlIG1lbWJlciB0eXBlZGVmIHR5cGUKKy8vIHNoYWxsIG5hbWUgVCYmOyBvdGhlcndpc2UsIHR5cGUgc2hhbGwgbmFtZSBULiBbIE5vdGU6IFRoaXMgcnVsZSByZWZsZWN0cworLy8gdGhlIHNlbWFudGljcyBvZiByZWZlcmVuY2UgY29sbGFwc2luZy4gRm9yIGV4YW1wbGUsIHdoZW4gYSB0eXBlIFQgbmFtZXMKKy8vIGEgdHlwZSBUMSYsIHRoZSB0eXBlIGFkZF9ydmFsdWVfcmVmZXJlbmNlPFQ+Ojp0eXBlIGlzIG5vdCBhbiBydmFsdWUKKy8vIHJlZmVyZW5jZS4gLWVuZCBub3RlIF0KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSB0eXBlX3RyYWl0c19kZXRhaWwgeworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQsIGJvb2wgYj4KKyAgICBzdHJ1Y3QgYWRkX3J2YWx1ZV9yZWZlcmVuY2VfaGVscGVyCisgICAgeyB0eXBlZGVmIFQgICB0eXBlOyB9OworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMpICYmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgc3RydWN0IGFkZF9ydmFsdWVfcmVmZXJlbmNlX2hlbHBlcjxULCB0cnVlPgorICAgIHsKKyAgICAgICAgdHlwZWRlZiBUJiYgICB0eXBlOworICAgIH07CisjZW5kaWYKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIHN0cnVjdCBhZGRfcnZhbHVlX3JlZmVyZW5jZV9pbXAKKyAgICB7CisgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6dHlwZV90cmFpdHNfZGV0YWlsOjphZGRfcnZhbHVlX3JlZmVyZW5jZV9oZWxwZXIKKyAgICAgICAgICAgICAgICAgIDxULCAoaXNfdm9pZDxUPjo6dmFsdWUgPT0gZmFsc2UgJiYgaXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSA9PSBmYWxzZSkgPjo6dHlwZSB0eXBlOworICAgIH07CisKK30KKworQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfREVGMShhZGRfcnZhbHVlX3JlZmVyZW5jZSxULHR5cGVuYW1lIG5kbmJvb3N0Ojp0eXBlX3RyYWl0c19kZXRhaWw6OmFkZF9ydmFsdWVfcmVmZXJlbmNlX2ltcDxUPjo6dHlwZSkKKworfSAgLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAgLy8gQk9PU1RfVFlQRV9UUkFJVFNfRVhUX0FERF9SVkFMVUVfUkVGRVJFTkNFX19IUFAKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvYWxpZ25tZW50X29mLmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL2FsaWdubWVudF9vZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU3ZTQ1OAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2FsaWdubWVudF9vZi5ocHAKQEAgLTAsMCArMSwxMjggQEAKKworLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0FMSUdOTUVOVF9PRl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfQUxJR05NRU5UX09GX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxjc3RkZGVmPgorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvc2l6ZV90X3RyYWl0X2RlZi5ocHA+CisKKyNpZmRlZiBCT09TVF9NU1ZDCisjICAgcHJhZ21hIHdhcm5pbmcocHVzaCkKKyMgICBwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0MTIxIDQ1MTIpIC8vIGFsaWdubWVudCBpcyBzZW5zaXRpdmUgdG8gcGFja2luZworI2VuZGlmCisjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIChfX0JPUkxBTkRDX18gPCAweDYwMCkKKyNwcmFnbWEgb3B0aW9uIHB1c2ggLVZ4LSAtVmUtCisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBhbGlnbm1lbnRfb2Y7CisKKy8vIGdldCB0aGUgYWxpZ25tZW50IG9mIHNvbWUgYXJiaXRyYXJ5IHR5cGU6CituYW1lc3BhY2UgZGV0YWlsIHsKKworI2lmZGVmIEJPT1NUX01TVkMKKyNwcmFnbWEgd2FybmluZyhwdXNoKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDMyNCkgLy8gc3RydWN0dXJlIHdhcyBwYWRkZWQgZHVlIHRvIF9fZGVjbHNwZWMoYWxpZ24oKSkKKyNlbmRpZgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgYWxpZ25tZW50X29mX2hhY2sKK3sKKyAgICBjaGFyIGM7CisgICAgVCB0OworICAgIGFsaWdubWVudF9vZl9oYWNrKCk7Cit9OworI2lmZGVmIEJPT1NUX01TVkMKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKwordGVtcGxhdGUgPHVuc2lnbmVkIEEsIHVuc2lnbmVkIFM+CitzdHJ1Y3QgYWxpZ25tZW50X2xvZ2ljCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCB2YWx1ZSA9IEEgPCBTID8gQSA6IFMpOworfTsKKworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgYWxpZ25tZW50X29mX2ltcGwKK3sKKyNpZiBkZWZpbmVkKEJPT1NUX01TVkMpICYmIChCT09TVF9NU1ZDID49IDE0MDApCisgICAgLy8KKyAgICAvLyBXaXRoIE1TVkMgYm90aCB0aGUgbmF0aXZlIF9fYWxpZ25vZiBvcGVyYXRvcgorICAgIC8vIGFuZCBvdXIgb3duIGxvZ2ljIGdldHMgdGhpbmdzIHdyb25nIGZyb20gdGltZSB0byB0aW1lIDotKAorICAgIC8vIFVzaW5nIGEgY29tYmluYXRpb24gb2YgdGhlIHR3byBzZWVtcyB0byBtYWtlIHRoZSBtb3N0IG9mIGEgYmFkIGpvYjoKKyAgICAvLworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgdmFsdWUgPQorICAgICAgICAoOjpuZG5ib29zdDo6ZGV0YWlsOjphbGlnbm1lbnRfbG9naWM8CisgICAgICAgICAgICBzaXplb2YoOjpuZG5ib29zdDo6ZGV0YWlsOjphbGlnbm1lbnRfb2ZfaGFjazxUPikgLSBzaXplb2YoVCksCisgICAgICAgICAgICBfX2FsaWdub2YoVCkKKyAgICAgICAgPjo6dmFsdWUpKTsKKyNlbGlmICFkZWZpbmVkKEJPT1NUX0FMSUdOTUVOVF9PRikKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsIHZhbHVlID0KKyAgICAgICAgKDo6bmRuYm9vc3Q6OmRldGFpbDo6YWxpZ25tZW50X2xvZ2ljPAorICAgICAgICAgICAgc2l6ZW9mKDo6bmRuYm9vc3Q6OmRldGFpbDo6YWxpZ25tZW50X29mX2hhY2s8VD4pIC0gc2l6ZW9mKFQpLAorICAgICAgICAgICAgc2l6ZW9mKFQpCisgICAgICAgID46OnZhbHVlKSk7CisjZWxzZQorICAgLy8KKyAgIC8vIFdlIHB1dCB0aGlzIGhlcmUsIHJhdGhlciB0aGFuIGluIHRoZSBkZWZpbml0aW9uIG9mCisgICAvLyBhbGlnbm1lbnRfb2YgYmVsb3csIGJlY2F1c2UgTVNWQydzIF9fYWxpZ25vZiBkb2Vzbid0CisgICAvLyBhbHdheXMgd29yayBpbiB0aGF0IGNvbnRleHQgZm9yIHNvbWUgdW5leHBsYWluZWQgcmVhc29uLgorICAgLy8gKFNlZSB0eXBlX3dpdGhfYWxpZ25tZW50IHRlc3RzIGZvciB0ZXN0IGNhc2VzKS4KKyAgIC8vCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsIHZhbHVlID0gQk9PU1RfQUxJR05NRU5UX09GKFQpKTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfREVGMShhbGlnbm1lbnRfb2YsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmFsaWdubWVudF9vZl9pbXBsPFQ+Ojp2YWx1ZSkKKworLy8gcmVmZXJlbmNlcyBoYXZlIHRvIGJlIHRyZWF0ZWQgc3BlY2lhbGx5LCBhc3N1bWUKKy8vIHRoYXQgYSByZWZlcmVuY2UgaXMganVzdCBhIHNwZWNpYWwgcG9pbnRlcjoKKyNpZm5kZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgYWxpZ25tZW50X29mPFQmPgorICAgIDogcHVibGljIGFsaWdubWVudF9vZjxUKj4KK3sKK307CisjZW5kaWYKKyNpZmRlZiBfX0JPUkxBTkRDX18KKy8vIGxvbmcgZG91YmxlIGdpdmVzIGFuIGluY29ycmVjdCB2YWx1ZSBvZiAxMCAoISkKKy8vIHVubGVzcyB3ZSBkbyB0aGlzLi4uCitzdHJ1Y3QgbG9uZ19kb3VibGVfd3JhcHBlcnsgbG9uZyBkb3VibGUgbGQ7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBhbGlnbm1lbnRfb2Y8bG9uZyBkb3VibGU+CisgICA6IHB1YmxpYyBhbGlnbm1lbnRfb2Y8bG9uZ19kb3VibGVfd3JhcHBlcj57fTsKKyNlbmRpZgorCisvLyB2b2lkIGhhcyB0byBiZSB0cmVhdGVkIHNwZWNpYWxseToKK0JPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfU1BFQzEoYWxpZ25tZW50X29mLHZvaWQsMCkKKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKK0JPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfU1BFQzEoYWxpZ25tZW50X29mLHZvaWQgY29uc3QsMCkKK0JPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfU1BFQzEoYWxpZ25tZW50X29mLHZvaWQgdm9sYXRpbGUsMCkKK0JPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfU1BFQzEoYWxpZ25tZW50X29mLHZvaWQgY29uc3Qgdm9sYXRpbGUsMCkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIChfX0JPUkxBTkRDX18gPCAweDYwMCkKKyNwcmFnbWEgb3B0aW9uIHBvcAorI2VuZGlmCisjaWZkZWYgQk9PU1RfTVNWQworIyAgIHByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3NpemVfdF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9BTElHTk1FTlRfT0ZfSFBQX0lOQ0xVREVECisKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2Jyb2tlbl9jb21waWxlcl9zcGVjLmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL2Jyb2tlbl9jb21waWxlcl9zcGVjLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTVkYmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvYnJva2VuX2NvbXBpbGVyX3NwZWMuaHBwCkBAIC0wLDAgKzEsMTE3IEBACisKKy8vICBDb3B5cmlnaHQgMjAwMS0yMDAzIEFsZWtzZXkgR3VydG92b3kuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQ19IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2xhbWJkYV9zdXBwb3J0LmhwcD4KKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCisvLyB0aGVzZSBhcmUgbmVlZGVkIHJlZ2FyZGxlc3Mgb2YgQk9PU1RfVFRfTk9fQlJPS0VOX0NPTVBJTEVSX1NQRUMgCisjaWYgZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIGRldGFpbCB7Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZW1vdmVfY29uc3RfaW1wbCAgICAgeyB0eXBlZGVmIFQgdHlwZTsgfTsKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHJlbW92ZV92b2xhdGlsZV9pbXBsICB7IHR5cGVkZWYgVCB0eXBlOyB9OwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgcmVtb3ZlX3BvaW50ZXJfaW1wbCAgIHsgdHlwZWRlZiBUIHR5cGU7IH07Cit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZW1vdmVfcmVmZXJlbmNlX2ltcGwgeyB0eXBlZGVmIFQgdHlwZTsgfTsKK3R5cGVkZWYgaW50IGludm9rZV9CT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQ19vdXRzaWRlX2FsbF9uYW1lc3BhY2VzOworfX0KKyNlbmRpZgorCisvLyBhZ3VydCwgMjcvanVuLzAzOiBkaXNhYmxlIHRoZSB3b3JrYXJvdW5kIGlmIHVzZXIgZGVmaW5lZCAKKy8vIEJPT1NUX1RUX05PX0JST0tFTl9DT01QSUxFUl9TUEVDCisjaWYgICAgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgXAorICAgIHx8IGRlZmluZWQoQk9PU1RfVFRfTk9fQlJPS0VOX0NPTVBJTEVSX1NQRUMpCisKKyMgICBkZWZpbmUgQk9PU1RfVFRfQlJPS0VOX0NPTVBJTEVSX1NQRUMoVCkgLyoqLworCisjZWxzZQorCisvLyBzYW1lIGFzIEJPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0lNUExfU1BFQzEgbWFjcm8sIGV4Y2VwdCB0aGF0IGl0CisvLyBuZXZlciBnZXRzICN1bmRlZi1pbmVkCisjICAgZGVmaW5lIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMSh0cmFpdCxzcGVjLHJlc3VsdCkgXAordGVtcGxhdGU8PiBzdHJ1Y3QgdHJhaXQjI19pbXBsPHNwZWM+IFwKK3sgXAorICAgIHR5cGVkZWYgcmVzdWx0IHR5cGU7IFwKK307IFwKKy8qKi8KKworIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfUkVNT1ZFX0NPTlNUX1ZPTEFUSUxFX1JBTksxX1NQRUMoVCkgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfY29uc3QsVCBjb25zdCxUKSAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfY29uc3QsVCBjb25zdCB2b2xhdGlsZSxUIHZvbGF0aWxlKSAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfdm9sYXRpbGUsVCB2b2xhdGlsZSxUKSAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfdm9sYXRpbGUsVCBjb25zdCB2b2xhdGlsZSxUIGNvbnN0KSAgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfUkVNT1ZFX1BUUl9SRUZfUkFOS18xX1NQRUMoVCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfcG9pbnRlcixUKixUKSAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfcG9pbnRlcixUKmNvbnN0LFQpICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfcG9pbnRlcixUKnZvbGF0aWxlLFQpICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfcG9pbnRlcixUKmNvbnN0IHZvbGF0aWxlLFQpICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9CUk9LRU5fVFlQRV9UUkFJVF9TUEVDMShyZW1vdmVfcmVmZXJlbmNlLFQmLFQpICAgICAgICAgICAgICAgICAgICAgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfUkVNT1ZFX1BUUl9SRUZfUkFOS18yX1NQRUMoVCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfUFRSX1JFRl9SQU5LXzFfU1BFQyhUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfUFRSX1JFRl9SQU5LXzFfU1BFQyhUIGNvbnN0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfUFRSX1JFRl9SQU5LXzFfU1BFQyhUIHZvbGF0aWxlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfUFRSX1JFRl9SQU5LXzFfU1BFQyhUIGNvbnN0IHZvbGF0aWxlKSAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfUkVNT1ZFX0FMTF9SQU5LXzFfU1BFQyhUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfUFRSX1JFRl9SQU5LXzJfU1BFQyhUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQ09OU1RfVk9MQVRJTEVfUkFOSzFfU1BFQyhUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfUkVNT1ZFX0FMTF9SQU5LXzJfU1BFQyhUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMV9TUEVDKFQqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMV9TUEVDKFQgY29uc3QqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMV9TUEVDKFQgdm9sYXRpbGUqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMV9TUEVDKFQgY29uc3Qgdm9sYXRpbGUqKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIC8qKi8KKworIyAgIGRlZmluZSBCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyhUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIG5hbWVzcGFjZSBuZG5ib29zdCB7IG5hbWVzcGFjZSBkZXRhaWwgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHR5cGVkZWYgaW52b2tlX0JPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDX291dHNpZGVfYWxsX25hbWVzcGFjZXMgICAgICAgICAgICAgXAorICAgICAgcGxlYXNlX2ludm9rZV9CT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQ19vdXRzaWRlX2FsbF9uYW1lc3BhY2VzOyAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMV9TUEVDKFQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMl9TUEVDKFQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMl9TUEVDKFQqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMl9TUEVDKFQgY29uc3QqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMl9TUEVDKFQgdm9sYXRpbGUqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEJPT1NUX1RUX0FVWF9SRU1PVkVfQUxMX1JBTktfMl9TUEVDKFQgY29uc3Qgdm9sYXRpbGUqKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH19ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIC8qKi8KKworIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworQk9PU1RfVFRfQlJPS0VOX0NPTVBJTEVSX1NQRUMoYm9vbCkKK0JPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDKGNoYXIpCisjaWZuZGVmIEJPT1NUX05PX0lOVFJJTlNJQ19XQ0hBUl9UCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyh3Y2hhcl90KQorI2VuZGlmCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyhzaWduZWQgY2hhcikKK0JPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDKHVuc2lnbmVkIGNoYXIpCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyhzaWduZWQgc2hvcnQpCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyh1bnNpZ25lZCBzaG9ydCkKK0JPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDKHNpZ25lZCBpbnQpCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyh1bnNpZ25lZCBpbnQpCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyhzaWduZWQgbG9uZykKK0JPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDKHVuc2lnbmVkIGxvbmcpCitCT09TVF9UVF9CUk9LRU5fQ09NUElMRVJfU1BFQyhmbG9hdCkKK0JPT1NUX1RUX0JST0tFTl9DT01QSUxFUl9TUEVDKGRvdWJsZSkKKy8vQk9PU1RfVFRfQlJPS0VOX0NPTVBJTEVSX1NQRUMobG9uZyBkb3VibGUpCisKKy8vIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CisjZGVmaW5lIEJPT1NUX0JST0tFTl9DT01QSUxFUl9UWVBFX1RSQUlUU19TUEVDSUFMSVpBVElPTihUKSBcCisgICAgQk9PU1RfVFRfQlJPS0VOX0NPTVBJTEVSX1NQRUMoVCkgXAorLyoqLworCisjZW5kaWYgLy8gQk9PU1RfVFRfQlJPS0VOX0NPTVBJTEVSX1NQRUNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTM0NDU0Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcApAQCAtMCwwICsxLDc2IEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0NPTkZJR19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfQ09ORklHX0hQUF9JTkNMVURFRAorCisjaWZuZGVmIEJPT1NUX0NPTkZJR19IUFAKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKy8vCisvLyB3aGVuZXZlciB3ZSBoYXZlIGEgY29udmVyc2lvbiBmdW5jdGlvbiB3aXRoIGVsbGlwc2VzCisvLyBpdCBuZWVkcyB0byBiZSBkZWNsYXJlZCBfX2NkZWNsIHRvIHN1cHByZXNzIGNvbXBpbGVyCisvLyB3YXJuaW5ncyBmcm9tIE1TIGFuZCBCb3JsYW5kIGNvbXBpbGVycyAodGhpcyAqbXVzdCoKKy8vIGFwcGVhciBiZWZvcmUgd2UgaW5jbHVkZSBpc19zYW1lLmhwcCBiZWxvdyk6CisjaWYgZGVmaW5lZChCT09TVF9NU1ZDKSB8fCAoZGVmaW5lZChfX0JPUkxBTkRDX18pICYmICFkZWZpbmVkKEJPT1NUX0RJU0FCTEVfV0lOMzIpKQorIyAgIGRlZmluZSBCT09TVF9UVF9ERUNMIF9fY2RlY2wKKyNlbHNlCisjICAgZGVmaW5lIEJPT1NUX1RUX0RFQ0wgLyoqLworI2VuZGlmCisKKyMgaWYgKEJPT1NUX1dPUktBUk9VTkQoX19NV0VSS1NfXywgPCAweDMwMDApICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB8fCBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDw9IDEzMDEpICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHx8ICFkZWZpbmVkKF9fRURHX1ZFUlNJT05fXykgJiYgQk9PU1RfV09SS0FST1VORChfX0dOVUNfXywgPCAzKSBcCisgICAgfHwgQk9PU1RfV09SS0FST1VORChfX0lCTUNQUF9fLCA8IDYwMCApICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB8fCBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPCAweDVBMCkgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHx8IGRlZmluZWQoX19naHMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfHwgQk9PU1RfV09SS0FST1VORChfX0hQX2FDQywgPCA2MDcwMCkgICAgICAgICAgIFwKKyAgICB8fCBCT09TVF9XT1JLQVJPVU5EKE1QV19DUExVUywgQk9PU1RfVEVTVEVEX0FUKDB4ODkwKSkgICAgICAgICAgXAorICAgIHx8IEJPT1NUX1dPUktBUk9VTkQoX19TVU5QUk9fQ0MsIEJPT1NUX1RFU1RFRF9BVCgweDU4MCkpKSAgICAgICBcCisgICAgJiYgZGVmaW5lZChCT09TVF9OT19JU19BQlNUUkFDVCkKKworIyAgIGRlZmluZSBCT09TVF9UVF9OT19DT05GT1JNSU5HX0lTX0NMQVNTX0lNUExFTUVOVEFUSU9OIDEKKworI2VuZGlmCisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fQ09ORk9STUlOR19JU19DTEFTU19JTVBMRU1FTlRBVElPTgorIyBkZWZpbmUgQk9PU1RfVFRfSEFTX0NPTkZPUk1JTkdfSVNfQ0xBU1NfSU1QTEVNRU5UQVRJT04gMQorI2VuZGlmCisKKy8vCisvLyBEZWZpbmUgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HIAorLy8gd2hlbiB3ZSBjYW4ndCB0ZXN0IGZvciBmdW5jdGlvbiB0eXBlcyB3aXRoIGVsaXBzaXM6CisvLworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX18sIDwgMykKKyMgIGRlZmluZSBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKKyNlbmRpZgorCisvLworLy8gZGVmaW5lIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCisvLyB3aGVuIHdlIHdhbnQgdG8gdGVzdCBfX3N0ZGNhbGwgZXRjIGZ1bmN0aW9uIHR5cGVzIHdpdGggaXNfZnVuY3Rpb24gZXRjCisvLyAoTm90ZSwgZG9lcyBub3Qgd29yayB3aXRoIEJvcmxhbmQsIGV2ZW4gdGhvdWdoIGl0IGRvZXMgc3VwcG9ydCBfX3N0ZGNhbGwgZXRjKToKKy8vCisjaWYgZGVmaW5lZChfTVNDX0VYVEVOU0lPTlMpICYmICFkZWZpbmVkKF9fQk9STEFORENfXykKKyMgIGRlZmluZSBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUworI2VuZGlmCisKKy8vCisvLyBkZWZpbmUgQk9PU1RfVFRfTk9fQ1ZfRlVOQ19URVNUCisvLyBpZiB0ZXN0cyBmb3IgY3YtcXVhbGlmaWVkIG1lbWJlciBmdW5jdGlvbnMgZG9uJ3QgCisvLyB3b3JrIGluIGlzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyCisvLworI2lmIEJPT1NUX1dPUktBUk9VTkQoX19NV0VSS1NfXywgPCAweDMwMDApIHx8IEJPT1NUX1dPUktBUk9VTkQoX19JQk1DUFBfXywgPD0gNjAwKQorIyAgZGVmaW5lIEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVAorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9UVF9DT05GSUdfSFBQX0lOQ0xVREVECisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNmYTBjNwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHAKQEAgLTAsMCArMSwxOTYgQEAKKworLy8gTk8gSU5DTFVERSBHVUFSRFMsIFRIRSBIRUFERVIgSVMgSU5URU5ERUQgRk9SIE1VTFRJUExFIElOQ0xVU0lPTgorCisvLyBDb3B5cmlnaHQgQWxla3NleSBHdXJ0b3ZveSAyMDAyLTIwMDQKKy8vCisvLyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIAorLy8gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCAKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gJFNvdXJjZSQKKy8vICREYXRlOiAyMDExLTEwLTA5IDE1OjI4OjMzIC0wNzAwIChTdW4sIDA5IE9jdCAyMDExKSAkCisvLyAkUmV2aXNpb246IDc0ODY1ICQKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90ZW1wbGF0ZV9hcml0eV9zcGVjLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pbnRlZ3JhbF9jb25zdGFudC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2Jvb2wuaHBwPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2xhbWJkYV9zdXBwb3J0LmhwcD4KKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCisvLworLy8gVW5mb3J0dW5hdGVseSBzb21lIGxpYnJhcmllcyBoYXZlIHN0YXJ0ZWQgdXNpbmcgdGhpcyBoZWFkZXIgd2l0aG91dAorLy8gY2xlYW5pbmcgdXAgYWZ0ZXJ3YXJkczogc28gd2UnZCBiZXR0ZXIgdW5kZWYgdGhlIG1hY3JvcyBqdXN0IGluIGNhc2UgCisvLyB0aGV5J3ZlIGJlZW4gZGVmaW5lZCBhbHJlYWR5Li4uLgorLy8KKyNpZmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9WQUxVRV9ERUNMCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTAorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX0NfQkFTRQorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYyCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMgorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMyCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8yCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMl8xCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMl8yCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9QQVJUSUFMX1NQRUMyXzEKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fU1VOUFJPX0NDKSAmJiAoX19TVU5QUk9fQ0MgPCAweDU3MCkKKyMgICBkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTChDKSBcCisgICAgdHlwZWRlZiA6Om5kbmJvb3N0OjppbnRlZ3JhbF9jb25zdGFudDxib29sLEM+IHR5cGU7IFwKKyAgICBlbnVtIHsgdmFsdWUgPSB0eXBlOjp2YWx1ZSB9OyBcCisgICAgLyoqLworIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfQk9PTF9DX0JBU0UoQykKKworI2VsaWYgZGVmaW5lZChCT09TVF9NU1ZDKSAmJiBCT09TVF9NU1ZDIDwgMTMwMAorCisjICAgZGVmaW5lIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1ZBTFVFX0RFQ0woQykgXAorICAgIHR5cGVkZWYgOjpuZG5ib29zdDo6aW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCxDPiBiYXNlXzsgXAorICAgIHVzaW5nIGJhc2VfOjp2YWx1ZTsgXAorICAgIC8qKi8KKworI2VuZGlmCisKKyNpZm5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTAorIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9WQUxVRV9ERUNMKEMpIC8qKi8KKyNlbmRpZgorCisjaWZuZGVmIEJPT1NUX1RUX0FVWF9CT09MX0NfQkFTRQorIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfQk9PTF9DX0JBU0UoQykgOiBwdWJsaWMgOjpuZG5ib29zdDo6aW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCxDPgorI2VuZGlmIAorCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMSh0cmFpdCxULEMpIFwKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHRyYWl0IFwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9DX0JBU0UoQykgXAoreyBcCitwdWJsaWM6XAorICAgIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1ZBTFVFX0RFQ0woQykgXAorICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSx0cmFpdCwoVCkpIFwKK307IFwKK1wKK0JPT1NUX1RUX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDEsdHJhaXQpIFwKKy8qKi8KKworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjIodHJhaXQsVDEsVDIsQykgXAordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiA+IHN0cnVjdCB0cmFpdCBcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfQ19CQVNFKEMpIFwKK3sgXAorcHVibGljOlwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9WQUxVRV9ERUNMKEMpIFwKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDIsdHJhaXQsKFQxLFQyKSkgXAorfTsgXAorXAorQk9PU1RfVFRfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMix0cmFpdCkgXAorLyoqLworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjModHJhaXQsVDEsVDIsVDMsQykgXAordGVtcGxhdGU8IHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMgPiBzdHJ1Y3QgdHJhaXQgXAorICAgIEJPT1NUX1RUX0FVWF9CT09MX0NfQkFTRShDKSBcCit7IFwKK3B1YmxpYzpcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTChDKSBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgzLHRyYWl0LChUMSxUMixUMykpIFwKK307IFwKK1wKK0JPT1NUX1RUX0FVWF9URU1QTEFURV9BUklUWV9TUEVDKDMsdHJhaXQpIFwKKy8qKi8KKworI2RlZmluZSBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMSh0cmFpdCxzcCxDKSBcCit0ZW1wbGF0ZTw+IHN0cnVjdCB0cmFpdDwgc3AgPiBcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfQ19CQVNFKEMpIFwKK3sgXAorcHVibGljOlwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9WQUxVRV9ERUNMKEMpIFwKKyAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUX1NQRUMoMSx0cmFpdCwoc3ApKSBcCit9OyBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzIodHJhaXQsc3AxLHNwMixDKSBcCit0ZW1wbGF0ZTw+IHN0cnVjdCB0cmFpdDwgc3AxLHNwMiA+IFwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9DX0JBU0UoQykgXAoreyBcCitwdWJsaWM6XAorICAgIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1ZBTFVFX0RFQ0woQykgXAorICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygyLHRyYWl0LChzcDEsc3AyKSkgXAorfTsgXAorLyoqLworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEodHJhaXQsc3AsQykgXAordGVtcGxhdGU8PiBzdHJ1Y3QgdHJhaXQjI19pbXBsPCBzcCA+IFwKK3sgXAorcHVibGljOlwKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoQykpOyBcCit9OyBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMih0cmFpdCxzcDEsc3AyLEMpIFwKK3RlbXBsYXRlPD4gc3RydWN0IHRyYWl0IyNfaW1wbDwgc3AxLHNwMiA+IFwKK3sgXAorcHVibGljOlwKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoQykpOyBcCit9OyBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHBhcmFtLHRyYWl0LHNwLEMpIFwKK3RlbXBsYXRlPCBwYXJhbSA+IHN0cnVjdCB0cmFpdDwgc3AgPiBcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfQ19CQVNFKEMpIFwKK3sgXAorcHVibGljOlwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9WQUxVRV9ERUNMKEMpIFwKK307IFwKKy8qKi8KKworI2RlZmluZSBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzIocGFyYW0xLHBhcmFtMix0cmFpdCxzcCxDKSBcCit0ZW1wbGF0ZTwgcGFyYW0xLCBwYXJhbTIgPiBzdHJ1Y3QgdHJhaXQ8IHNwID4gXAorICAgIEJPT1NUX1RUX0FVWF9CT09MX0NfQkFTRShDKSBcCit7IFwKK3B1YmxpYzpcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTChDKSBcCit9OyBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMl8xKHBhcmFtLHRyYWl0LHNwMSxzcDIsQykgXAordGVtcGxhdGU8IHBhcmFtID4gc3RydWN0IHRyYWl0PCBzcDEsc3AyID4gXAorICAgIEJPT1NUX1RUX0FVWF9CT09MX0NfQkFTRShDKSBcCit7IFwKK3B1YmxpYzpcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTChDKSBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKDIsdHJhaXQsKHNwMSxzcDIpKSBcCit9OyBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMl8yKHBhcmFtMSxwYXJhbTIsdHJhaXQsc3AxLHNwMixDKSBcCit0ZW1wbGF0ZTwgcGFyYW0xLCBwYXJhbTIgPiBzdHJ1Y3QgdHJhaXQ8IHNwMSxzcDIgPiBcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfQ19CQVNFKEMpIFwKK3sgXAorcHVibGljOlwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9WQUxVRV9ERUNMKEMpIFwKK307IFwKKy8qKi8KKworI2RlZmluZSBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1BBUlRJQUxfU1BFQzJfMShwYXJhbSx0cmFpdCxzcDEsc3AyLEMpIFwKK3RlbXBsYXRlPCBwYXJhbSA+IHN0cnVjdCB0cmFpdCMjX2ltcGw8IHNwMSxzcDIgPiBcCit7IFwKK3B1YmxpYzpcCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKEMpKTsgXAorfTsgXAorLyoqLworCisjaWZuZGVmIEJPT1NUX05PX0NWX1NQRUNJQUxJWkFUSU9OUworIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMSh0cmFpdCxzcCx2YWx1ZSkgXAorICAgIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKHRyYWl0LHNwLHZhbHVlKSBcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEodHJhaXQsc3AgY29uc3QsdmFsdWUpIFwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMSh0cmFpdCxzcCB2b2xhdGlsZSx2YWx1ZSkgXAorICAgIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKHRyYWl0LHNwIGNvbnN0IHZvbGF0aWxlLHZhbHVlKSBcCisgICAgLyoqLworI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEodHJhaXQsc3AsdmFsdWUpIFwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMSh0cmFpdCxzcCx2YWx1ZSkgXAorICAgIC8qKi8KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwOGZlYmUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHAKQEAgLTAsMCArMSwyOCBAQAorCisvLyBOTyBJTkNMVURFIEdVQVJEUywgVEhFIEhFQURFUiBJUyBJTlRFTkRFRCBGT1IgTVVMVElQTEUgSU5DTFVTSU9OCisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAkU291cmNlJAorLy8gJERhdGU6IDIwMTEtMTAtMDkgMTU6Mjg6MzMgLTA3MDAgKFN1biwgMDkgT2N0IDIwMTEpICQKKy8vICRSZXZpc2lvbjogNzQ4NjUgJAorCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfVkFMVUVfREVDTAorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX0NfQkFTRQorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYyCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMworI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzIKKyN1bmRlZiBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMgorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMQorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMgorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzJfMQorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzJfMgorI3VuZGVmIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfUEFSVElBTF9TUEVDMl8xCisjdW5kZWYgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9jdl90cmFpdHNfaW1wbC5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvY3ZfdHJhaXRzX2ltcGwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhZGZjNjgKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvY3ZfdHJhaXRzX2ltcGwuaHBwCkBAIC0wLDAgKzEsOTcgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgRGF2ZSBBYnJhaGFtcywgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkCisvLyAgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLiAgCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisKKyNpZm5kZWYgQk9PU1RfVFRfREVUQUlMX0NWX1RSQUlUU19JTVBMX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9ERVRBSUxfQ1ZfVFJBSVRTX0lNUExfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPGJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKy8vIGltcGxlbWVudGF0aW9uIGhlbHBlcjoKKworCisjaWYgIShCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19fLD09IDMpICYmIEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX01JTk9SX18sIDw9IDIpKQorbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSBkZXRhaWwgeworI2Vsc2UKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwveWVzX25vX3R5cGUuaHBwPgorbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSB0eXBlX3RyYWl0cyB7CituYW1lc3BhY2UgZ2NjODUwMyB7CisjZW5kaWYKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBjdl90cmFpdHNfaW1wIHt9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBjdl90cmFpdHNfaW1wPFQqPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19jb25zdCA9IGZhbHNlKTsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfdm9sYXRpbGUgPSBmYWxzZSk7CisgICAgdHlwZWRlZiBUIHVucXVhbGlmaWVkX3R5cGU7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBjdl90cmFpdHNfaW1wPGNvbnN0IFQqPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19jb25zdCA9IHRydWUpOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc192b2xhdGlsZSA9IGZhbHNlKTsKKyAgICB0eXBlZGVmIFQgdW5xdWFsaWZpZWRfdHlwZTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGN2X3RyYWl0c19pbXA8dm9sYXRpbGUgVCo+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIGlzX2NvbnN0ID0gZmFsc2UpOworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc192b2xhdGlsZSA9IHRydWUpOworICAgIHR5cGVkZWYgVCB1bnF1YWxpZmllZF90eXBlOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgY3ZfdHJhaXRzX2ltcDxjb25zdCB2b2xhdGlsZSBUKj4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfY29uc3QgPSB0cnVlKTsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfdm9sYXRpbGUgPSB0cnVlKTsKKyAgICB0eXBlZGVmIFQgdW5xdWFsaWZpZWRfdHlwZTsKK307CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKF9fR05VQ19fLD09IDMpICYmIEJPT1NUX1dPUktBUk9VTkQoX19HTlVDX01JTk9SX18sIDw9IDIpCisvLyBXZSBoYXZlIHRvIGV4Y2x1ZGUgZnVuY3Rpb24gcG9pbnRlcnMgCisvLyAoc2VlIGh0dHA6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/ODUwMykKK3llc190eXBlIG1pbmlfZnVuY3B0cl90ZXN0ZXIoLi4uKTsKK25vX3R5cGUgIG1pbmlfZnVuY3B0cl90ZXN0ZXIoY29uc3Qgdm9sYXRpbGUgdm9pZCopOworCit9IC8vIG5hbWVzcGFjZSBnY2M4NTAzCit9IC8vIG5hbWVzcGFjZSB0eXBlX3RyYWl0cworCituYW1lc3BhY2UgZGV0YWlsIHsKKworLy8gVXNlIHRoZSBpbXBsZW1lbnRhdGlvbiBhYm92ZSBmb3Igbm9uIGZ1bmN0aW9uIHBvaW50ZXJzCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdW5zaWduZWQgU2VsZWN0IAorICA9ICh1bnNpZ25lZClzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmdjYzg1MDM6Om1pbmlfZnVuY3B0cl90ZXN0ZXIoKFQpMCkpID4KK3N0cnVjdCBjdl90cmFpdHNfaW1wIDogcHVibGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpnY2M4NTAzOjpjdl90cmFpdHNfaW1wPFQ+IHsgfTsKKworLy8gRnVuY3Rpb25zIGFyZSBuZXZlciBjdi1xdWFsaWZpZWQKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgY3ZfdHJhaXRzX2ltcDxUKiwxPgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCBpc19jb25zdCA9IGZhbHNlKTsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgaXNfdm9sYXRpbGUgPSBmYWxzZSk7CisgICAgdHlwZWRlZiBUIHVucXVhbGlmaWVkX3R5cGU7Cit9OworCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdCAKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworI2VuZGlmIC8vIEJPT1NUX1RUX0RFVEFJTF9DVl9UUkFJVFNfSU1QTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9mYWxzZV9yZXN1bHQuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ZhbHNlX3Jlc3VsdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJkMGNiYwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9mYWxzZV9yZXN1bHQuaHBwCkBAIC0wLDAgKzEsMjggQEAKKy8vICBDb3B5cmlnaHQgRGF2aWQgQWJyYWhhbXMgMjAwMi4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisKKyNpZm5kZWYgQk9PU1RfVFRfREVUQUlMX0ZBTFNFX1JFU1VMVF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfREVUQUlMX0ZBTFNFX1JFU1VMVF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgdHlwZV90cmFpdHMgeworCisvLyBVdGlsaXR5IGNsYXNzIHdoaWNoIGFsd2F5cyAicmV0dXJucyIgZmFsc2UKK3N0cnVjdCBmYWxzZV9yZXN1bHQKK3sKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKKyAgICB9OworfTsKKworfX0gLy8gbmFtZXNwYWNlIG5kbmJvb3N0Ojp0eXBlX3RyYWl0cworCisjZW5kaWYgLy8gQk9PU1RfVFRfREVUQUlMX0ZBTFNFX1JFU1VMVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWI1MzRkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9hbmQuaHBwCkBAIC0wLDAgKzEsMzUgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayBhbmQgU3RldmUgQ2xlYXJ5IDIwMDAuCisvLworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9ERVRBSUxfSUNFX0FORF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfREVUQUlMX0lDRV9BTkRfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIHR5cGVfdHJhaXRzIHsKKwordGVtcGxhdGUgPGJvb2wgYjEsIGJvb2wgYjIsIGJvb2wgYjMgPSB0cnVlLCBib29sIGI0ID0gdHJ1ZSwgYm9vbCBiNSA9IHRydWUsIGJvb2wgYjYgPSB0cnVlLCBib29sIGI3ID0gdHJ1ZT4KK3N0cnVjdCBpY2VfYW5kOworCit0ZW1wbGF0ZSA8Ym9vbCBiMSwgYm9vbCBiMiwgYm9vbCBiMywgYm9vbCBiNCwgYm9vbCBiNSwgYm9vbCBiNiwgYm9vbCBiNz4KK3N0cnVjdCBpY2VfYW5kCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpY2VfYW5kPHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWU+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7Cit9OworCit9IC8vIG5hbWVzcGFjZSB0eXBlX3RyYWl0cworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1RUX0RFVEFJTF9JQ0VfQU5EX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9lcS5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2VxLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWMxMWEyCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9lcS5ocHAKQEAgLTAsMCArMSwzNiBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIGFuZCBTdGV2ZSBDbGVhcnkgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfREVUQUlMX0lDRV9FUV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfREVUQUlMX0lDRV9FUV9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgdHlwZV90cmFpdHMgeworCit0ZW1wbGF0ZSA8aW50IGIxLCBpbnQgYjI+CitzdHJ1Y3QgaWNlX2VxCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKGIxID09IGIyKSk7Cit9OworCit0ZW1wbGF0ZSA8aW50IGIxLCBpbnQgYjI+CitzdHJ1Y3QgaWNlX25lCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKGIxICE9IGIyKSk7Cit9OworCisjaWZuZGVmIEJPT1NUX05PX0lOQ0xBU1NfTUVNQkVSX0lOSVRJQUxJWkFUSU9OCit0ZW1wbGF0ZSA8aW50IGIxLCBpbnQgYjI+IGJvb2wgY29uc3QgaWNlX2VxPGIxLGIyPjo6dmFsdWU7Cit0ZW1wbGF0ZSA8aW50IGIxLCBpbnQgYjI+IGJvb2wgY29uc3QgaWNlX25lPGIxLGIyPjo6dmFsdWU7CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgdHlwZV90cmFpdHMKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9UVF9ERVRBSUxfSUNFX0VRX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9ub3QuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9ub3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1ODk2MjUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX25vdC5ocHAKQEAgLTAsMCArMSwzMSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIGFuZCBTdGV2ZSBDbGVhcnkgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfREVUQUlMX0lDRV9OT1RfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0RFVEFJTF9JQ0VfTk9UX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSB0eXBlX3RyYWl0cyB7CisKK3RlbXBsYXRlIDxib29sIGI+CitzdHJ1Y3QgaWNlX25vdAoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpY2Vfbm90PHRydWU+Cit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKworfSAvLyBuYW1lc3BhY2UgdHlwZV90cmFpdHMKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9UVF9ERVRBSUxfSUNFX05PVF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfb3IuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYzYzBkMwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfb3IuaHBwCkBAIC0wLDAgKzEsMzQgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayBhbmQgU3RldmUgQ2xlYXJ5IDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0RFVEFJTF9JQ0VfT1JfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0RFVEFJTF9JQ0VfT1JfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIHR5cGVfdHJhaXRzIHsKKwordGVtcGxhdGUgPGJvb2wgYjEsIGJvb2wgYjIsIGJvb2wgYjMgPSBmYWxzZSwgYm9vbCBiNCA9IGZhbHNlLCBib29sIGI1ID0gZmFsc2UsIGJvb2wgYjYgPSBmYWxzZSwgYm9vbCBiNyA9IGZhbHNlPgorc3RydWN0IGljZV9vcjsKKwordGVtcGxhdGUgPGJvb2wgYjEsIGJvb2wgYjIsIGJvb2wgYjMsIGJvb2wgYjQsIGJvb2wgYjUsIGJvb2wgYjYsIGJvb2wgYjc+CitzdHJ1Y3QgaWNlX29yCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGljZV9vcjxmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZT4KK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7Cit9OworCit9IC8vIG5hbWVzcGFjZSB0eXBlX3RyYWl0cworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1RUX0RFVEFJTF9JQ0VfT1JfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfZnVuY3Rpb25fcHRyX2hlbHBlci5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfZnVuY3Rpb25fcHRyX2hlbHBlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI3YTc5OAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19mdW5jdGlvbl9wdHJfaGVscGVyLmhwcApAQCAtMCwwICsxLDIyMCBAQAorCisvLyAgQ29weXJpZ2h0IDIwMDAgSm9obiBNYWRkb2NrIChqb2huQGpvaG5tYWRkb2NrLmNvLnVrKQorLy8gIENvcHlyaWdodCAyMDAyIEFsZWtzZXkgR3VydG92b3kgKGFndXJ0b3ZveUBtZXRhLWNvbW0uY29tKQorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZiAhZGVmaW5lZChCT09TVF9QUF9JU19JVEVSQVRJTkcpCisKKy8vLy8vIGhlYWRlciBib2R5CisKKyNpZm5kZWYgQk9PU1RfVFRfREVUQUlMX0lTX0ZVTkNUSU9OX1BUUl9IRUxQRVJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0RFVEFJTF9JU19GVU5DVElPTl9QVFJfSEVMUEVSX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfVFRfUFJFUFJPQ0VTU0lOR19NT0RFKQorIyAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9pdGVyYXRlLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvZW51bV9wYXJhbXMuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb21tYV9pZi5ocHA+CisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSB0eXBlX3RyYWl0cyB7CisKK3RlbXBsYXRlIDxjbGFzcyBSPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXIKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7Cit9OworCisjaWYgIWRlZmluZWQoQk9PU1RfVFRfUFJFUFJPQ0VTU0lOR19NT0RFKQorLy8gcHJlcHJvY2Vzc29yLWdlbmVyYXRlZCBwYXJ0LCBkb24ndCBlZGl0IGJ5IGhhbmQhCisKK3RlbXBsYXRlIDxjbGFzcyBSID4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDA+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDApPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDA+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMT4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxIC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDI+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyIC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDM+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDM+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUND4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDU+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDY+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDY+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNz4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDg+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDk+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDk+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMD4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMD4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTI+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTI+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMz4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMz4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTU+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTU+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNj4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNj4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3Pgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTg+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTg+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOT4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOT4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjE+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjE+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMj4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMj4KK3N0cnVjdCBpc19mdW5jdGlvbl9wdHJfaGVscGVyPFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQ+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQ+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKT4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2Vsc2UKKworI3VuZGVmIEJPT1NUX1NUQVRJQ19DT05TVEFOVAorI2RlZmluZSBCT09TVF9QUF9JVEVSQVRJT05fUEFSQU1TXzEgXAorICAgICgzLCAoMCwgMjUsICJib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfZnVuY3Rpb25fcHRyX2hlbHBlci5ocHAiKSkKKyNpbmNsdWRlIEJPT1NUX1BQX0lURVJBVEUoKQorCisjZW5kaWYgLy8gQk9PU1RfVFRfUFJFUFJPQ0VTU0lOR19NT0RFCisKK30gLy8gbmFtZXNwYWNlIHR5cGVfdHJhaXRzCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfVFRfREVUQUlMX0lTX0ZVTkNUSU9OX1BUUl9IRUxQRVJfSFBQX0lOQ0xVREVECisKKy8vLy8vIGl0ZXJhdGlvbgorCisjZWxzZQorI2RlZmluZSBCT09TVF9QUF9DT1VOVEVSIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorCit0ZW1wbGF0ZSA8Y2xhc3MgUiBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpPgorc3RydWN0IGlzX2Z1bmN0aW9uX3B0cl9oZWxwZXI8UiAoKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSk+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CitAI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCk+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fcHRyX2hlbHBlcjxSICgqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLik+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CitAI2VuZGlmCisjdW5kZWYgQk9PU1RfUFBfQ09VTlRFUgorI2VuZGlmIC8vIEJPT1NUX1BQX0lTX0lURVJBVElORwpkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwZmUzMWUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfZnVuY3Rpb25fcHRyX3Rlc3Rlci5ocHAKQEAgLTAsMCArMSw2NTQgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgRGF2ZSBBYnJhaGFtcywgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgCisvLyAgQWxla3NleSBHdXJ0b3ZveSwgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4gIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmICFkZWZpbmVkKEJPT1NUX1BQX0lTX0lURVJBVElORykKKworLy8vLy8gaGVhZGVyIGJvZHkKKworI2lmbmRlZiBCT09TVF9UVF9ERVRBSUxfSVNfRlVOQ1RJT05fUFRSX1RFU1RFUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfREVUQUlMX0lTX0ZVTkNUSU9OX1BUUl9URVNURVJfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwveWVzX25vX3R5cGUuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisKKyNpZiBkZWZpbmVkKEJPT1NUX1RUX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0ZS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2VudW1fcGFyYW1zLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwPgorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgdHlwZV90cmFpdHMgeworCisvLyBOb3RlIGl0IGlzIGFjY2VwdGFibGUgdG8gdXNlIGVsbGlwc2lzIGhlcmUsIHNpbmNlIHRoZSBhcmd1bWVudCB3aWxsCisvLyBhbHdheXMgYmUgYSBwb2ludGVyIHR5cGUgb2Ygc29tZSBzb3J0IChKTSAyMDA1LzA2LzA0KToKK25vX3R5cGUgQk9PU1RfVFRfREVDTCBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKC4uLik7CisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9QUkVQUk9DRVNTSU5HX01PREUpCisvLyBwcmUtcHJvY2Vzc2VkIGNvZGUsIGRvbid0IGVkaXQsIHRyeSBHTlUgY3BwIHdpdGggCisvLyBjcHAgLUkuLi8uLi8uLi8gLURCT09TVF9UVF9QUkVQUk9DRVNTSU5HX01PREUgLXggYysrIC1QIGZpbGVuYW1lCisKK3RlbXBsYXRlIDxjbGFzcyBSID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoKSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSgpKTsKK3RlbXBsYXRlIDxjbGFzcyBSID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCkpOwordGVtcGxhdGUgPGNsYXNzIFIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwKSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwIC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDApKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxKSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxIC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzKSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzIC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMykpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0KSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3KSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTApKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTApKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkpOworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAuLi4pKTsKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkpOworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAuLi4pKTsKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykpOworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAuLi4pKTsKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkpOworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAuLi4pKTsKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIpKTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLi4uKSk7CisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLi4uKSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykpOworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSICgqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fc3RkY2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAuLi4pKTsKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAuLi4pKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSk7CisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IC4uLikpOworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fZmFzdGNhbGwqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpKTsKK3RlbXBsYXRlIDxjbGFzcyBSICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IC4uLikpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19jZGVjbCopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkpOwordGVtcGxhdGUgPGNsYXNzIFIgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSk7CisjZW5kaWYKKyNlbHNlCisKKyNkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywgKDAsIDI1LCAiYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIuaHBwIikpCisjaW5jbHVkZSBCT09TVF9QUF9JVEVSQVRFKCkKKworI2VuZGlmIC8vIEJPT1NUX1RUX1BSRVBST0NFU1NJTkdfTU9ERQorCit9IC8vIG5hbWVzcGFjZSB0eXBlX3RyYWl0cworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2VuZGlmIC8vIEJPT1NUX1RUX0RFVEFJTF9JU19GVU5DVElPTl9QVFJfVEVTVEVSX0hQUF9JTkNMVURFRAorCisvLy8vLyBpdGVyYXRpb24KKworI2Vsc2UKKyNkZWZpbmUgQk9PU1RfUFBfQ09VTlRFUiBCT09TVF9QUF9GUkFNRV9JVEVSQVRJT04oMSkKKyN1bmRlZiBfX3N0ZGNhbGwKKyN1bmRlZiBfX2Zhc3RjYWxsCisjdW5kZWYgX19jZGVjbAorCit0ZW1wbGF0ZSA8Y2xhc3MgUiBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkpOworQCNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pKTsKK0AjZW5kaWYKK0AjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX3N0ZGNhbGwqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgUiBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19zdGRjYWxsKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pKTsKK0AjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpKTsKK3RlbXBsYXRlIDxjbGFzcyBSIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2Zhc3RjYWxsKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pKTsKK0AjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfZnVuY3Rpb25fcHRyX3Rlc3RlcihSIChfX2NkZWNsKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkpOwordGVtcGxhdGUgPGNsYXNzIFIgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19mdW5jdGlvbl9wdHJfdGVzdGVyKFIgKF9fY2RlY2wqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikpOworQCNlbmRpZgorCisjdW5kZWYgQk9PU1RfUFBfQ09VTlRFUgorI2VuZGlmIC8vIEJPT1NUX1BQX0lTX0lURVJBVElORwpkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX21lbV9mdW5fcG9pbnRlcl9pbXBsLmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19tZW1fZnVuX3BvaW50ZXJfaW1wbC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGIwOTM1MgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19tZW1fZnVuX3BvaW50ZXJfaW1wbC5ocHAKQEAgLTAsMCArMSw4MTcgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgRGF2ZSBBYnJhaGFtcywgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgCisvLyAgQWxla3NleSBHdXJ0b3ZveSwgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4gIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmICFkZWZpbmVkKEJPT1NUX1BQX0lTX0lURVJBVElORykKKworLy8vLy8gaGVhZGVyIGJvZHkKKworI2lmbmRlZiBCT09TVF9UVF9ERVRBSUxfSVNfTUVNX0ZVTl9QT0lOVEVSX0lNUExfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0RFVEFJTF9JU19NRU1fRlVOX1BPSU5URVJfSU1QTF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy5ocHA+CisKKyNpZiBkZWZpbmVkKEJPT1NUX1RUX1BSRVBST0NFU1NJTkdfTU9ERSkKKyMgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvaXRlcmF0ZS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2VudW1fcGFyYW1zLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvY29tbWFfaWYuaHBwPgorI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CituYW1lc3BhY2UgdHlwZV90cmFpdHMgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbAoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9QUkVQUk9DRVNTSU5HX01PREUpCisvLyBwcmUtcHJvY2Vzc2VkIGNvZGUsIGRvbid0IGVkaXQsIHRyeSBHTlUgY3BwIHdpdGggCisvLyBjcHAgLUkuLi8uLi8uLi8gLURCT09TVF9UVF9QUkVQUk9DRVNTSU5HX01PREUgLXggYysrIC1QIGZpbGVuYW1lCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSgpID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSgpIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCAuLi4pIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwIC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwIC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEpID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEpIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAuLi4pIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxIC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIpID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyIC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIpIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAuLi4pIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMykgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzIC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMykgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMykgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMykgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzIC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUND4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0KSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUND4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1KSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDU+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDU+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDU+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDU+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDc+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDc+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisjZW5kaWYKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDc+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3KSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDc+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4KSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDg+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDg+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pIGNvbnN0ID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDg+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDg+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxND4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTU+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTU+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTY+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTc+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTc+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTg+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTg+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMD4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjA+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjE+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMj4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjI+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMz4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjM+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworI2VuZGlmCisKKyNpZiAhZGVmaW5lZChCT09TVF9UVF9OT19DVl9GVU5DX1RFU1QpCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkgY29uc3Qgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyND4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSBjb25zdCA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQ+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IC4uLikgdm9sYXRpbGUgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0Pgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKyNlbmRpZgorI2VuZGlmCisKKyNlbHNlCisKKyN1bmRlZiBCT09TVF9TVEFUSUNfQ09OU1RBTlQKKyNkZWZpbmUgQk9PU1RfUFBfSVRFUkFUSU9OX1BBUkFNU18xIFwKKyAgICAoMywgKDAsIDI1LCAiYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX21lbV9mdW5fcG9pbnRlcl9pbXBsLmhwcCIpKQorI2luY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKKyNlbmRpZiAvLyBCT09TVF9UVF9QUkVQUk9DRVNTSU5HX01PREUKKworfSAvLyBuYW1lc3BhY2UgdHlwZV90cmFpdHMKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9UVF9ERVRBSUxfSVNfTUVNX0ZVTl9QT0lOVEVSX0lNUExfSFBQX0lOQ0xVREVECisKKy8vLy8vIGl0ZXJhdGlvbgorCisjZWxzZQorI2RlZmluZSBCT09TVF9QUF9DT1VOVEVSIEJPT1NUX1BQX0ZSQU1FX0lURVJBVElPTigxKQorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKK0AjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworQCNlbmRpZgorCitAI2lmICFkZWZpbmVkKEJPT1NUX1RUX05PX0NWX0ZVTkNfVEVTVCkKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpIHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKSBjb25zdCB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK0AjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKT4KK3N0cnVjdCBpc19tZW1fZnVuX3BvaW50ZXJfaW1wbDxSIChUOjoqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikgY29uc3QgPiB7IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHRydWUpOyB9OworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpPgorc3RydWN0IGlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPFIgKFQ6OiopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkgLi4uKSB2b2xhdGlsZSA+IHsgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHJ1ZSk7IH07CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCk+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX2ltcGw8UiAoVDo6KikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pIGNvbnN0IHZvbGF0aWxlID4geyBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSB0cnVlKTsgfTsKK0AjZW5kaWYKK0AjZW5kaWYKKworI3VuZGVmIEJPT1NUX1BQX0NPVU5URVIKKyNlbmRpZiAvLyBCT09TVF9QUF9JU19JVEVSQVRJTkcKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiYjZlOTgKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3Rlci5ocHAKQEAgLTAsMCArMSwyNzU5IEBACisKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIAorLy8gIEFsZWtzZXkgR3VydG92b3ksIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuICAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZiAhZGVmaW5lZChCT09TVF9QUF9JU19JVEVSQVRJTkcpCisKKy8vLy8vIGhlYWRlciBib2R5CisKKyNpZm5kZWYgQk9PU1RfVFRfREVUQUlMX0lTX01FTV9GVU5fUE9JTlRFUl9URVNURVJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0RFVEFJTF9JU19NRU1fRlVOX1BPSU5URVJfVEVTVEVSX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorCisjaWYgZGVmaW5lZChCT09TVF9UVF9QUkVQUk9DRVNTSU5HX01PREUpCisjICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2l0ZXJhdGUuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9lbnVtX3BhcmFtcy5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NvbW1hX2lmLmhwcD4KKyNlbmRpZgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIHR5cGVfdHJhaXRzIHsKKworbm9fdHlwZSBCT09TVF9UVF9ERUNMIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoLi4uKTsKKworI2lmICFkZWZpbmVkKEJPT1NUX1RUX1BSRVBST0NFU1NJTkdfTU9ERSkKKy8vIHByZS1wcm9jZXNzZWQgY29kZSwgZG9uJ3QgZWRpdCwgdHJ5IEdOVSBjcHAgd2l0aCAKKy8vIGNwcCAtSS4uLy4uLy4uLyAtREJPT1NUX1RUX1BSRVBST0NFU1NJTkdfTU9ERSAteCBjKysgLVAgZmlsZW5hbWUKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSgpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSgpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSgpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSgpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSgpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSgpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSgpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSgpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDApKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDApIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDApKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDApIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDApIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDApIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDApIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDApIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMykpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMykgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNykgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDgpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTApIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTApIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTApKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTApIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMykgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNykgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTgpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5KSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5IC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjApIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIEJPT1NUX1RUX05PX0VMTElQU0lTX0lOX0ZVTkNfVEVTVElORwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorI2lmZGVmIEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBfTUFOQUdFRAordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikgY29uc3Qgdm9sYXRpbGUpOworCisjaWZuZGVmIF9NQU5BR0VECit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikgY29uc3Qgdm9sYXRpbGUpOworI2VuZGlmCisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMykgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpIGNvbnN0IHZvbGF0aWxlKTsKKworI2lmbmRlZiBCT09TVF9UVF9OT19FTExJUFNJU19JTl9GVU5DX1RFU1RJTkcKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisKKyNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSBjb25zdCB2b2xhdGlsZSk7CisjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0KSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgLCBjbGFzcyBUMCAsIGNsYXNzIFQxICwgY2xhc3MgVDIgLCBjbGFzcyBUMyAsIGNsYXNzIFQ0ICwgY2xhc3MgVDUgLCBjbGFzcyBUNiAsIGNsYXNzIFQ3ICwgY2xhc3MgVDggLCBjbGFzcyBUOSAsIGNsYXNzIFQxMCAsIGNsYXNzIFQxMSAsIGNsYXNzIFQxMiAsIGNsYXNzIFQxMyAsIGNsYXNzIFQxNCAsIGNsYXNzIFQxNSAsIGNsYXNzIFQxNiAsIGNsYXNzIFQxNyAsIGNsYXNzIFQxOCAsIGNsYXNzIFQxOSAsIGNsYXNzIFQyMCAsIGNsYXNzIFQyMSAsIGNsYXNzIFQyMiAsIGNsYXNzIFQyMyAsIGNsYXNzIFQyNCA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoIFQwICwgVDEgLCBUMiAsIFQzICwgVDQgLCBUNSAsIFQ2ICwgVDcgLCBUOCAsIFQ5ICwgVDEwICwgVDExICwgVDEyICwgVDEzICwgVDE0ICwgVDE1ICwgVDE2ICwgVDE3ICwgVDE4ICwgVDE5ICwgVDIwICwgVDIxICwgVDIyICwgVDIzICwgVDI0IC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCAsIGNsYXNzIFQwICwgY2xhc3MgVDEgLCBjbGFzcyBUMiAsIGNsYXNzIFQzICwgY2xhc3MgVDQgLCBjbGFzcyBUNSAsIGNsYXNzIFQ2ICwgY2xhc3MgVDcgLCBjbGFzcyBUOCAsIGNsYXNzIFQ5ICwgY2xhc3MgVDEwICwgY2xhc3MgVDExICwgY2xhc3MgVDEyICwgY2xhc3MgVDEzICwgY2xhc3MgVDE0ICwgY2xhc3MgVDE1ICwgY2xhc3MgVDE2ICwgY2xhc3MgVDE3ICwgY2xhc3MgVDE4ICwgY2xhc3MgVDE5ICwgY2xhc3MgVDIwICwgY2xhc3MgVDIxICwgY2xhc3MgVDIyICwgY2xhc3MgVDIzICwgY2xhc3MgVDI0ID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKSggVDAgLCBUMSAsIFQyICwgVDMgLCBUNCAsIFQ1ICwgVDYgLCBUNyAsIFQ4ICwgVDkgLCBUMTAgLCBUMTEgLCBUMTIgLCBUMTMgLCBUMTQgLCBUMTUgLCBUMTYgLCBUMTcgLCBUMTggLCBUMTkgLCBUMjAgLCBUMjEgLCBUMjIgLCBUMjMgLCBUMjQgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUICwgY2xhc3MgVDAgLCBjbGFzcyBUMSAsIGNsYXNzIFQyICwgY2xhc3MgVDMgLCBjbGFzcyBUNCAsIGNsYXNzIFQ1ICwgY2xhc3MgVDYgLCBjbGFzcyBUNyAsIGNsYXNzIFQ4ICwgY2xhc3MgVDkgLCBjbGFzcyBUMTAgLCBjbGFzcyBUMTEgLCBjbGFzcyBUMTIgLCBjbGFzcyBUMTMgLCBjbGFzcyBUMTQgLCBjbGFzcyBUMTUgLCBjbGFzcyBUMTYgLCBjbGFzcyBUMTcgLCBjbGFzcyBUMTggLCBjbGFzcyBUMTkgLCBjbGFzcyBUMjAgLCBjbGFzcyBUMjEgLCBjbGFzcyBUMjIgLCBjbGFzcyBUMjMgLCBjbGFzcyBUMjQgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKCBUMCAsIFQxICwgVDIgLCBUMyAsIFQ0ICwgVDUgLCBUNiAsIFQ3ICwgVDggLCBUOSAsIFQxMCAsIFQxMSAsIFQxMiAsIFQxMyAsIFQxNCAsIFQxNSAsIFQxNiAsIFQxNyAsIFQxOCAsIFQxOSAsIFQyMCAsIFQyMSAsIFQyMiAsIFQyMyAsIFQyNCAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKyNlbmRpZgorCisjZWxzZQorCisjZGVmaW5lIEJPT1NUX1BQX0lURVJBVElPTl9QQVJBTVNfMSBcCisgICAgKDMsICgwLCAyNSwgImJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyLmhwcCIpKQorI2luY2x1ZGUgQk9PU1RfUFBfSVRFUkFURSgpCisKKyNlbmRpZiAvLyBCT09TVF9UVF9QUkVQUk9DRVNTSU5HX01PREUKKworfSAvLyBuYW1lc3BhY2UgdHlwZV90cmFpdHMKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9UVF9ERVRBSUxfSVNfTUVNX0ZVTl9QT0lOVEVSX1RFU1RFUl9IUFBfSU5DTFVERUQKKworLy8vLy8gaXRlcmF0aW9uCisKKyNlbHNlCisjZGVmaW5lIEJPT1NUX1BQX0NPVU5URVIgQk9PU1RfUFBfRlJBTUVfSVRFUkFUSU9OKDEpCisjdW5kZWYgX19zdGRjYWxsCisjdW5kZWYgX19mYXN0Y2FsbAorI3VuZGVmIF9fY2RlY2wKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpIGNvbnN0IHZvbGF0aWxlKTsKKworQCNpZm5kZWYgQk9PU1RfVFRfTk9fRUxMSVBTSVNfSU5fRlVOQ19URVNUSU5HCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkgLi4uKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKK0AjZW5kaWYKK0AjaWZkZWYgQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MgLy8gT3RoZXIgY2FsbGluZyBjb252ZW50aW9ucyB1c2VkIGJ5IE1TIGNvbXBhdGlibGUgY29tcGlsZXJzOgordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKSBjb25zdCB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fc3RkY2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19zdGRjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkgLi4uKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX3N0ZGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKKworQCNpZm5kZWYgX01BTkFHRUQKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19mYXN0Y2FsbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKSB2b2xhdGlsZSk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2Zhc3RjYWxsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpIGNvbnN0IHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pIGNvbnN0KTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fZmFzdGNhbGwgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSAuLi4pIGNvbnN0IHZvbGF0aWxlKTsKK0AjZW5kaWYKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpKSBjb25zdCk7CisKK3RlbXBsYXRlIDxjbGFzcyBSLCBjbGFzcyBUIEJPT1NUX1BQX0NPTU1BX0lGKEJPT1NUX1BQX0NPVU5URVIpIEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsY2xhc3MgVCkgPgoreWVzX3R5cGUgaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihSIChfX2NkZWNsIFQ6Oipjb25zdCB2b2xhdGlsZSopKEJPT1NUX1BQX0VOVU1fUEFSQU1TKEJPT1NUX1BQX0NPVU5URVIsVCkpIHZvbGF0aWxlKTsKKwordGVtcGxhdGUgPGNsYXNzIFIsIGNsYXNzIFQgQk9PU1RfUFBfQ09NTUFfSUYoQk9PU1RfUFBfQ09VTlRFUikgQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixjbGFzcyBUKSA+Cit5ZXNfdHlwZSBpc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKFIgKF9fY2RlY2wgVDo6KmNvbnN0IHZvbGF0aWxlKikoQk9PU1RfUFBfRU5VTV9QQVJBTVMoQk9PU1RfUFBfQ09VTlRFUixUKSkgY29uc3Qgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikgY29uc3QpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikgdm9sYXRpbGUpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUiwgY2xhc3MgVCBCT09TVF9QUF9DT01NQV9JRihCT09TVF9QUF9DT1VOVEVSKSBCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLGNsYXNzIFQpID4KK3llc190eXBlIGlzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIoUiAoX19jZGVjbCBUOjoqY29uc3Qgdm9sYXRpbGUqKShCT09TVF9QUF9FTlVNX1BBUkFNUyhCT09TVF9QUF9DT1VOVEVSLFQpIC4uLikgY29uc3Qgdm9sYXRpbGUpOworQCNlbmRpZgorCisjdW5kZWYgQk9PU1RfUFBfQ09VTlRFUgorI2VuZGlmIC8vIEJPT1NUX1BQX0lTX0lURVJBVElORwpkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3NpemVfdF90cmFpdF9kZWYuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3NpemVfdF90cmFpdF9kZWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkYWU1NmMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvc2l6ZV90X3RyYWl0X2RlZi5ocHAKQEAgLTAsMCArMSw2MCBAQAorCisvLyBOTyBJTkNMVURFIEdVQVJEUywgVEhFIEhFQURFUiBJUyBJTlRFTkRFRCBGT1IgTVVMVElQTEUgSU5DTFVTSU9OCisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAkU291cmNlJAorLy8gJERhdGU6IDIwMTEtMDQtMjUgMDU6MjY6NDggLTA3MDAgKE1vbiwgMjUgQXByIDIwMTEpICQKKy8vICRSZXZpc2lvbjogNzE0ODEgJAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3RlbXBsYXRlX2FyaXR5X3NwZWMuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2ludGVncmFsX2NvbnN0YW50LmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy9sYW1iZGFfc3VwcG9ydC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL3NpemVfdC5ocHA+CisKKyNpbmNsdWRlIDxjc3RkZGVmPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTVNWQykgfHwgQk9PU1RfTVNWQyA+PSAxMzAwCisjICAgZGVmaW5lIEJPT1NUX1RUX0FVWF9TSVpFX1RfQkFTRShDKSBwdWJsaWMgOjpuZG5ib29zdDo6aW50ZWdyYWxfY29uc3RhbnQ8c3RkOjpzaXplX3QsQz4KKyMgICBkZWZpbmUgQk9PU1RfVFRfQVVYX1NJWkVfVF9UUkFJVF9WQUxVRV9ERUNMKEMpIC8qKi8KKyNlbHNlCisjICAgZGVmaW5lIEJPT1NUX1RUX0FVWF9TSVpFX1RfQkFTRShDKSBwdWJsaWMgOjpuZG5ib29zdDo6bXBsOjpzaXplX3Q8Qz4KKyMgICBkZWZpbmUgQk9PU1RfVFRfQVVYX1NJWkVfVF9UUkFJVF9WQUxVRV9ERUNMKEMpIFwKKyAgICB0eXBlZGVmIDo6bmRuYm9vc3Q6Om1wbDo6c2l6ZV90PEM+IGJhc2VfOyBcCisgICAgdXNpbmcgYmFzZV86OnZhbHVlOyBcCisgICAgLyoqLworI2VuZGlmCisKKworI2RlZmluZSBCT09TVF9UVF9BVVhfU0laRV9UX1RSQUlUX0RFRjEodHJhaXQsVCxDKSBcCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCB0cmFpdCBcCisgICAgOiBCT09TVF9UVF9BVVhfU0laRV9UX0JBU0UoQykgXAoreyBcCitwdWJsaWM6XAorICAgIEJPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfVkFMVUVfREVDTChDKSBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLHRyYWl0LChUKSkgXAorfTsgXAorXAorQk9PU1RfVFRfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMSx0cmFpdCkgXAorLyoqLworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfU1BFQzEodHJhaXQsc3BlYyxDKSBcCit0ZW1wbGF0ZTw+IHN0cnVjdCB0cmFpdDxzcGVjPiBcCisgICAgOiBCT09TVF9UVF9BVVhfU0laRV9UX0JBU0UoQykgXAoreyBcCitwdWJsaWM6XAorICAgIEJPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfVkFMVUVfREVDTChDKSBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVF9TUEVDKDEsdHJhaXQsKHNwZWMpKSBcCit9OyBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX1NJWkVfVF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEocGFyYW0sdHJhaXQsc3BlYyxDKSBcCit0ZW1wbGF0ZTwgcGFyYW0gPiBzdHJ1Y3QgdHJhaXQ8c3BlYz4gXAorICAgIDogQk9PU1RfVFRfQVVYX1NJWkVfVF9CQVNFKEMpIFwKK3sgXAorfTsgXAorLyoqLwpkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3NpemVfdF90cmFpdF91bmRlZi5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvc2l6ZV90X3RyYWl0X3VuZGVmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjdmZDkxCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3NpemVfdF90cmFpdF91bmRlZi5ocHAKQEAgLTAsMCArMSwxNiBAQAorCisvLyBOTyBJTkNMVURFIEdVQVJEUywgVEhFIEhFQURFUiBJUyBJTlRFTkRFRCBGT1IgTVVMVElQTEUgSU5DTFVTSU9OCisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAkU291cmNlJAorLy8gJERhdGU6IDIwMDQtMDktMDIgMDg6NDE6MzcgLTA3MDAgKFRodSwgMDIgU2VwIDIwMDQpICQKKy8vICRSZXZpc2lvbjogMjQ4NzQgJAorCisjdW5kZWYgQk9PU1RfVFRfQVVYX1NJWkVfVF9UUkFJVF9ERUYxCisjdW5kZWYgQk9PU1RfVFRfQVVYX1NJWkVfVF9UUkFJVF9TUEVDMQorI3VuZGVmIEJPT1NUX1RUX0FVWF9TSVpFX1RfVFJBSVRfUEFSVElBTF9TUEVDMV8xCmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdGVtcGxhdGVfYXJpdHlfc3BlYy5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdGVtcGxhdGVfYXJpdHlfc3BlYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU5YjQyMgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90ZW1wbGF0ZV9hcml0eV9zcGVjLmhwcApAQCAtMCwwICsxLDMxIEBACisKKy8vIE5PIElOQ0xVREUgR1VBUkRTLCBUSEUgSEVBREVSIElTIElOVEVOREVEIEZPUiBNVUxUSVBMRSBJTkNMVVNJT04KKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpbmNsdWRlIDxib29zdC9tcGwvaW50LmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYXV4Xy90ZW1wbGF0ZV9hcml0eV9md2QuaHBwPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL3ByZXByb2Nlc3Nvci9wYXJhbXMuaHBwPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2NvbmZpZy9sYW1iZGEuaHBwPgorI2luY2x1ZGUgPGJvb3N0L21wbC9hdXhfL2NvbmZpZy9vdmVybG9hZF9yZXNvbHV0aW9uLmhwcD4KKworI2lmIGRlZmluZWQoQk9PU1RfTVBMX0NGR19OT19GVUxMX0xBTUJEQV9TVVBQT1JUKSBcCisgICAgJiYgZGVmaW5lZChCT09TVF9NUExfQ0ZHX0JST0tFTl9PVkVSTE9BRF9SRVNPTFVUSU9OKQorIyAgIGRlZmluZSBCT09TVF9UVF9BVVhfVEVNUExBVEVfQVJJVFlfU1BFQyhpLCBuYW1lKSBcCituYW1lc3BhY2UgbXBsIHsgbmFtZXNwYWNlIGF1eCB7IFwKK3RlbXBsYXRlPCBCT09TVF9NUExfUFBfUEFSQU1TKGksIHR5cGVuYW1lIFQpID4gXAorc3RydWN0IHRlbXBsYXRlX2FyaXR5PCBcCisgICAgICAgICAgbmFtZTwgQk9PU1RfTVBMX1BQX1BBUkFNUyhpLCBUKSA+IFwKKyAgICAgICAgPiBcCisgICAgOiBpbnRfPGk+IFwKK3sgXAorfTsgXAorfX0gXAorLyoqLworI2Vsc2UKKyMgICBkZWZpbmUgQk9PU1RfVFRfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoaSwgbmFtZSkgLyoqLworI2VuZGlmCmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF9kZWYuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjRmODQ4Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcApAQCAtMCwwICsxLDY3IEBACisKKy8vIE5PIElOQ0xVREUgR1VBUkRTLCBUSEUgSEVBREVSIElTIElOVEVOREVEIEZPUiBNVUxUSVBMRSBJTkNMVVNJT04KKworLy8gQ29weXJpZ2h0IEFsZWtzZXkgR3VydG92b3kgMjAwMi0yMDA0CisvLworLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAKKy8vIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQgCisvLyBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICRTb3VyY2UkCisvLyAkRGF0ZTogMjAxMS0wNC0yNSAwNToyNjo0OCAtMDcwMCAoTW9uLCAyNSBBcHIgMjAxMSkgJAorLy8gJFJldmlzaW9uOiA3MTQ4MSAkCisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdGVtcGxhdGVfYXJpdHlfc3BlYy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2F1eF8vbGFtYmRhX3N1cHBvcnQuaHBwPgorCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0RFRjEodHJhaXQsVCxyZXN1bHQpIFwKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4gc3RydWN0IHRyYWl0IFwKK3sgXAorcHVibGljOlwKKyAgICB0eXBlZGVmIHJlc3VsdCB0eXBlOyBcCisgICAgQk9PU1RfTVBMX0FVWF9MQU1CREFfU1VQUE9SVCgxLHRyYWl0LChUKSkgXAorfTsgXAorXAorQk9PU1RfVFRfQVVYX1RFTVBMQVRFX0FSSVRZX1NQRUMoMSx0cmFpdCkgXAorLyoqLworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1NQRUMxKHRyYWl0LHNwZWMscmVzdWx0KSBcCit0ZW1wbGF0ZTw+IHN0cnVjdCB0cmFpdDxzcGVjPiBcCit7IFwKK3B1YmxpYzpcCisgICAgdHlwZWRlZiByZXN1bHQgdHlwZTsgXAorICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlRfU1BFQygxLHRyYWl0LChzcGVjKSkgXAorfTsgXAorLyoqLworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0lNUExfU1BFQzEodHJhaXQsc3BlYyxyZXN1bHQpIFwKK3RlbXBsYXRlPD4gc3RydWN0IHRyYWl0IyNfaW1wbDxzcGVjPiBcCit7IFwKK3B1YmxpYzpcCisgICAgdHlwZWRlZiByZXN1bHQgdHlwZTsgXAorfTsgXAorLyoqLworCisjZGVmaW5lIEJPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMShwYXJhbSx0cmFpdCxzcGVjLHJlc3VsdCkgXAordGVtcGxhdGU8IHBhcmFtID4gc3RydWN0IHRyYWl0PHNwZWM+IFwKK3sgXAorcHVibGljOlwKKyAgICB0eXBlZGVmIHJlc3VsdCB0eXBlOyBcCit9OyBcCisvKiovCisKKyNkZWZpbmUgQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHBhcmFtMSxwYXJhbTIsdHJhaXQsc3BlYyxyZXN1bHQpIFwKK3RlbXBsYXRlPCBwYXJhbTEsIHBhcmFtMiA+IHN0cnVjdCB0cmFpdDxzcGVjPiBcCit7IFwKK3B1YmxpYzpcCisgICAgdHlwZWRlZiByZXN1bHQ7IFwKK307IFwKKy8qKi8KKworI2RlZmluZSBCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9JTVBMX1BBUlRJQUxfU1BFQzFfMShwYXJhbSx0cmFpdCxzcGVjLHJlc3VsdCkgXAordGVtcGxhdGU8IHBhcmFtID4gc3RydWN0IHRyYWl0IyNfaW1wbDxzcGVjPiBcCit7IFwKK3B1YmxpYzpcCisgICAgdHlwZWRlZiByZXN1bHQgdHlwZTsgXAorfTsgXAorLyoqLwpkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfdW5kZWYuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfdW5kZWYuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0ZjE0ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHAKQEAgLTAsMCArMSwxOSBAQAorCisvLyBOTyBJTkNMVURFIEdVQVJEUywgVEhFIEhFQURFUiBJUyBJTlRFTkRFRCBGT1IgTVVMVElQTEUgSU5DTFVTSU9OCisKKy8vIENvcHlyaWdodCBBbGVrc2V5IEd1cnRvdm95IDIwMDItMjAwNAorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gCisvLyAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IAorLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisvLyAkU291cmNlJAorLy8gJERhdGU6IDIwMDQtMDktMDIgMDg6NDE6MzcgLTA3MDAgKFRodSwgMDIgU2VwIDIwMDQpICQKKy8vICRSZXZpc2lvbjogMjQ4NzQgJAorCisjdW5kZWYgQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfREVGMQorI3VuZGVmIEJPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1NQRUMxCisjdW5kZWYgQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfSU1QTF9TUEVDMQorI3VuZGVmIEJPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMQorI3VuZGVmIEJPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMgorI3VuZGVmIEJPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0lNUExfUEFSVElBTF9TUEVDMV8xCmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvd3JhcC5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvd3JhcC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk4NTExMwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC93cmFwLmhwcApAQCAtMCwwICsxLDE4IEBACisvLyAgKEMpIENvcHlyaWdodCBEYXZpZCBBYnJhaGFtcyAyMDAyLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfREVUQUlMX1dSQVBfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0RFVEFJTF9XUkFQX0hQUF9JTkNMVURFRAorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIHR5cGVfdHJhaXRzIHsKKwordGVtcGxhdGUgPGNsYXNzIFQ+IHN0cnVjdCB3cmFwIHt9OworCit9fSAvLyBuYW1lc3BhY2UgbmRuYm9vc3Q6OnR5cGVfdHJhaXRzCisKKyNlbmRpZiAvLyBCT09TVF9UVF9ERVRBSUxfV1JBUF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwveWVzX25vX3R5cGUuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNmNiNjgKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9kZXRhaWwveWVzX25vX3R5cGUuaHBwCkBAIC0wLDAgKzEsMjYgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIGFuZCBTdGV2ZSBDbGVhcnkgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisvLworLy8gIG1hY3JvcyBhbmQgaGVscGVycyBmb3Igd29ya2luZyB3aXRoIGludGVncmFsLWNvbnN0YW50LWV4cHJlc3Npb25zLgorCisjaWZuZGVmIEJPT1NUX1RUX0RFVEFJTF9ZRVNfTk9fVFlQRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfREVUQUlMX1lFU19OT19UWVBFX0hQUF9JTkNMVURFRAorCituYW1lc3BhY2UgbmRuYm9vc3QgeworbmFtZXNwYWNlIHR5cGVfdHJhaXRzIHsKKwordHlwZWRlZiBjaGFyIHllc190eXBlOworc3RydWN0IG5vX3R5cGUKK3sKKyAgIGNoYXIgcGFkZGluZ1s4XTsKK307CisKK30gLy8gbmFtZXNwYWNlIHR5cGVfdHJhaXRzCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYgLy8gQk9PU1RfVFRfREVUQUlMX1lFU19OT19UWVBFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfY29uc3RydWN0b3IuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfY29uc3RydWN0b3IuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYjlhMzMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9oYXNfdHJpdmlhbF9jb25zdHJ1Y3Rvci5ocHAKQEAgLTAsMCArMSw1MSBAQAorCisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9IQVNfVFJJVklBTF9DT05TVFJVQ1RPUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX1RSSVZJQUxfQ09OU1RSVUNUT1JfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2ludHJpbnNpY3MuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvZC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHA+CisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBoYXNfdHJpdmlhbF9jdG9yX2ltcGwKK3sKKyNpZmRlZiBCT09TVF9IQVNfVFJJVklBTF9DT05TVFJVQ1RPUgorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9kPFQ+Ojp2YWx1ZSwKKyAgICAgICAgIEJPT1NUX0hBU19UUklWSUFMX0NPTlNUUlVDVE9SKFQpCisgICAgICA+Ojp2YWx1ZSkpOworI2Vsc2UKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3BvZDxUPjo6dmFsdWUsCisgICAgICAgICBmYWxzZQorICAgICAgPjo6dmFsdWUpKTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaGFzX3RyaXZpYWxfY29uc3RydWN0b3IsVCw6Om5kbmJvb3N0OjpkZXRhaWw6Omhhc190cml2aWFsX2N0b3JfaW1wbDxUPjo6dmFsdWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGhhc190cml2aWFsX2RlZmF1bHRfY29uc3RydWN0b3IsVCw6Om5kbmJvb3N0OjpkZXRhaWw6Omhhc190cml2aWFsX2N0b3JfaW1wbDxUPjo6dmFsdWUpCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9IQVNfVFJJVklBTF9DT05TVFJVQ1RPUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2Rlc3RydWN0b3IuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaGFzX3RyaXZpYWxfZGVzdHJ1Y3Rvci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVjNjY2NQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2hhc190cml2aWFsX2Rlc3RydWN0b3IuaHBwCkBAIC0wLDAgKzEsNDkgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfcG9kLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX29yLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGhhc190cml2aWFsX2R0b3JfaW1wbAoreworI2lmZGVmIEJPT1NUX0hBU19UUklWSUFMX0RFU1RSVUNUT1IKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IEJPT1NUX0hBU19UUklWSUFMX0RFU1RSVUNUT1IoVCkpOworI2Vsc2UKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IDo6bmRuYm9vc3Q6OmlzX3BvZDxUPjo6dmFsdWUpOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShoYXNfdHJpdmlhbF9kZXN0cnVjdG9yLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjpoYXNfdHJpdmlhbF9kdG9yX2ltcGw8VD46OnZhbHVlKQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfdHJpdmlhbF9kZXN0cnVjdG9yLHZvaWQsZmFsc2UpCisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfdHJpdmlhbF9kZXN0cnVjdG9yLHZvaWQgY29uc3QsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfdHJpdmlhbF9kZXN0cnVjdG9yLHZvaWQgY29uc3Qgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShoYXNfdHJpdmlhbF9kZXN0cnVjdG9yLHZvaWQgdm9sYXRpbGUsZmFsc2UpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0hBU19UUklWSUFMX0RFU1RSVUNUT1JfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9pY2UuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaWNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzRiYzRiCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvaWNlLmhwcApAQCAtMCwwICsxLDIwIEBACisKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayBhbmQgU3RldmUgQ2xlYXJ5IDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorLy8KKy8vICBtYWNyb3MgYW5kIGhlbHBlcnMgZm9yIHdvcmtpbmcgd2l0aCBpbnRlZ3JhbC1jb25zdGFudC1leHByZXNzaW9ucy4KKworI2lmbmRlZiBCT09TVF9UVF9JQ0VfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lDRV9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9hbmQuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfbm90LmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX2VxLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lDRV9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2ludGVncmFsX2NvbnN0YW50LmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL2ludGVncmFsX2NvbnN0YW50LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjU3ZWNkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvaW50ZWdyYWxfY29uc3RhbnQuaHBwCkBAIC0wLDAgKzEsNTMgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDA1LiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSAKKy8vICBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSAKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVFlQRV9UUkFJVFNfSU5URUdSQUxfQ09OU1RBTlRfSFBQCisjZGVmaW5lIEJPT1NUX1RZUEVfVFJBSVRTX0lOVEVHUkFMX0NPTlNUQU5UX0hQUAorCisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tcGwvYm9vbC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvbXBsL2ludGVncmFsX2MuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3R7CisKKyNpZiBkZWZpbmVkKEJPT1NUX05PX0RFUEVOREVOVF9UWVBFU19JTl9URU1QTEFURV9WQUxVRV9QQVJBTUVURVJTKSB8fCBkZWZpbmVkKF9fQk9STEFORENfXykKK3RlbXBsYXRlIDxjbGFzcyBULCBpbnQgdmFsPgorI2Vsc2UKK3RlbXBsYXRlIDxjbGFzcyBULCBUIHZhbD4KKyNlbmRpZgorc3RydWN0IGludGVncmFsX2NvbnN0YW50IDogcHVibGljIG1wbDo6aW50ZWdyYWxfYzxULCB2YWw+Cit7CisgICB0eXBlZGVmIGludGVncmFsX2NvbnN0YW50PFQsdmFsPiB0eXBlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgaW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCx0cnVlPiA6IHB1YmxpYyBtcGw6OnRydWVfIAoreworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQywgPCAxMzAwKQorIyBwcmFnbWEgd2FybmluZyhwdXNoKQorIyBwcmFnbWEgd2FybmluZyhkaXNhYmxlOjQwOTcpCisgICB0eXBlZGVmIG1wbDo6dHJ1ZV8gYmFzZV87CisgICB1c2luZyBiYXNlXzo6dmFsdWU7CisjIHByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorICAgdHlwZWRlZiBpbnRlZ3JhbF9jb25zdGFudDxib29sLHRydWU+IHR5cGU7Cit9OwordGVtcGxhdGU8PiBzdHJ1Y3QgaW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCxmYWxzZT4gOiBwdWJsaWMgbXBsOjpmYWxzZV8gCit7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApCisjIHByYWdtYSB3YXJuaW5nKHB1c2gpCisjIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDA5NykKKyAgIHR5cGVkZWYgbXBsOjpmYWxzZV8gYmFzZV87CisgICB1c2luZyBiYXNlXzo6dmFsdWU7CisjIHByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorICAgdHlwZWRlZiBpbnRlZ3JhbF9jb25zdGFudDxib29sLGZhbHNlPiB0eXBlOworfTsKKwordHlwZWRlZiBpbnRlZ3JhbF9jb25zdGFudDxib29sLHRydWU+IHRydWVfdHlwZTsKK3R5cGVkZWYgaW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCxmYWxzZT4gZmFsc2VfdHlwZTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2ludHJpbnNpY3MuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzgxNmE2ZAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2ludHJpbnNpY3MuaHBwCkBAIC0wLDAgKzEsMjkyIEBACisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9JTlRSSU5TSUNTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JTlRSSU5TSUNTX0hQUF9JTkNMVURFRAorCisjaWZuZGVmIEJPT1NUX1RUX0NPTkZJR19IUFBfSU5DTFVERUQKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorI2VuZGlmCisKKy8vCisvLyBIZWxwZXIgbWFjcm9zIGZvciBidWlsdGluIGNvbXBpbGVyIHN1cHBvcnQuCisvLyBJZiB5b3VyIGNvbXBpbGVyIGhhcyBidWlsdGluIHN1cHBvcnQgZm9yIGFueSBvZiB0aGUgZm9sbG93aW5nCisvLyB0cmFpdHMgY29uY2VwdHMsIHRoZW4gcmVkZWZpbmUgdGhlIGFwcHJvcHJpYXRlIG1hY3JvcyB0byBwaWNrCisvLyB1cCBvbiB0aGUgY29tcGlsZXIgc3VwcG9ydDoKKy8vCisvLyAodGhlc2Ugc2hvdWxkIGxhcmdlbHkgaWdub3JlIGN2LXF1YWxpZmllcnMpCisvLyBCT09TVF9JU19VTklPTihUKSBzaG91bGQgZXZhbHVhdGUgdG8gdHJ1ZSBpZiBUIGlzIGEgdW5pb24gdHlwZQorLy8gQk9PU1RfSVNfUE9EKFQpIHNob3VsZCBldmFsdWF0ZSB0byB0cnVlIGlmIFQgaXMgYSBQT0QgdHlwZQorLy8gQk9PU1RfSVNfRU1QVFkoVCkgc2hvdWxkIGV2YWx1YXRlIHRvIHRydWUgaWYgVCBpcyBhbiBlbXB0eSBjbGFzcyB0eXBlIChhbmQgbm90IGEgdW5pb24pCisvLyBCT09TVF9IQVNfVFJJVklBTF9DT05TVFJVQ1RPUihUKSBzaG91bGQgZXZhbHVhdGUgdG8gdHJ1ZSBpZiAiVCB4OyIgaGFzIG5vIGVmZmVjdAorLy8gQk9PU1RfSEFTX1RSSVZJQUxfQ09QWShUKSBzaG91bGQgZXZhbHVhdGUgdG8gdHJ1ZSBpZiBUKHQpIDw9PT4gbWVtY3B5CisvLyBCT09TVF9IQVNfVFJJVklBTF9BU1NJR04oVCkgc2hvdWxkIGV2YWx1YXRlIHRvIHRydWUgaWYgdCA9IHUgPD09PiBtZW1jcHkKKy8vIEJPT1NUX0hBU19UUklWSUFMX0RFU1RSVUNUT1IoVCkgc2hvdWxkIGV2YWx1YXRlIHRvIHRydWUgaWYgflQoKSBoYXMgbm8gZWZmZWN0CisvLyBCT09TVF9IQVNfTk9USFJPV19DT05TVFJVQ1RPUihUKSBzaG91bGQgZXZhbHVhdGUgdG8gdHJ1ZSBpZiAiVCB4OyIgY2FuIG5vdCB0aHJvdworLy8gQk9PU1RfSEFTX05PVEhST1dfQ09QWShUKSBzaG91bGQgZXZhbHVhdGUgdG8gdHJ1ZSBpZiBUKHQpIGNhbiBub3QgdGhyb3cKKy8vIEJPT1NUX0hBU19OT1RIUk9XX0FTU0lHTihUKSBzaG91bGQgZXZhbHVhdGUgdG8gdHJ1ZSBpZiB0ID0gdSBjYW4gbm90IHRocm93CisvLyBCT09TVF9IQVNfVklSVFVBTF9ERVNUUlVDVE9SKFQpIHNob3VsZCBldmFsdWF0ZSB0byB0cnVlIFQgaGFzIGEgdmlydHVhbCBkZXN0cnVjdG9yCisvLworLy8gVGhlIGZvbGxvd2luZyBjYW4gYWxzbyBiZSBkZWZpbmVkOiB3aGVuIGRldGVjdGVkIG91ciBpbXBsZW1lbnRhdGlvbiBpcyBncmVhdGx5IHNpbXBsaWZpZWQuCisvLworLy8gQk9PU1RfSVNfQUJTVFJBQ1QoVCkgdHJ1ZSBpZiBUIGlzIGFuIGFic3RyYWN0IHR5cGUKKy8vIEJPT1NUX0lTX0JBU0VfT0YoVCxVKSB0cnVlIGlmIFQgaXMgYSBiYXNlIGNsYXNzIG9mIFUKKy8vIEJPT1NUX0lTX0NMQVNTKFQpIHRydWUgaWYgVCBpcyBhIGNsYXNzIHR5cGUgKGFuZCBub3QgYSB1bmlvbikKKy8vIEJPT1NUX0lTX0NPTlZFUlRJQkxFKFQsVSkgdHJ1ZSBpZiBUIGlzIGNvbnZlcnRpYmxlIHRvIFUKKy8vIEJPT1NUX0lTX0VOVU0oVCkgdHJ1ZSBpcyBUIGlzIGFuIGVudW0KKy8vIEJPT1NUX0lTX1BPTFlNT1JQSElDKFQpIHRydWUgaWYgVCBpcyBhIHBvbHltb3JwaGljIHR5cGUKKy8vIEJPT1NUX0FMSUdOTUVOVF9PRihUKSBzaG91bGQgZXZhbHVhdGUgdG8gdGhlIGFsaWdubWVudCByZXF1aXJlbWVudHMgb2YgdHlwZSBULgorCisjaWZkZWYgQk9PU1RfSEFTX1NHSV9UWVBFX1RSQUlUUworICAgIC8vIEhvb2sgaW50byBTR0kncyBfX3R5cGVfdHJhaXRzIGNsYXNzLCB0aGlzIHdpbGwgcGljayB1cCB1c2VyIHN1cHBsaWVkCisgICAgLy8gc3BlY2lhbGl6YXRpb25zIGFzIHdlbGwgYXMgU0dJIC0gY29tcGlsZXIgc3VwcGxpZWQgc3BlY2lhbGl6YXRpb25zLgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorIyAgIGlmZGVmIF9fTmV0QlNEX18KKyAgICAgIC8vIFRoZXJlIGFyZSB0d28gZGlmZmVyZW50IHZlcnNpb25zIG9mIHR5cGVfdHJhaXRzLmggb24gTmV0QlNEIG9uIFNwYXJrCisgICAgICAvLyB1c2UgYW4gaW1wbGljaXQgaW5jbHVkZSB2aWEgYWxnb3JpdGhtIGluc3RlYWQsIHRvIG1ha2Ugc3VyZSB3ZSBnZXQKKyAgICAgIC8vIHRoZSBzYW1lIHZlcnNpb24gYXMgdGhlIHN0ZCBsaWI6CisjICAgICBpbmNsdWRlIDxhbGdvcml0aG0+CisjICAgZWxzZQorIyAgICBpbmNsdWRlIDx0eXBlX3RyYWl0cy5oPgorIyAgIGVuZGlmCisjICAgZGVmaW5lIEJPT1NUX0lTX1BPRChUKSA6Om5kbmJvb3N0Ojppc19zYW1lPCB0eXBlbmFtZSA6Ol9fdHlwZV90cmFpdHM8VD46OmlzX1BPRF90eXBlLCA6Ol9fdHJ1ZV90eXBlPjo6dmFsdWUKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQ09OU1RSVUNUT1IoVCkgOjpuZG5ib29zdDo6aXNfc2FtZTwgdHlwZW5hbWUgOjpfX3R5cGVfdHJhaXRzPFQ+OjpoYXNfdHJpdmlhbF9kZWZhdWx0X2NvbnN0cnVjdG9yLCA6Ol9fdHJ1ZV90eXBlPjo6dmFsdWUKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQ09QWShUKSA6Om5kbmJvb3N0Ojppc19zYW1lPCB0eXBlbmFtZSA6Ol9fdHlwZV90cmFpdHM8VD46Omhhc190cml2aWFsX2NvcHlfY29uc3RydWN0b3IsIDo6X190cnVlX3R5cGU+Ojp2YWx1ZQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9BU1NJR04oVCkgOjpuZG5ib29zdDo6aXNfc2FtZTwgdHlwZW5hbWUgOjpfX3R5cGVfdHJhaXRzPFQ+OjpoYXNfdHJpdmlhbF9hc3NpZ25tZW50X29wZXJhdG9yLCA6Ol9fdHJ1ZV90eXBlPjo6dmFsdWUKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihUKSA6Om5kbmJvb3N0Ojppc19zYW1lPCB0eXBlbmFtZSA6Ol9fdHlwZV90cmFpdHM8VD46Omhhc190cml2aWFsX2Rlc3RydWN0b3IsIDo6X190cnVlX3R5cGU+Ojp2YWx1ZQorCisjICAgaWZkZWYgX19zZ2kKKyMgICAgICBkZWZpbmUgQk9PU1RfSEFTX1RZUEVfVFJBSVRTX0lOVFJJTlNJQ1MKKyMgICBlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fTVNMX0NQUF9fKSAmJiAoX19NU0xfQ1BQX18gPj0gMHg4MDAwKQorICAgIC8vIE1ldHJvd2Vya3MgY29tcGlsZXIgaXMgYWNxdWlyaW5nIGludHJpbnNpYyB0eXBlIHRyYWl0cyBzdXBwb3J0CisgICAgLy8gcG9zdCB2ZXJzaW9uIDguICBXZSBob29rIGludG8gdGhlIHB1Ymxpc2hlZCBpbnRlcmZhY2UgdG8gcGljayB1cAorICAgIC8vIHVzZXIgZGVmaW5lZCBzcGVjaWFsaXphdGlvbnMgYXMgd2VsbCBhcyBjb21waWxlciBpbnRyaW5zaWNzIGFzIAorICAgIC8vIGFuZCB3aGVuIHRoZXkgYmVjb21lIGF2YWlsYWJsZToKKyMgICBpbmNsdWRlIDxtc2xfdXRpbGl0eT4KKyMgICBkZWZpbmUgQk9PU1RfSVNfVU5JT04oVCkgQk9PU1RfU1REX0VYVEVOU0lPTl9OQU1FU1BBQ0U6OmlzX3VuaW9uPFQ+Ojp2YWx1ZQorIyAgIGRlZmluZSBCT09TVF9JU19QT0QoVCkgQk9PU1RfU1REX0VYVEVOU0lPTl9OQU1FU1BBQ0U6OmlzX1BPRDxUPjo6dmFsdWUKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQ09OU1RSVUNUT1IoVCkgQk9PU1RfU1REX0VYVEVOU0lPTl9OQU1FU1BBQ0U6Omhhc190cml2aWFsX2RlZmF1bHRfY3RvcjxUPjo6dmFsdWUKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQ09QWShUKSBCT09TVF9TVERfRVhURU5TSU9OX05BTUVTUEFDRTo6aGFzX3RyaXZpYWxfY29weV9jdG9yPFQ+Ojp2YWx1ZQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9BU1NJR04oVCkgQk9PU1RfU1REX0VYVEVOU0lPTl9OQU1FU1BBQ0U6Omhhc190cml2aWFsX2Fzc2lnbm1lbnQ8VD46OnZhbHVlCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0RFU1RSVUNUT1IoVCkgQk9PU1RfU1REX0VYVEVOU0lPTl9OQU1FU1BBQ0U6Omhhc190cml2aWFsX2R0b3I8VD46OnZhbHVlCisjICAgZGVmaW5lIEJPT1NUX0hBU19UWVBFX1RSQUlUU19JTlRSSU5TSUNTCisjZW5kaWYKKworI2lmIChkZWZpbmVkKEJPT1NUX01TVkMpICYmIGRlZmluZWQoQk9PU1RfTVNWQ19GVUxMX1ZFUikgJiYgKEJPT1NUX01TVkNfRlVMTF9WRVIgPj0xNDAwNTAyMTUpKVwKKyAgICAgICAgIHx8IChkZWZpbmVkKEJPT1NUX0lOVEVMKSAmJiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTUwMCkpCisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfZnVuY3Rpb24uaHBwPgorCisjICAgZGVmaW5lIEJPT1NUX0lTX1VOSU9OKFQpIF9faXNfdW5pb24oVCkKKyMgICBkZWZpbmUgQk9PU1RfSVNfUE9EKFQpIChfX2lzX3BvZChUKSAmJiBfX2hhc190cml2aWFsX2NvbnN0cnVjdG9yKFQpKQorIyAgIGRlZmluZSBCT09TVF9JU19FTVBUWShUKSBfX2lzX2VtcHR5KFQpCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0NPTlNUUlVDVE9SKFQpIF9faGFzX3RyaXZpYWxfY29uc3RydWN0b3IoVCkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQ09QWShUKSAoX19oYXNfdHJpdmlhbF9jb3B5KFQpfHwgKCA6Om5kbmJvb3N0Ojppc19wb2Q8VD46OnZhbHVlICYmICE6Om5kbmJvb3N0Ojppc192b2xhdGlsZTxUPjo6dmFsdWUpKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9BU1NJR04oVCkgKF9faGFzX3RyaXZpYWxfYXNzaWduKFQpIHx8ICggOjpuZG5ib29zdDo6aXNfcG9kPFQ+Ojp2YWx1ZSAmJiAhIDo6bmRuYm9vc3Q6OmlzX2NvbnN0PFQ+Ojp2YWx1ZSAmJiAhOjpuZG5ib29zdDo6aXNfdm9sYXRpbGU8VD46OnZhbHVlKSkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfREVTVFJVQ1RPUihUKSAoX19oYXNfdHJpdmlhbF9kZXN0cnVjdG9yKFQpIHx8IDo6bmRuYm9vc3Q6OmlzX3BvZDxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19OT1RIUk9XX0NPTlNUUlVDVE9SKFQpIChfX2hhc19ub3Rocm93X2NvbnN0cnVjdG9yKFQpIHx8IDo6bmRuYm9vc3Q6Omhhc190cml2aWFsX2NvbnN0cnVjdG9yPFQ+Ojp2YWx1ZSkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQ09QWShUKSAoX19oYXNfbm90aHJvd19jb3B5KFQpIHx8IDo6bmRuYm9vc3Q6Omhhc190cml2aWFsX2NvcHk8VD46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9IQVNfTk9USFJPV19BU1NJR04oVCkgKF9faGFzX25vdGhyb3dfYXNzaWduKFQpIHx8IDo6bmRuYm9vc3Q6Omhhc190cml2aWFsX2Fzc2lnbjxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19WSVJUVUFMX0RFU1RSVUNUT1IoVCkgX19oYXNfdmlydHVhbF9kZXN0cnVjdG9yKFQpCisKKyMgICBkZWZpbmUgQk9PU1RfSVNfQUJTVFJBQ1QoVCkgX19pc19hYnN0cmFjdChUKQorIyAgIGRlZmluZSBCT09TVF9JU19CQVNFX09GKFQsVSkgKF9faXNfYmFzZV9vZihULFUpICYmICFpc19zYW1lPFQsVT46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9JU19DTEFTUyhUKSBfX2lzX2NsYXNzKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX0NPTlZFUlRJQkxFKFQsVSkgKChfX2lzX2NvbnZlcnRpYmxlX3RvKFQsVSkgfHwgKGlzX3NhbWU8VCxVPjo6dmFsdWUgJiYgIWlzX2Z1bmN0aW9uPFU+Ojp2YWx1ZSkpICYmICFfX2lzX2Fic3RyYWN0KFUpKQorIyAgIGRlZmluZSBCT09TVF9JU19FTlVNKFQpIF9faXNfZW51bShUKQorLy8gIFRoaXMgb25lIGRvZXNuJ3QgcXVpdGUgYWx3YXlzIGRvIHRoZSByaWdodCB0aGluZzoKKy8vICAjICAgZGVmaW5lIEJPT1NUX0lTX1BPTFlNT1JQSElDKFQpIF9faXNfcG9seW1vcnBoaWMoVCkKKy8vICBUaGlzIG9uZSBmYWlscyBpZiB0aGUgZGVmYXVsdCBhbGlnbm1lbnQgaGFzIGJlZW4gY2hhbmdlZCB3aXRoIC9acDoKKy8vICAjICAgZGVmaW5lIEJPT1NUX0FMSUdOTUVOVF9PRihUKSBfX2FsaWdub2YoVCkKKworIyAgIGRlZmluZSBCT09TVF9IQVNfVFlQRV9UUkFJVFNfSU5UUklOU0lDUworI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fRE1DX18pICYmIChfX0RNQ19fID49IDB4ODQ4KQorLy8gRm9yIERpZ2l0YWwgTWFycyBDKyssIHd3dy5kaWdpdGFsbWFycy5jb20KKyMgICBkZWZpbmUgQk9PU1RfSVNfVU5JT04oVCkgKF9fdHlwZWluZm8oVCkgJiAweDQwMCkKKyMgICBkZWZpbmUgQk9PU1RfSVNfUE9EKFQpIChfX3R5cGVpbmZvKFQpICYgMHg4MDApCisjICAgZGVmaW5lIEJPT1NUX0lTX0VNUFRZKFQpIChfX3R5cGVpbmZvKFQpICYgMHgxMDAwKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9DT05TVFJVQ1RPUihUKSAoX190eXBlaW5mbyhUKSAmIDB4MTApCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0NPUFkoVCkgKF9fdHlwZWluZm8oVCkgJiAweDIwKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9BU1NJR04oVCkgKF9fdHlwZWluZm8oVCkgJiAweDQwKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKFQpIChfX3R5cGVpbmZvKFQpICYgMHg4KQorIyAgIGRlZmluZSBCT09TVF9IQVNfTk9USFJPV19DT05TVFJVQ1RPUihUKSAoX190eXBlaW5mbyhUKSAmIDB4ODApCisjICAgZGVmaW5lIEJPT1NUX0hBU19OT1RIUk9XX0NPUFkoVCkgKF9fdHlwZWluZm8oVCkgJiAweDEwMCkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQVNTSUdOKFQpIChfX3R5cGVpbmZvKFQpICYgMHgyMDApCisjICAgZGVmaW5lIEJPT1NUX0hBU19WSVJUVUFMX0RFU1RSVUNUT1IoVCkgKF9fdHlwZWluZm8oVCkgJiAweDQpCisjICAgZGVmaW5lIEJPT1NUX0hBU19UWVBFX1RSQUlUU19JTlRSSU5TSUNTCisjZW5kaWYKKworI2lmIGRlZmluZWQoQk9PU1RfQ0xBTkcpICYmIGRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyMgICBpbmNsdWRlIDxjc3RkZGVmPgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwPgorCisjICAgaWYgX19oYXNfZmVhdHVyZShpc191bmlvbikKKyMgICAgIGRlZmluZSBCT09TVF9JU19VTklPTihUKSBfX2lzX3VuaW9uKFQpCisjICAgZW5kaWYKKyMgICBpZiAoIWRlZmluZWQoX19HTElCQ1hYX18pIHx8IChfX0dMSUJDWFhfXyA+PSAyMDA4MDMwNiAmJiBfX0dMSUJDWFhfXyAhPSAyMDA4MDUxOSkpICYmIF9faGFzX2ZlYXR1cmUoaXNfcG9kKQorIyAgICAgZGVmaW5lIEJPT1NUX0lTX1BPRChUKSBfX2lzX3BvZChUKQorIyAgIGVuZGlmCisjICAgaWYgKCFkZWZpbmVkKF9fR0xJQkNYWF9fKSB8fCAoX19HTElCQ1hYX18gPj0gMjAwODAzMDYgJiYgX19HTElCQ1hYX18gIT0gMjAwODA1MTkpKSAmJiBfX2hhc19mZWF0dXJlKGlzX2VtcHR5KQorIyAgICAgZGVmaW5lIEJPT1NUX0lTX0VNUFRZKFQpIF9faXNfZW1wdHkoVCkKKyMgICBlbmRpZgorIyAgIGlmIF9faGFzX2ZlYXR1cmUoaGFzX3RyaXZpYWxfY29uc3RydWN0b3IpCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQ09OU1RSVUNUT1IoVCkgX19oYXNfdHJpdmlhbF9jb25zdHJ1Y3RvcihUKQorIyAgIGVuZGlmCisjICAgaWYgX19oYXNfZmVhdHVyZShoYXNfdHJpdmlhbF9jb3B5KQorIyAgICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0NPUFkoVCkgKF9faGFzX3RyaXZpYWxfY29weShUKSAmJiAhaXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlKQorIyAgIGVuZGlmCisjICAgaWYgX19oYXNfZmVhdHVyZShoYXNfdHJpdmlhbF9hc3NpZ24pCisjICAgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQVNTSUdOKFQpIChfX2hhc190cml2aWFsX2Fzc2lnbihUKSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlKQorIyAgIGVuZGlmCisjICAgaWYgX19oYXNfZmVhdHVyZShoYXNfdHJpdmlhbF9kZXN0cnVjdG9yKQorIyAgICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0RFU1RSVUNUT1IoVCkgX19oYXNfdHJpdmlhbF9kZXN0cnVjdG9yKFQpCisjICAgZW5kaWYKKyMgICBpZiBfX2hhc19mZWF0dXJlKGhhc19ub3Rocm93X2NvbnN0cnVjdG9yKQorIyAgICAgZGVmaW5lIEJPT1NUX0hBU19OT1RIUk9XX0NPTlNUUlVDVE9SKFQpIF9faGFzX25vdGhyb3dfY29uc3RydWN0b3IoVCkKKyMgICBlbmRpZgorIyAgIGlmIF9faGFzX2ZlYXR1cmUoaGFzX25vdGhyb3dfY29weSkKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfTk9USFJPV19DT1BZKFQpIChfX2hhc19ub3Rocm93X2NvcHkoVCkgJiYgIWlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZSAmJiAhaXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSkKKyMgICBlbmRpZgorIyAgIGlmIF9faGFzX2ZlYXR1cmUoaGFzX25vdGhyb3dfYXNzaWduKQorIyAgICAgZGVmaW5lIEJPT1NUX0hBU19OT1RIUk9XX0FTU0lHTihUKSAoX19oYXNfbm90aHJvd19hc3NpZ24oVCkgJiYgIWlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZSkKKyMgICBlbmRpZgorIyAgIGlmIF9faGFzX2ZlYXR1cmUoaGFzX3ZpcnR1YWxfZGVzdHJ1Y3RvcikKKyMgICAgIGRlZmluZSBCT09TVF9IQVNfVklSVFVBTF9ERVNUUlVDVE9SKFQpIF9faGFzX3ZpcnR1YWxfZGVzdHJ1Y3RvcihUKQorIyAgIGVuZGlmCisjICAgaWYgX19oYXNfZmVhdHVyZShpc19hYnN0cmFjdCkKKyMgICAgIGRlZmluZSBCT09TVF9JU19BQlNUUkFDVChUKSBfX2lzX2Fic3RyYWN0KFQpCisjICAgZW5kaWYKKyMgICBpZiBfX2hhc19mZWF0dXJlKGlzX2Jhc2Vfb2YpCisjICAgICBkZWZpbmUgQk9PU1RfSVNfQkFTRV9PRihULFUpIChfX2lzX2Jhc2Vfb2YoVCxVKSAmJiAhaXNfc2FtZTxULFU+Ojp2YWx1ZSkKKyMgICBlbmRpZgorIyAgIGlmIF9faGFzX2ZlYXR1cmUoaXNfY2xhc3MpCisjICAgICBkZWZpbmUgQk9PU1RfSVNfQ0xBU1MoVCkgX19pc19jbGFzcyhUKQorIyAgIGVuZGlmCisjICAgaWYgX19oYXNfZmVhdHVyZShpc19jb252ZXJ0aWJsZV90bykKKyMgICAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX2Fic3RyYWN0LmhwcD4KKyMgICAgIGRlZmluZSBCT09TVF9JU19DT05WRVJUSUJMRShULFUpIChfX2lzX2NvbnZlcnRpYmxlX3RvKFQsVSkgJiYgITo6bmRuYm9vc3Q6OmlzX2Fic3RyYWN0PFU+Ojp2YWx1ZSkKKyMgICBlbmRpZgorIyAgIGlmIF9faGFzX2ZlYXR1cmUoaXNfZW51bSkKKyMgICAgIGRlZmluZSBCT09TVF9JU19FTlVNKFQpIF9faXNfZW51bShUKQorIyAgIGVuZGlmCisjICAgaWYgX19oYXNfZmVhdHVyZShpc19wb2x5bW9ycGhpYykKKyMgICAgIGRlZmluZSBCT09TVF9JU19QT0xZTU9SUEhJQyhUKSBfX2lzX3BvbHltb3JwaGljKFQpCisjICAgZW5kaWYKKyMgICBkZWZpbmUgQk9PU1RfQUxJR05NRU5UX09GKFQpIF9fYWxpZ25vZihUKQorCisjICAgZGVmaW5lIEJPT1NUX0hBU19UWVBFX1RSQUlUU19JTlRSSU5TSUNTCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19HTlVDX18pICYmICgoX19HTlVDX18gPiA0KSB8fCAoKF9fR05VQ19fID09IDQpICYmIChfX0dOVUNfTUlOT1JfXyA+PSAzKSAmJiAhZGVmaW5lZChfX0dDQ1hNTF9fKSkpICYmICFkZWZpbmVkKEJPT1NUX0NMQU5HKQorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwPgorCisjaWZkZWYgQk9PU1RfSU5URUwKKyMgIGRlZmluZSBCT09TVF9JTlRFTF9UVF9PUFRTIHx8IGlzX3BvZDxUPjo6dmFsdWUKKyNlbHNlCisjICBkZWZpbmUgQk9PU1RfSU5URUxfVFRfT1BUUworI2VuZGlmCisKKyMgICBkZWZpbmUgQk9PU1RfSVNfVU5JT04oVCkgX19pc191bmlvbihUKQorIyAgIGRlZmluZSBCT09TVF9JU19QT0QoVCkgX19pc19wb2QoVCkKKyMgICBkZWZpbmUgQk9PU1RfSVNfRU1QVFkoVCkgX19pc19lbXB0eShUKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9DT05TVFJVQ1RPUihUKSAoKF9faGFzX3RyaXZpYWxfY29uc3RydWN0b3IoVCkgQk9PU1RfSU5URUxfVFRfT1BUUykgJiYgISA6Om5kbmJvb3N0Ojppc192b2xhdGlsZTxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0NPUFkoVCkgKChfX2hhc190cml2aWFsX2NvcHkoVCkgQk9PU1RfSU5URUxfVFRfT1BUUykgJiYgIWlzX3JlZmVyZW5jZTxUPjo6dmFsdWUgJiYgISA6Om5kbmJvb3N0Ojppc192b2xhdGlsZTxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0FTU0lHTihUKSAoKF9faGFzX3RyaXZpYWxfYXNzaWduKFQpIEJPT1NUX0lOVEVMX1RUX09QVFMpICYmICEgOjpuZG5ib29zdDo6aXNfdm9sYXRpbGU8VD46OnZhbHVlICYmICEgOjpuZG5ib29zdDo6aXNfY29uc3Q8VD46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKFQpIChfX2hhc190cml2aWFsX2Rlc3RydWN0b3IoVCkgQk9PU1RfSU5URUxfVFRfT1BUUykKKyMgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQ09OU1RSVUNUT1IoVCkgKF9faGFzX25vdGhyb3dfY29uc3RydWN0b3IoVCkgQk9PU1RfSU5URUxfVFRfT1BUUykKKyMgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQ09QWShUKSAoKF9faGFzX25vdGhyb3dfY29weShUKSBCT09TVF9JTlRFTF9UVF9PUFRTKSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlICYmICFpc19yZWZlcmVuY2U8VD46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9IQVNfTk9USFJPV19BU1NJR04oVCkgKChfX2hhc19ub3Rocm93X2Fzc2lnbihUKSBCT09TVF9JTlRFTF9UVF9PUFRTKSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlICYmICFpc19jb25zdDxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19WSVJUVUFMX0RFU1RSVUNUT1IoVCkgX19oYXNfdmlydHVhbF9kZXN0cnVjdG9yKFQpCisKKyMgICBkZWZpbmUgQk9PU1RfSVNfQUJTVFJBQ1QoVCkgX19pc19hYnN0cmFjdChUKQorIyAgIGRlZmluZSBCT09TVF9JU19CQVNFX09GKFQsVSkgKF9faXNfYmFzZV9vZihULFUpICYmICFpc19zYW1lPFQsVT46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9JU19DTEFTUyhUKSBfX2lzX2NsYXNzKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX0VOVU0oVCkgX19pc19lbnVtKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX1BPTFlNT1JQSElDKFQpIF9faXNfcG9seW1vcnBoaWMoVCkKKyMgICBpZiAoIWRlZmluZWQodW5peCkgJiYgIWRlZmluZWQoX191bml4X18pKSB8fCBkZWZpbmVkKF9fTFA2NF9fKQorICAgICAgLy8gR0NDIHNvbWV0aW1lcyBsaWVzIGFib3V0IGFsaWdubWVudCByZXF1aXJlbWVudHMKKyAgICAgIC8vIG9mIHR5cGUgZG91YmxlIG9uIDMyLWJpdCB1bml4IHBsYXRmb3JtcywgdXNlIHRoZQorICAgICAgLy8gb2xkIGltcGxlbWVudGF0aW9uIGluc3RlYWQgaW4gdGhhdCBjYXNlOgorIyAgICAgZGVmaW5lIEJPT1NUX0FMSUdOTUVOVF9PRihUKSBfX2FsaWdub2ZfXyhUKQorIyAgIGVuZGlmCisKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RZUEVfVFJBSVRTX0lOVFJJTlNJQ1MKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX2doc19fKSAmJiAoX19HSFNfVkVSU0lPTl9OVU1CRVIgPj0gNjAwKQorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3NhbWUuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwPgorCisjICAgZGVmaW5lIEJPT1NUX0lTX1VOSU9OKFQpIF9faXNfdW5pb24oVCkKKyMgICBkZWZpbmUgQk9PU1RfSVNfUE9EKFQpIF9faXNfcG9kKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX0VNUFRZKFQpIF9faXNfZW1wdHkoVCkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQ09OU1RSVUNUT1IoVCkgX19oYXNfdHJpdmlhbF9jb25zdHJ1Y3RvcihUKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9DT1BZKFQpIChfX2hhc190cml2aWFsX2NvcHkoVCkgJiYgIWlzX3JlZmVyZW5jZTxUPjo6dmFsdWUgJiYgIWlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZSkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RSSVZJQUxfQVNTSUdOKFQpIChfX2hhc190cml2aWFsX2Fzc2lnbihUKSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9ERVNUUlVDVE9SKFQpIF9faGFzX3RyaXZpYWxfZGVzdHJ1Y3RvcihUKQorIyAgIGRlZmluZSBCT09TVF9IQVNfTk9USFJPV19DT05TVFJVQ1RPUihUKSBfX2hhc19ub3Rocm93X2NvbnN0cnVjdG9yKFQpCisjICAgZGVmaW5lIEJPT1NUX0hBU19OT1RIUk9XX0NPUFkoVCkgKF9faGFzX25vdGhyb3dfY29weShUKSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlICYmICFpc19yZWZlcmVuY2U8VD46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9IQVNfTk9USFJPV19BU1NJR04oVCkgKF9faGFzX25vdGhyb3dfYXNzaWduKFQpICYmICFpc192b2xhdGlsZTxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19WSVJUVUFMX0RFU1RSVUNUT1IoVCkgX19oYXNfdmlydHVhbF9kZXN0cnVjdG9yKFQpCisKKyMgICBkZWZpbmUgQk9PU1RfSVNfQUJTVFJBQ1QoVCkgX19pc19hYnN0cmFjdChUKQorIyAgIGRlZmluZSBCT09TVF9JU19CQVNFX09GKFQsVSkgKF9faXNfYmFzZV9vZihULFUpICYmICFpc19zYW1lPFQsVT46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9JU19DTEFTUyhUKSBfX2lzX2NsYXNzKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX0VOVU0oVCkgX19pc19lbnVtKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX1BPTFlNT1JQSElDKFQpIF9faXNfcG9seW1vcnBoaWMoVCkKKyMgICBkZWZpbmUgQk9PU1RfQUxJR05NRU5UX09GKFQpIF9fYWxpZ25vZl9fKFQpCisKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1RZUEVfVFJBSVRTX0lOVFJJTlNJQ1MKKyNlbmRpZgorCisjIGlmIGRlZmluZWQoX19DT0RFR0VBUkNfXykKKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvbGF0aWxlLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc192b2lkLmhwcD4KKworIyAgIGRlZmluZSBCT09TVF9JU19VTklPTihUKSBfX2lzX3VuaW9uKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX1BPRChUKSBfX2lzX3BvZChUKQorIyAgIGRlZmluZSBCT09TVF9JU19FTVBUWShUKSBfX2lzX2VtcHR5KFQpCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0NPTlNUUlVDVE9SKFQpIChfX2hhc190cml2aWFsX2RlZmF1bHRfY29uc3RydWN0b3IoVCkpCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0NPUFkoVCkgKF9faGFzX3RyaXZpYWxfY29weV9jb25zdHJ1Y3RvcihUKSAmJiAhaXNfdm9sYXRpbGU8VD46OnZhbHVlICYmICFpc19yZWZlcmVuY2U8VD46OnZhbHVlKQorIyAgIGRlZmluZSBCT09TVF9IQVNfVFJJVklBTF9BU1NJR04oVCkgKF9faGFzX3RyaXZpYWxfYXNzaWduKFQpICYmICFpc192b2xhdGlsZTxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19UUklWSUFMX0RFU1RSVUNUT1IoVCkgKF9faGFzX3RyaXZpYWxfZGVzdHJ1Y3RvcihUKSkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQ09OU1RSVUNUT1IoVCkgKF9faGFzX25vdGhyb3dfZGVmYXVsdF9jb25zdHJ1Y3RvcihUKSkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX05PVEhST1dfQ09QWShUKSAoX19oYXNfbm90aHJvd19jb3B5X2NvbnN0cnVjdG9yKFQpICYmICFpc192b2xhdGlsZTxUPjo6dmFsdWUgJiYgIWlzX3JlZmVyZW5jZTxUPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0hBU19OT1RIUk9XX0FTU0lHTihUKSAoX19oYXNfbm90aHJvd19hc3NpZ24oVCkgJiYgIWlzX3ZvbGF0aWxlPFQ+Ojp2YWx1ZSkKKyMgICBkZWZpbmUgQk9PU1RfSEFTX1ZJUlRVQUxfREVTVFJVQ1RPUihUKSBfX2hhc192aXJ0dWFsX2Rlc3RydWN0b3IoVCkKKworIyAgIGRlZmluZSBCT09TVF9JU19BQlNUUkFDVChUKSBfX2lzX2Fic3RyYWN0KFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX0JBU0VfT0YoVCxVKSAoX19pc19iYXNlX29mKFQsVSkgJiYgIWlzX3ZvaWQ8VD46OnZhbHVlICYmICFpc192b2lkPFU+Ojp2YWx1ZSkKKyMgICBkZWZpbmUgQk9PU1RfSVNfQ0xBU1MoVCkgX19pc19jbGFzcyhUKQorIyAgIGRlZmluZSBCT09TVF9JU19DT05WRVJUSUJMRShULFUpIChfX2lzX2NvbnZlcnRpYmxlKFQsVSkgfHwgaXNfdm9pZDxVPjo6dmFsdWUpCisjICAgZGVmaW5lIEJPT1NUX0lTX0VOVU0oVCkgX19pc19lbnVtKFQpCisjICAgZGVmaW5lIEJPT1NUX0lTX1BPTFlNT1JQSElDKFQpIF9faXNfcG9seW1vcnBoaWMoVCkKKyMgICBkZWZpbmUgQk9PU1RfQUxJR05NRU5UX09GKFQpIGFsaWdub2YoVCkKKworIyAgIGRlZmluZSBCT09TVF9IQVNfVFlQRV9UUkFJVFNfSU5UUklOU0lDUworI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9UVF9JTlRSSU5TSUNTX0hQUF9JTkNMVURFRAorCisKKworCisKKworCmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9pc19hYnN0cmFjdC5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9pc19hYnN0cmFjdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQzYmM2YwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX2Fic3RyYWN0LmhwcApAQCAtMCwwICsxLDE1MyBAQAorI2lmbmRlZiBCT09TVF9UVF9JU19BQlNUUkFDVF9DTEFTU19IUFAKKyNkZWZpbmUgQk9PU1RfVFRfSVNfQUJTVFJBQ1RfQ0xBU1NfSFBQCisKKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPj0gMTAyMCkKKyMgcHJhZ21hIG9uY2UKKyNlbmRpZgorCisvLy8vLy8vLy8xLy8vLy8vLy8vMi8vLy8vLy8vLzMvLy8vLy8vLy80Ly8vLy8vLy8vNS8vLy8vLy8vLzYvLy8vLy8vLy83Ly8vLy8vLy8vOAorLy8gaXNfYWJzdHJhY3RfY2xhc3MuaHBwOgorLy8KKy8vICAoQykgQ29weXJpZ2h0IDIwMDIgUmFuaSBTaGFyb25pIChyYW5pX3NoYXJvbmlAaG90bWFpbC5jb20pIGFuZCBSb2JlcnQgUmFtZXkKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGlzIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlCisvLyAgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisvLyAgCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnIGZvciB1cGRhdGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgcmV2aXNpb24gaGlzdG9yeS4KKy8vCisKKy8vIENvbXBpbGUgdHlwZSBkaXNjb3Zlcnkgd2hldGhlciBnaXZlbiB0eXBlIGlzIGFic3RyYWN0IGNsYXNzIG9yIG5vdC4KKy8vCisvLyAgIFJlcXVpcmVzIERSIDMzNyB0byBiZSBzdXBwb3J0ZWQgYnkgY29tcGlsZXIKKy8vICAgKGh0dHA6Ly9hbnViaXMuZGt1dWcuZGsvanRjMS9zYzIyL3dnMjEvZG9jcy9jd2dfYWN0aXZlLmh0bWwjMzM3KS4KKy8vCisvLworLy8gQmVsaWV2ZWQgKEphbiAyMDA0KSB0byB3b3JrIG9uOgorLy8gIC0gR0NDIDMuNAorLy8gIC0gVkMrKyA3LjEKKy8vICAtIGNvbXBpbGVycyB3aXRoIG5ldyBFREcgZnJvbnRlbmQgKEludGVsIEMrKyA3LCBDb21lYXUgNC4zLjIpCisvLworLy8gRG9lc24ndCB3b3JrIG9uOgorLy8gIC0gVkMrKzYsIFZDKys3LjAgYW5kIGxlc3MKKy8vICAtIEdDQyAzLjMuWCBhbmQgbGVzcworLy8gIC0gQm9ybGFuZCBDKysgNiBhbmQgbGVzcworLy8gICAgICAKKy8vCisvLyBIaXN0b3J5OgorLy8gIC0gT3JpZ2luYWxseSB3cml0dGVuIGJ5IFJhbmkgU2hhcm9uaSwgc2VlCisvLyAgICBodHRwOi8vZ3JvdXBzLmdvb2dsZS5jb20vZ3JvdXBzP3NlbG09ZGY4OTNkYTYuMDIwNzExMDYxMy43NWIyZmU5MCU0MHBvc3RpbmcuZ29vZ2xlLmNvbQorLy8gICAgQXQgdGhpcyB0aW1lIHN1cHBvcnRlZCBieSBFREcgKEludGVsIEMrKyA3LCBDb21lYXUgNC4zLjIpIGFuZCBWQzcuMS4KKy8vICAtIEFkYXB0ZWQgYW5kIGFkZGVkIGludG8gQm9vc3QuU2VyaWFsaXphdGlvbiBsaWJyYXJ5IGJ5IFJvYmVydCBSYW1leSAKKy8vICAgIChzdGFydGluZyB3aXRoIHN1Ym1pc3Npb24gIzEwKS4KKy8vICAtIEphbiAyMDA0OiBHQ0MgMy40IGZpeGVkIHRvIHN1cHBvcnQgRFIzMzcgKEdpb3Zhbm5pIEJham8pLgorLy8gIC0gSmFuIDIwMDQ6IG1vZGlmaWVkIHRvIGJlIHBhcnQgb2YgQm9vc3QuVHlwZVRyYWl0cyAoUGF2ZWwgVm96ZW5pbGVrKS4KKy8vICAtIE5vdiAyMDA0OiBDaHJpc3RvcGggTHVkd2lnIGZvdW5kIHRoYXQgdGhlIGltcGxlbWVudGF0aW9uIGRpZCBub3Qgd29yayB3aXRoCisvLyAgICAgICAgICAgICAgdGVtcGxhdGUgdHlwZXMgYW5kIGdjYy0zLjQgb3IgVkM3LjEsIGZpeCBkdWUgdG8gQ2hyaXN0b3BoIEx1ZHdpZworLy8gICAgICAgICAgICAgIGFuZCBKb2huIE1hZGRvY2suCisvLyAgLSBEZWMgMjAwNDogQWRkZWQgbmV3IGNvbmZpZyBtYWNybyBCT09TVF9OT19JU19BQlNUUkFDVCB3aGljaCBjYXVzZXMgdGhlIHRlbXBsYXRlCisvLyAgICAgICAgICAgICAgdG8gZGVncmFkZSBncmFjZWZ1bGx5LCByYXRoZXIgdGhhbiB0cmFzaCB0aGUgY29tcGlsZXIgKEpvaG4gTWFkZG9jaykuCisvLworCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisjaWZuZGVmIEJPT1NUX0lTX0FCU1RSQUNUCisjaW5jbHVkZSA8Ym9vc3Qvc3RhdGljX2Fzc2VydC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19jbGFzcy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9hbmQuaHBwPgorI2lmZGVmIEJPT1NUX05PX0lTX0FCU1RSQUNUCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfcG9seW1vcnBoaWMuaHBwPgorI2VuZGlmCisjZW5kaWYKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKK25hbWVzcGFjZSBkZXRhaWx7CisKKyNpZmRlZiBCT09TVF9JU19BQlNUUkFDVAordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfYWJzdHJhY3RfaW1wCit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBCT09TVF9JU19BQlNUUkFDVChUKSk7Cit9OworI2VsaWYgIWRlZmluZWQoQk9PU1RfTk9fSVNfQUJTVFJBQ1QpCit0ZW1wbGF0ZTxjbGFzcyBUPgorc3RydWN0IGlzX2Fic3RyYWN0X2ltcDIKK3sKKyAgIC8vIERlZHVjdGlvbiBmYWlscyBpZiBUIGlzIHZvaWQsIGZ1bmN0aW9uIHR5cGUsIAorICAgLy8gcmVmZXJlbmNlIHR5cGUgKDE0LjguMi8yKW9yIGFuIGFic3RyYWN0IGNsYXNzIHR5cGUgCisgICAvLyBhY2NvcmRpbmcgdG8gcmV2aWV3IHN0YXR1cyBpc3N1ZSAjMzM3CisgICAvLworICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgIHN0YXRpYyB0eXBlX3RyYWl0czo6bm9fdHlwZSBjaGVja19zaWcoVSAoKilbMV0pOworICAgdGVtcGxhdGU8Y2xhc3MgVT4KKyAgIHN0YXRpYyB0eXBlX3RyYWl0czo6eWVzX3R5cGUgY2hlY2tfc2lnKC4uLik7CisgICAvLworICAgLy8gVCBtdXN0IGJlIGEgY29tcGxldGUgdHlwZSwgZnVydGhlciBpZiBUIGlzIGEgdGVtcGxhdGUgdGhlbgorICAgLy8gaXQgbXVzdCBiZSBpbnN0YW50aWF0ZWQgaW4gb3JkZXIgZm9yIHVzIHRvIGdldCB0aGUgcmlnaHQgYW5zd2VyOgorICAgLy8KKyAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoc2l6ZW9mKFQpICE9IDApOworCisgICAvLyBHQ0MyIHdvbid0IGV2ZW4gcGFyc2UgdGhpcyB0ZW1wbGF0ZSBpZiB3ZSBlbWJlZCB0aGUgY29tcHV0YXRpb24KKyAgIC8vIG9mIHMxIGluIHRoZSBjb21wdXRhdGlvbiBvZiB2YWx1ZS4KKyNpZmRlZiBfX0dOVUNfXworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHN0ZDo6c2l6ZV90LCBzMSA9IHNpemVvZihpc19hYnN0cmFjdF9pbXAyPFQ+Ojp0ZW1wbGF0ZSBjaGVja19zaWc8VD4oMCkpKTsKKyNlbHNlCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDX0ZVTExfVkVSLCA+PSAxNDAwNTAwMDApCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjYzMzQpCisjZW5kaWYKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgczEgPSBzaXplb2YoY2hlY2tfc2lnPFQ+KDApKSk7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDX0ZVTExfVkVSLCA+PSAxNDAwNTAwMDApCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisjZW5kaWYKKyAgICAKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IAorICAgICAgKHMxID09IHNpemVvZih0eXBlX3RyYWl0czo6eWVzX3R5cGUpKSk7Cit9OworCit0ZW1wbGF0ZSA8Ym9vbCB2Pgorc3RydWN0IGlzX2Fic3RyYWN0X3NlbGVjdAoreworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBzdHJ1Y3QgcmViaW5kCisgICB7CisgICAgICB0eXBlZGVmIGlzX2Fic3RyYWN0X2ltcDI8VD4gdHlwZTsKKyAgIH07Cit9OwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc19hYnN0cmFjdF9zZWxlY3Q8ZmFsc2U+Cit7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHN0cnVjdCByZWJpbmQKKyAgIHsKKyAgICAgIHR5cGVkZWYgZmFsc2VfdHlwZSB0eXBlOworICAgfTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX2Fic3RyYWN0X2ltcAoreworICAgdHlwZWRlZiBpc19hYnN0cmFjdF9zZWxlY3Q8IDo6bmRuYm9vc3Q6OmlzX2NsYXNzPFQ+Ojp2YWx1ZT4gc2VsZWN0b3I7CisgICB0eXBlZGVmIHR5cGVuYW1lIHNlbGVjdG9yOjp0ZW1wbGF0ZSByZWJpbmQ8VD4gYmluZGVyOworICAgdHlwZWRlZiB0eXBlbmFtZSBiaW5kZXI6OnR5cGUgdHlwZTsKKworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gdHlwZTo6dmFsdWUpOworfTsKKworI2VuZGlmCit9CisKKyNpZm5kZWYgQk9PU1RfTk9fSVNfQUJTVFJBQ1QKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfYWJzdHJhY3QsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2Fic3RyYWN0X2ltcDxUPjo6dmFsdWUpCisjZWxzZQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19hYnN0cmFjdCxULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfcG9seW1vcnBoaWNfaW1wPFQ+Ojp2YWx1ZSkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy9CT09TVF9UVF9JU19BQlNUUkFDVF9DTEFTU19IUFAKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX2FyaXRobWV0aWMuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfYXJpdGhtZXRpYy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZkNmZkZQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX2FyaXRobWV0aWMuaHBwCkBAIC0wLDAgKzEsNTEgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfQVJJVEhNRVRJQ19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfQVJJVEhNRVRJQ19IUFBfSU5DTFVERUQKKworI2lmICFkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19pbnRlZ3JhbC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfZmxvYXQuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfb3IuaHBwPgorI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmICFkZWZpbmVkKF9fQ09ERUdFQVJDX18pCituYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPgorc3RydWN0IGlzX2FyaXRobWV0aWNfaW1wbAoreyAKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAKKyAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8IAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfZmxvYXQ8VD46OnZhbHVlCisgICAgICAgID46OnZhbHVlKSk7IAorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisjZW5kaWYKKworLy8qIGlzIGEgdHlwZSBUIGFuIGFyaXRobWV0aWMgdHlwZSBkZXNjcmliZWQgaW4gdGhlIHN0YW5kYXJkICgzLjkuMXA4KQorI2lmIGRlZmluZWQoX19DT0RFR0VBUkNfXykKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfYXJpdGhtZXRpYyxULF9faXNfYXJpdGhtZXRpYyhUKSkKKyNlbHNlCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2FyaXRobWV0aWMsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2FyaXRobWV0aWNfaW1wbDxUPjo6dmFsdWUpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX0FSSVRITUVUSUNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQxMWNiMQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX2FycmF5LmhwcApAQCAtMCwwICsxLDkxIEBACisKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZAorLy8gIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4gIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworCisvLyBTb21lIGZpeGVzIGZvciBpc19hcnJheSBhcmUgYmFzZWQgb24gYSBuZXdzZ3JvdXAgcG9zdGluZyBieSBKb25hdGhhbiBMdW5kcXVpc3QuCisKKworI2lmbmRlZiBCT09TVF9UVF9JU19BUlJBWV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfQVJSQVlfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorCisjaWZkZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3dyYXAuaHBwPgorI2VuZGlmCisKKyNpbmNsdWRlIDxjc3RkZGVmPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisjaWYgZGVmaW5lZCggX19DT0RFR0VBUkNfXyApCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2FycmF5LFQsX19pc19hcnJheShUKSkKKyNlbGlmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2FycmF5LFQsZmFsc2UpCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fQVJSQVlfVFlQRV9TUEVDSUFMSVpBVElPTlMpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLGlzX2FycmF5LFRbTl0sdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHN0ZDo6c2l6ZV90IE4saXNfYXJyYXksVCBjb25zdFtOXSx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsc3RkOjpzaXplX3QgTixpc19hcnJheSxUIHZvbGF0aWxlW05dLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLGlzX2FycmF5LFQgY29uc3Qgdm9sYXRpbGVbTl0sdHJ1ZSkKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHg2MDApICYmICFkZWZpbmVkKF9fSUJNQ1BQX18pICYmICAhQk9PU1RfV09SS0FST1VORChfX0RNQ19fLCBCT09TVF9URVNURURfQVQoMHg4NDApKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfYXJyYXksVFtdLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19hcnJheSxUIGNvbnN0W10sdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX2FycmF5LFQgdm9sYXRpbGVbXSx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfYXJyYXksVCBjb25zdCB2b2xhdGlsZVtdLHRydWUpCisjZW5kaWYKKyNlbmRpZgorCisjZWxzZSAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK25hbWVzcGFjZSBkZXRhaWwgeworCit1c2luZyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGU7Cit1c2luZyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZTsKK3VzaW5nIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp3cmFwOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IFQoKiBpc19hcnJheV90ZXN0ZXIxKHdyYXA8VD4pICkod3JhcDxUPik7CitjaGFyIEJPT1NUX1RUX0RFQ0wgaXNfYXJyYXlfdGVzdGVyMSguLi4pOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVD4gbm9fdHlwZSBpc19hcnJheV90ZXN0ZXIyKFQoKikod3JhcDxUPikpOworeWVzX3R5cGUgQk9PU1RfVFRfREVDTCBpc19hcnJheV90ZXN0ZXIyKC4uLik7CisKK3RlbXBsYXRlPCB0eXBlbmFtZSBUID4KK3N0cnVjdCBpc19hcnJheV9pbXBsCit7IAorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IAorICAgICAgICBzaXplb2YoOjpuZG5ib29zdDo6ZGV0YWlsOjppc19hcnJheV90ZXN0ZXIyKAorICAgICAgICAgICAgOjpuZG5ib29zdDo6ZGV0YWlsOjppc19hcnJheV90ZXN0ZXIxKAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp3cmFwPFQ+KCkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICkpID09IDEKKyAgICApOworfTsKKworI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19hcnJheSx2b2lkLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19hcnJheSx2b2lkIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19hcnJheSx2b2lkIHZvbGF0aWxlLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19hcnJheSx2b2lkIGNvbnN0IHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2FycmF5LFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19hcnJheV9pbXBsPFQ+Ojp2YWx1ZSkKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX0FSUkFZX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvaXNfY2xhc3MuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfY2xhc3MuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwYjFlZmMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9pc19jbGFzcy5ocHAKQEAgLTAsMCArMSwxNDAgQEAKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZAorLy8gIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC0yMDAzLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworCisjaWZuZGVmIEJPT1NUX1RUX0lTX0NMQVNTX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19DTEFTU19IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisjaWZuZGVmIEJPT1NUX0lTX0NMQVNTCisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfdW5pb24uaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX25vdC5ocHA+CisKKyNpZmRlZiBCT09TVF9UVF9IQVNfQ09ORk9STUlOR19JU19DTEFTU19JTVBMRU1FTlRBVElPTgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHA+CisjZWxzZQorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3NjYWxhci5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfYXJyYXkuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfdm9pZC5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfZnVuY3Rpb24uaHBwPgorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9JU19DTEFTUworCisjaWZkZWYgX19FREdfVkVSU0lPTl9fCisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcD4KKyNlbmRpZgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgZGV0YWlsIHsKKworI2lmbmRlZiBCT09TVF9JU19DTEFTUworI2lmZGVmIEJPT1NUX1RUX0hBU19DT05GT1JNSU5HX0lTX0NMQVNTX0lNUExFTUVOVEFUSU9OCisKKy8vIFRoaXMgaXMgYWN0dWFsbHkgdGhlIGNvbmZvcm1pbmcgaW1wbGVtZW50YXRpb24gd2hpY2ggd29ya3Mgd2l0aAorLy8gYWJzdHJhY3QgY2xhc3Nlcy4gIEhvd2V2ZXIsIGVub3VnaCBjb21waWxlcnMgaGF2ZSB0cm91YmxlIHdpdGgKKy8vIGl0IHRoYXQgbW9zdCB3aWxsIHVzZSB0aGUgb25lIGluCisvLyBib29zdC90eXBlX3RyYWl0cy9vYmplY3RfdHJhaXRzLmhwcC4gVGhpcyBpbXBsZW1lbnRhdGlvbgorLy8gYWN0dWFsbHkgd29ya3Mgd2l0aCBWQzcuMCwgYnV0IG90aGVyIGludGVyYWN0aW9ucyBzZWVtIHRvIGZhaWwKKy8vIHdoZW4gd2UgdXNlIGl0LgorCisvLyBpc19jbGFzczw+IG1ldGFmdW5jdGlvbiBkdWUgdG8gUGF1bCBNZW5zb25pZGVzCisvLyAobGVhdmluZ3NAYXR0YmkuY29tKS4gRm9yIG1vcmUgZGV0YWlsczoKKy8vIGh0dHA6Ly9ncm91cHMuZ29vZ2xlLmNvbS9ncm91cHM/aGw9ZW4mc2VsbT0wMDAwMDFjMWNjODMlMjRlMTU0ZDVlMCUyNDc3NzJlNTBjJTQwYzE2MTU1MGEmcm51bT0xCisjaWYgZGVmaW5lZChfX0dOVUNfXykgICYmICFkZWZpbmVkKF9fRURHX1ZFUlNJT05fXykKKwordGVtcGxhdGUgPGNsYXNzIFU+IDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19jbGFzc190ZXN0ZXIodm9pZChVOjoqKSh2b2lkKSk7Cit0ZW1wbGF0ZSA8Y2xhc3MgVT4gOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgaXNfY2xhc3NfdGVzdGVyKC4uLik7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX2NsYXNzX2ltcGwKK3sKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgICAgIHNpemVvZihpc19jbGFzc190ZXN0ZXI8VD4oMCkpID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3VuaW9uPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZQorICAgICAgICA+Ojp2YWx1ZSkKKyAgICAgICAgKTsKK307CisKKyNlbHNlCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX2NsYXNzX2ltcGwKK3sKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVT4gc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBpc19jbGFzc190ZXN0ZXIodm9pZChVOjoqKSh2b2lkKSk7CisgICAgdGVtcGxhdGUgPGNsYXNzIFU+IHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZSBpc19jbGFzc190ZXN0ZXIoLi4uKTsKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgICAgIHNpemVvZihpc19jbGFzc190ZXN0ZXI8VD4oMCkpID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3VuaW9uPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZQorICAgICAgICA+Ojp2YWx1ZSkKKyAgICAgICAgKTsKK307CisKKyNlbmRpZgorCisjZWxzZQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19jbGFzc19pbXBsCit7CisjICAgaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3VuaW9uPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZSwKKyAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3NjYWxhcjxUPjo6dmFsdWUgPjo6dmFsdWUsCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19hcnJheTxUPjo6dmFsdWUgPjo6dmFsdWUsCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19yZWZlcmVuY2U8VD46OnZhbHVlPjo6dmFsdWUsCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc192b2lkPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZSwKKyAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX2Z1bmN0aW9uPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZQorICAgICAgICA+Ojp2YWx1ZSkpOworIyAgIGVsc2UKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3VuaW9uPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZSwKKyAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8IDo6bmRuYm9vc3Q6OmlzX3NjYWxhcjxUPjo6dmFsdWUgPjo6dmFsdWUsCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19hcnJheTxUPjo6dmFsdWUgPjo6dmFsdWUsCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc19yZWZlcmVuY2U8VD46OnZhbHVlPjo6dmFsdWUsCisgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PCA6Om5kbmJvb3N0Ojppc192b2lkPFQ+Ojp2YWx1ZSA+Ojp2YWx1ZQorICAgICAgICA+Ojp2YWx1ZSkpOworIyAgIGVuZGlmCit9OworCisjIGVuZGlmIC8vIEJPT1NUX1RUX0hBU19DT05GT1JNSU5HX0lTX0NMQVNTX0lNUExFTUVOVEFUSU9OCisjIGVsc2UgLy8gQk9PU1RfSVNfQ0xBU1MKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX2NsYXNzX2ltcGwKK3sKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBCT09TVF9JU19DTEFTUyhUKSk7Cit9OworIyBlbmRpZiAvLyBCT09TVF9JU19DTEFTUworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworIyBpZmRlZiBfX0VER19WRVJTSU9OX18KK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoCisgICBpc19jbGFzcyxULCBuZG5ib29zdDo6ZGV0YWlsOjppc19jbGFzc19pbXBsPHR5cGVuYW1lIG5kbmJvb3N0OjpyZW1vdmVfY3Y8VD46OnR5cGU+Ojp2YWx1ZSkKKyMgZWxzZSAKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfY2xhc3MsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2NsYXNzX2ltcGw8VD46OnZhbHVlKQorIyBlbmRpZgorICAgIAorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX0NMQVNTX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvaXNfY29uc3QuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfY29uc3QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4ZTg3MWEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9pc19jb25zdC5ocHAKQEAgLTAsMCArMSwxNjUgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgRGF2ZSBBYnJhaGFtcywgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgCisvLyAgICAgIEhvd2FyZCBIaW5uYW50IGFuZCBKb2huIE1hZGRvY2sgMjAwMC4gCisvLyAgKEMpIENvcHlyaWdodCBNYXQgTWFyY3VzLCBKZXNzZSBKb25lcyBhbmQgQWRvYmUgU3lzdGVtcyBJbmMgMjAwMQorCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisvLyAgICBGaXhlZCBpc19wb2ludGVyLCBpc19yZWZlcmVuY2UsIGlzX2NvbnN0LCBpc192b2xhdGlsZSwgaXNfc2FtZSwgCisvLyAgICBpc19tZW1iZXJfcG9pbnRlciBiYXNlZCBvbiB0aGUgU2ltdWxhdGVkIFBhcnRpYWwgU3BlY2lhbGl6YXRpb24gd29yayAKKy8vICAgIG9mIE1hdCBNYXJjdXMgYW5kIEplc3NlIEpvbmVzLiBTZWUgIGh0dHA6Ly9vcGVuc291cmNlLmFkb2JlLmNvbSBvciAKKy8vICAgIGh0dHA6Ly9ncm91cHMueWFob28uY29tL2dyb3VwL2Jvb3N0L21lc3NhZ2UvNTQ0MSAKKy8vICAgIFNvbWUgd29ya2Fyb3VuZHMgaW4gaGVyZSB1c2UgaWRlYXMgc3VnZ2VzdGVkIGZyb20gIkdlbmVyaWM8UHJvZ3JhbW1pbmc+OiAKKy8vICAgIE1hcHBpbmdzIGJldHdlZW4gVHlwZXMgYW5kIFZhbHVlcyIgCisvLyAgICBieSBBbmRyZWkgQWxleGFuZHJlc2N1IChzZWUgaHR0cDovL3d3dy5jdWouY29tL2V4cGVydHMvMTgxMC9hbGV4YW5kci5odG1sKS4KKworCisjaWZuZGVmIEJPT1NUX1RUX0lTX0NPTlNUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19DT05TVF9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvY3ZfdHJhaXRzX2ltcGwuaHBwPgorIyAgIGlmZGVmIF9fR05VQ19fCisjICAgICAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisjICAgZW5kaWYKKyMgICBpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsIDwgMTQwMCkKKyMgICAgICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2JvdW5kcy5ocHA+CisjICAgZW5kaWYKKyNlbHNlCisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvZmFsc2VfcmVzdWx0LmhwcD4KKyNlbmRpZgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisjaWYgZGVmaW5lZCggX19DT0RFR0VBUkNfXyApCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfY29uc3QsVCxfX2lzX2NvbnN0KFQpKQorCisjZWxpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorCituYW1lc3BhY2UgZGV0YWlseworLy8KKy8vIFdlIGNhbid0IGZpbHRlciBvdXQgcnZhbHVlX3JlZmVyZW5jZXMgYXQgdGhlIHNhbWUgbGV2ZWwgYXMKKy8vIHJlZmVyZW5jZXMgb3Igd2UgZ2V0IGFtYmlndWl0aWVzIGZyb20gbXN2YzoKKy8vCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19jb25zdF9ydmFsdWVfZmlsdGVyCit7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDE0MDApCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSA6Om5kbmJvb3N0OjpkZXRhaWw6OmN2X3RyYWl0c19pbXA8dHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9ib3VuZHM8VD46OnR5cGUqPjo6aXNfY29uc3QpOworI2Vsc2UKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IDo6bmRuYm9vc3Q6OmRldGFpbDo6Y3ZfdHJhaXRzX2ltcDxUKj46OmlzX2NvbnN0KTsKKyNlbmRpZgorfTsKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX2NvbnN0X3J2YWx1ZV9maWx0ZXI8VCYmPgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKyNlbmRpZgorfQorCisvLyogaXMgYSB0eXBlIFQgIGRlY2xhcmVkIGNvbnN0IC0gaXNfY29uc3Q8VD4KK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfY29uc3QsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2NvbnN0X3J2YWx1ZV9maWx0ZXI8VD46OnZhbHVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfY29uc3QsVCYsZmFsc2UpCisKKyNpZiAgZGVmaW5lZChCT09TVF9JTExFR0FMX0NWX1JFRkVSRU5DRVMpCisvLyB0aGVzZSBhcmUgaWxsZWdhbCBzcGVjaWFsaXNhdGlvbnM7IGN2LXF1YWxpZmllcyBhcHBsaWVkIHRvCisvLyByZWZlcmVuY2VzIGhhdmUgbm8gZWZmZWN0IGFjY29yZGluZyB0byBbOC4zLjJwMV0sCisvLyBDKysgQnVpbGRlciByZXF1aXJlcyB0aGVtIHRob3VnaCBhcyBpdCB0cmVhdHMgY3YtcXVhbGlmaWVkCisvLyByZWZlcmVuY2VzIGFzIGRpc3RpbmN0IHR5cGVzLi4uCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19jb25zdCxUJiBjb25zdCxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX2NvbnN0LFQmIHZvbGF0aWxlLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfY29uc3QsVCYgY29uc3Qgdm9sYXRpbGUsZmFsc2UpCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19HTlVDX18pICYmIChfX0dOVUNfXyA8IDMpCisvLyBzcGVjaWFsIGNhc2UgZm9yIGdjYyB3aGVyZSBpbGxlZ2FsbHkgY3YtcXVhbGlmaWVkIHJlZmVyZW5jZSB0eXBlcyBjYW4gYmUKKy8vIGdlbmVyYXRlZCBpbiBzb21lIGNvcm5lciBjYXNlczoKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX2NvbnN0LFQgY29uc3QsISg6Om5kbmJvb3N0Ojppc19yZWZlcmVuY2U8VD46OnZhbHVlKSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX2NvbnN0LFQgdm9sYXRpbGUgY29uc3QsISg6Om5kbmJvb3N0Ojppc19yZWZlcmVuY2U8VD46OnZhbHVlKSkKKyNlbmRpZgorCisjZWxzZQorCituYW1lc3BhY2UgZGV0YWlsIHsKKwordXNpbmcgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlOwordXNpbmcgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGU7CisKK3llc190eXBlIGlzX2NvbnN0X3Rlc3Rlcihjb25zdCB2b2xhdGlsZSB2b2lkKik7Citub190eXBlIGlzX2NvbnN0X3Rlc3Rlcih2b2xhdGlsZSB2b2lkICopOworCit0ZW1wbGF0ZSA8Ym9vbCBpc19yZWYsIGJvb2wgYXJyYXk+CitzdHJ1Y3QgaXNfY29uc3RfaGVscGVyCisgICAgOiBwdWJsaWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmZhbHNlX3Jlc3VsdAoreworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc19jb25zdF9oZWxwZXI8ZmFsc2UsZmFsc2U+Cit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICBzdGF0aWMgVCogdDsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gKAorICAgICAgICAgICAgc2l6ZW9mKG5kbmJvb3N0OjpkZXRhaWw6Onllc190eXBlKSA9PSBzaXplb2YobmRuYm9vc3Q6OmRldGFpbDo6aXNfY29uc3RfdGVzdGVyKHQpKQorICAgICAgICAgICAgKSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXNfY29uc3RfaGVscGVyPGZhbHNlLHRydWU+Cit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICBzdGF0aWMgVCB0OworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoCisgICAgICAgICAgICBzaXplb2YobmRuYm9vc3Q6OmRldGFpbDo6eWVzX3R5cGUpID09IHNpemVvZihuZG5ib29zdDo6ZGV0YWlsOjppc19jb25zdF90ZXN0ZXIoJnQpKQorICAgICAgICAgICAgKSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX2NvbnN0X2ltcGwKKyAgICA6IHB1YmxpYyBpc19jb25zdF9oZWxwZXI8CisgICAgICAgICAgaXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZQorICAgICAgICAsIGlzX2FycmF5PFQ+Ojp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPFQ+Cit7Cit9OworCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX2NvbnN0LHZvaWQsZmFsc2UpCisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX2NvbnN0LHZvaWQgY29uc3QsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfY29uc3Qsdm9pZCB2b2xhdGlsZSxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfY29uc3Qsdm9pZCBjb25zdCB2b2xhdGlsZSx0cnVlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCisvLyogaXMgYSB0eXBlIFQgIGRlY2xhcmVkIGNvbnN0IC0gaXNfY29uc3Q8VD4KK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfY29uc3QsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2NvbnN0X2ltcGw8VD46OnZhbHVlKQorCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfQ09OU1RfSFBQX0lOQ0xVREVECisKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnZlcnRpYmxlLmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnZlcnRpYmxlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDJhMjU5Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfY29udmVydGlibGUuaHBwCkBAIC0wLDAgKzEsNDkyIEBACisKKy8vIENvcHlyaWdodCAyMDAwIEpvaG4gTWFkZG9jayAoam9obkBqb2hubWFkZG9jay5jby51aykKKy8vIENvcHlyaWdodCAyMDAwIEplcmVteSBTaWVrIChqc2lla0Bsc2MubmQuZWR1KQorLy8gQ29weXJpZ2h0IDE5OTksIDIwMDAgSmFha2tvIEphcnZpIChqYWFra28uamFydmlAY3MudXR1LmZpKQorLy8KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfQ09OVkVSVElCTEVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX0NPTlZFUlRJQkxFX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisjaWZuZGVmIEJPT1NUX0lTX0NPTlZFUlRJQkxFCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX2FycmF5LmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pY2UuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX2FyaXRobWV0aWMuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvaWQuaHBwPgorI2lmbmRlZiBCT09TVF9OT19JU19BQlNUUkFDVAorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX2Fic3RyYWN0LmhwcD4KKyNlbmRpZgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2FkZF9sdmFsdWVfcmVmZXJlbmNlLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9hZGRfcnZhbHVlX3JlZmVyZW5jZS5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfZnVuY3Rpb24uaHBwPgorCisjaWYgZGVmaW5lZChfX01XRVJLU19fKQorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9yZWZlcmVuY2UuaHBwPgorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9JU19DT05WRVJUSUJMRQorCisvLyBzaG91bGQgYmUgYWx3YXlzIHRoZSBsYXN0ICNpbmNsdWRlIGRpcmVjdGl2ZQorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpZm5kZWYgQk9PU1RfSVNfQ09OVkVSVElCTEUKKworLy8gaXMgb25lIHR5cGUgY29udmVydGlibGUgdG8gYW5vdGhlcj8KKy8vCisvLyB0aGVyZSBhcmUgbXVsdGlwbGUgdmVyc2lvbnMgb2YgdGhlIGlzX2NvbnZlcnRpYmxlCisvLyB0ZW1wbGF0ZSwgYWxtb3N0IGV2ZXJ5IGNvbXBpbGVyIHNlZW1zIHRvIHJlcXVpcmUgaXRzCisvLyBvd24gdmVyc2lvbi4KKy8vCisvLyBUaGFua3MgdG8gQW5kcmVpIEFsZXhhbmRyZXNjdSBmb3IgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlCisvLyBjb252ZXJzaW9uIGRldGVjdGlvbiB0ZWNobmlxdWUhCisvLworCituYW1lc3BhY2UgZGV0YWlsIHsKKworLy8gTVMgc3BlY2lmaWMgdmVyc2lvbjoKKworI2lmIGRlZmluZWQoQk9PU1RfTVNWQykgJiYgKEJPT1NUX01TVkMgPD0gMTMwMCkKKworLy8gVGhpcyB3b3JrYXJvdW5kIGlzIG5lY2Vzc2FyeSB0byBoYW5kbGUgd2hlbiBGcm9tIGlzIHZvaWQKKy8vIHdoaWNoIGlzIG5vcm1hbGx5IHRha2VuIGNhcmUgb2YgYnkgdGhlIHBhcnRpYWwgc3BlY2lhbGl6YXRpb24KKy8vIG9mIHRoZSBpc19jb252ZXJ0aWJsZSB0eXBlbmFtZS4KK3VzaW5nIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZTsKK3VzaW5nIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlOworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgRnJvbSA+CitzdHJ1Y3QgZG9lc19jb252ZXJzaW9uX2V4aXN0Cit7CisgICAgdGVtcGxhdGU8IHR5cGVuYW1lIFRvID4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHN0YXRpYyBub190eXBlIEJPT1NUX1RUX0RFQ0wgX21fY2hlY2soLi4uKTsKKyAgICAgICAgc3RhdGljIHllc190eXBlIEJPT1NUX1RUX0RFQ0wgX21fY2hlY2soVG8pOworICAgICAgICBzdGF0aWMgdHlwZW5hbWUgYWRkX2x2YWx1ZV9yZWZlcmVuY2U8RnJvbT46OnR5cGUgIF9tX2Zyb207CisgICAgICAgIGVudW0geyB2YWx1ZSA9IHNpemVvZiggX21fY2hlY2soX21fZnJvbSkgKSA9PSBzaXplb2YoeWVzX3R5cGUpIH07CisgICAgfTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVjdCBkb2VzX2NvbnZlcnNpb25fZXhpc3Q8dm9pZD4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVG8gPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgZW51bSB7IHZhbHVlID0gOjpuZG5ib29zdDo6aXNfdm9pZDxUbz46OnZhbHVlIH07CisgICAgfTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9iYXNpY19pbXBsCisgICAgOiBwdWJsaWMgZG9lc19jb252ZXJzaW9uX2V4aXN0PEZyb20+Ojp0ZW1wbGF0ZSByZXN1bHRfPFRvPgoreworfTsKKworI2VsaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIChfX0JPUkxBTkRDX18gPCAweDU2MCkKKy8vCisvLyBzcGVjaWFsIHZlcnNpb24gZm9yIEJvcmxhbmQgY29tcGlsZXJzCisvLyB0aGlzIHZlcnNpb24gYnJlYWtzIHdoZW4gdXNlZCBmb3Igc29tZQorLy8gVURUIGNvbnZlcnNpb25zOgorLy8KK3RlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9pbXBsCit7CisjcHJhZ21hIG9wdGlvbiBwdXNoIC13LTgwNzQKKyAgICAvLyBUaGlzIHdvcmthcm91bmQgZm9yIEJvcmxhbmQgYnJlYWtzIHRoZSBFREcgQysrIGZyb250ZW5kLAorICAgIC8vIHNvIHdlIG9ubHkgdXNlIGl0IGZvciBCb3JsYW5kLgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgY2hlY2tlcgorICAgIHsKKyAgICAgICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlIEJPT1NUX1RUX0RFQ0wgX21fY2hlY2soLi4uKTsKKyAgICAgICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBCT09TVF9UVF9ERUNMIF9tX2NoZWNrKFQpOworICAgIH07CisKKyAgICBzdGF0aWMgdHlwZW5hbWUgYWRkX2x2YWx1ZV9yZWZlcmVuY2U8RnJvbT46OnR5cGUgIF9tX2Zyb207CisgICAgc3RhdGljIGJvb2wgY29uc3QgdmFsdWUgPSBzaXplb2YoIGNoZWNrZXI8VG8+OjpfbV9jaGVjayhfbV9mcm9tKSApCisgICAgICAgID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpOworI3ByYWdtYSBvcHRpb24gcG9wCit9OworCisjZWxpZiBkZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKF9fQk9STEFORENfXykgJiYgKF9fQk9STEFORENfXyA8IDB4NjAwKQorLy8gc3BlY2lhbCB2ZXJzaW9uIGZvciBnY2MgY29tcGlsZXIgKyByZWNlbnQgQm9ybGFuZCB2ZXJzaW9ucworLy8gbm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgcGFzcyBVRFQncyB0aHJvdWdoICguLi4pCisKK3N0cnVjdCBhbnlfY29udmVyc2lvbgoreworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBhbnlfY29udmVyc2lvbihjb25zdCB2b2xhdGlsZSBUJik7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGFueV9jb252ZXJzaW9uKGNvbnN0IFQmKTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYW55X2NvbnZlcnNpb24odm9sYXRpbGUgVCYpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBhbnlfY29udmVyc2lvbihUJik7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IGNoZWNrZXIKK3sKKyAgICBzdGF0aWMgbmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlIF9tX2NoZWNrKGFueV9jb252ZXJzaW9uIC4uLik7CisgICAgc3RhdGljIG5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgX21fY2hlY2soVCwgaW50KTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9iYXNpY19pbXBsCit7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfbHZhbHVlX3JlZmVyZW5jZTxGcm9tPjo6dHlwZSBsdmFsdWVfdHlwZTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF9ydmFsdWVfcmVmZXJlbmNlPEZyb20+Ojp0eXBlIHJ2YWx1ZV90eXBlOworICAgIHN0YXRpYyBsdmFsdWVfdHlwZSBfbV9mcm9tOworI2lmICFkZWZpbmVkKEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTKSAmJiAoKF9fR05VQ19fID4gNCkgfHwgKChfX0dOVUNfXyA9PSA0KSAmJiAoX19HTlVDX01JTk9SX18gPiA2KSkpCisgICAgc3RhdGljIGJvb2wgY29uc3QgdmFsdWUgPQorICAgICAgICBzaXplb2YoIG5kbmJvb3N0OjpkZXRhaWw6OmNoZWNrZXI8VG8+OjpfbV9jaGVjayhzdGF0aWNfY2FzdDxydmFsdWVfdHlwZT4oX21fZnJvbSksIDApICkKKyAgICAgICAgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSk7CisjZWxzZQorICAgIHN0YXRpYyBib29sIGNvbnN0IHZhbHVlID0KKyAgICAgICAgc2l6ZW9mKCBuZG5ib29zdDo6ZGV0YWlsOjpjaGVja2VyPFRvPjo6X21fY2hlY2soX21fZnJvbSwgMCkgKQorICAgICAgICA9PSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKTsKKyNlbmRpZgorfTsKKworI2VsaWYgKGRlZmluZWQoX19FREdfVkVSU0lPTl9fKSAmJiAoX19FREdfVkVSU0lPTl9fID49IDI0NSkgJiYgIWRlZmluZWQoX19JQ0wpKSBcCisgICAgICB8fCBkZWZpbmVkKF9fSUJNQ1BQX18pIHx8IGRlZmluZWQoX19IUF9hQ0MpCisvLworLy8gVGhpcyBpcyAqYWxtb3N0KiBhbiBpZGVhbCB3b3JsZCBpbXBsZW1lbnRhdGlvbiBhcyBpdCBkb2Vzbid0IHJlbHkKKy8vIG9uIHVuZGVmaW5lZCBiZWhhdmlvdXIgYnkgcGFzc2luZyBVRFQncyB0aHJvdWdoICguLi4pLgorLy8gVW5mb3J0dW5hdGVseSBpdCBkb2Vzbid0IHF1aXRlIHBhc3MgYWxsIHRoZSB0ZXN0cyBmb3IgbW9zdCBjb21waWxlcnMgKHNpZ2guLi4pCisvLyBFbmFibGUgdGhpcyBmb3IgeW91ciBjb21waWxlciBpZiBpc19jb252ZXJ0aWJsZV90ZXN0LmNwcCB3aWxsIGNvbXBpbGUgaXQuLi4KKy8vCisvLyBOb3RlIHdlIGRvIG5vdCBlbmFibGUgdGhpcyBmb3IgVkM3LjEsIGJlY2F1c2UgZXZlbiB0aG91Z2ggaXQgcGFzc2VzIGFsbCB0aGUKKy8vIHR5cGVfdHJhaXRzIHRlc3RzIGl0IGlzIGtub3duIHRvIGNhdXNlIHByb2JsZW1zIHdoZW4gaW5zdGFudGlhdGlvbiBvY2N1cnMKKy8vIGRlZXAgd2l0aGluIHRoZSBpbnN0YW50aWF0aW9uIHRyZWUgOi0oCisvLworc3RydWN0IGFueV9jb252ZXJzaW9uCit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGFueV9jb252ZXJzaW9uKGNvbnN0IHZvbGF0aWxlIFQmKTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYW55X2NvbnZlcnNpb24oY29uc3QgVCYpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBhbnlfY29udmVyc2lvbih2b2xhdGlsZSBUJik7CisgICAgLy8gd2UgbmVlZCB0aGlzIGNvbnN0cnVjdG9yIHRvIGNhdGNoIHJlZmVyZW5jZXMgdG8gZnVuY3Rpb25zCisgICAgLy8gKHdoaWNoIGNhbiBub3QgYmUgY3YtcXVhbGlmaWVkKToKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYW55X2NvbnZlcnNpb24oVCYpOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2Jhc2ljX2ltcGwKK3sKKyAgICBzdGF0aWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgQk9PU1RfVFRfREVDTCBfbV9jaGVjayhhbnlfY29udmVyc2lvbiAuLi4pOworICAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgQk9PU1RfVFRfREVDTCBfbV9jaGVjayhUbywgaW50KTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF9sdmFsdWVfcmVmZXJlbmNlPEZyb20+Ojp0eXBlIGx2YWx1ZV90eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3J2YWx1ZV9yZWZlcmVuY2U8RnJvbT46OnR5cGUgcnZhbHVlX3R5cGU7IAorICAgIHN0YXRpYyBsdmFsdWVfdHlwZSBfbV9mcm9tOworCisjaWZuZGVmIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgc2l6ZW9mKCBfbV9jaGVjayhzdGF0aWNfY2FzdDxydmFsdWVfdHlwZT4oX21fZnJvbSksIDApICkgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkKKyAgICAgICAgKTsKKyNlbHNlCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgc2l6ZW9mKCBfbV9jaGVjayhfbV9mcm9tLCAwKSApID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpCisgICAgICAgICk7CisjZW5kaWYKK307CisKKyNlbGlmIGRlZmluZWQoX19ETUNfXykKKworc3RydWN0IGFueV9jb252ZXJzaW9uCit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGFueV9jb252ZXJzaW9uKGNvbnN0IHZvbGF0aWxlIFQmKTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYW55X2NvbnZlcnNpb24oY29uc3QgVCYpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBhbnlfY29udmVyc2lvbih2b2xhdGlsZSBUJik7CisgICAgLy8gd2UgbmVlZCB0aGlzIGNvbnN0cnVjdG9yIHRvIGNhdGNoIHJlZmVyZW5jZXMgdG8gZnVuY3Rpb25zCisgICAgLy8gKHdoaWNoIGNhbiBub3QgYmUgY3YtcXVhbGlmaWVkKToKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYW55X2NvbnZlcnNpb24oVCYpOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIEZyb20sIHR5cGVuYW1lIFRvPgorc3RydWN0IGlzX2NvbnZlcnRpYmxlX2Jhc2ljX2ltcGwKK3sKKyAgICAvLyBVc2luZyAnLi4uJyBkb2Vzbid0IGFsd2F5cyB3b3JrIG9uIERpZ2l0YWwgTWFycy4gVGhpcyB2ZXJzaW9uIHNlZW1zIHRvLgorICAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZSBCT09TVF9UVF9ERUNMIF9tX2NoZWNrKGFueV9jb252ZXJzaW9uLCAgZmxvYXQsIFQpOworICAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgQk9PU1RfVFRfREVDTCBfbV9jaGVjayhUbywgaW50LCBpbnQpOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX2x2YWx1ZV9yZWZlcmVuY2U8RnJvbT46OnR5cGUgbHZhbHVlX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfcnZhbHVlX3JlZmVyZW5jZTxGcm9tPjo6dHlwZSBydmFsdWVfdHlwZTsKKyAgICBzdGF0aWMgbHZhbHVlX3R5cGUgX21fZnJvbTsKKworICAgIC8vIFN0YXRpYyBjb25zdGFudHMgc29tZXRpbWUgY2F1c2UgdGhlIGNvbnZlcnNpb24gb2YgX21fZnJvbSB0byBUbyB0byBiZQorICAgIC8vIGNhbGxlZC4gVGhpcyBkb2Vzbid0IGhhcHBlbiB3aXRoIGFuIGVudW0uCisjaWZuZGVmIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisgICAgZW51bSB7IHZhbHVlID0KKyAgICAgICAgc2l6ZW9mKCBfbV9jaGVjayhzdGF0aWNfY2FzdDxydmFsdWVfdHlwZT4oX21fZnJvbSksIDAsIDApICkgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkKKyAgICAgICAgfTsKKyNlbHNlCisgICAgZW51bSB7IHZhbHVlID0KKyAgICAgICAgc2l6ZW9mKCBfbV9jaGVjayhfbV9mcm9tLCAwLCAwKSApID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpCisgICAgICAgIH07CisjZW5kaWYKK307CisKKyNlbGlmIGRlZmluZWQoX19NV0VSS1NfXykKKy8vIAorLy8gQ1cgd29ya3Mgd2l0aCB0aGUgdGVjaG5pcXVlIGltcGxlbWVudGVkIGFib3ZlIGZvciBFREcsIGV4Y2VwdCB3aGVuIEZyb20KKy8vIGlzIGEgZnVuY3Rpb24gdHlwZSAob3IgYSByZWZlcmVuY2UgdG8gc3VjaCBhIHR5cGUpLCBpbiB3aGljaCBjYXNlCisvLyBhbnlfY29udmVyc2lvbiB3b24ndCBiZSBhY2NlcHRlZCBhcyBhIHZhbGlkIGNvbnZlcnNpb24uIFdlIGRldGVjdCB0aGlzCisvLyBleGNlcHRpb25hbCBzaXR1YXRpb24gYW5kIGNoYW5uZWwgaXQgdGhyb3VnaCBhbiBhbHRlcm5hdGl2ZSBhbGdvcml0aG0uCisvLworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRnJvbSwgdHlwZW5hbWUgVG8sYm9vbCBGcm9tSXNGdW5jdGlvblJlZj4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9iYXNpY19pbXBsX2F1eDsKKworc3RydWN0IGFueV9jb252ZXJzaW9uCit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGFueV9jb252ZXJzaW9uKGNvbnN0IHZvbGF0aWxlIFQmKTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYW55X2NvbnZlcnNpb24oY29uc3QgVCYpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBhbnlfY29udmVyc2lvbih2b2xhdGlsZSBUJik7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGFueV9jb252ZXJzaW9uKFQmKTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9iYXNpY19pbXBsX2F1eDxGcm9tLFRvLGZhbHNlIC8qRnJvbUlzRnVuY3Rpb25SZWYqLz4KK3sKKyAgICBzdGF0aWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgQk9PU1RfVFRfREVDTCBfbV9jaGVjayhhbnlfY29udmVyc2lvbiAuLi4pOworICAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgQk9PU1RfVFRfREVDTCBfbV9jaGVjayhUbywgaW50KTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF9sdmFsdWVfcmVmZXJlbmNlPEZyb20+Ojp0eXBlIGx2YWx1ZV90eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3J2YWx1ZV9yZWZlcmVuY2U8RnJvbT46OnR5cGUgcnZhbHVlX3R5cGU7IAorICAgIHN0YXRpYyBsdmFsdWVfdHlwZSBfbV9mcm9tOworCisjaWZuZGVmIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgc2l6ZW9mKCBfbV9jaGVjayhzdGF0aWNfY2FzdDxydmFsdWVfdHlwZT4oX21fZnJvbSksIDApICkgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkKKyAgICAgICAgKTsKKyNlbHNlCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgc2l6ZW9mKCBfbV9jaGVjayhfbV9mcm9tLCAwKSApID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpCisgICAgICAgICk7CisjZW5kaWYKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9iYXNpY19pbXBsX2F1eDxGcm9tLFRvLHRydWUgLypGcm9tSXNGdW5jdGlvblJlZiovPgoreworICAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZSBCT09TVF9UVF9ERUNMIF9tX2NoZWNrKC4uLik7CisgICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSBCT09TVF9UVF9ERUNMIF9tX2NoZWNrKFRvKTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIGFkZF9sdmFsdWVfcmVmZXJlbmNlPEZyb20+Ojp0eXBlIGx2YWx1ZV90eXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX3J2YWx1ZV9yZWZlcmVuY2U8RnJvbT46OnR5cGUgcnZhbHVlX3R5cGU7CisgICAgc3RhdGljIGx2YWx1ZV90eXBlIF9tX2Zyb207CisjaWZuZGVmIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgc2l6ZW9mKCBfbV9jaGVjayhzdGF0aWNfY2FzdDxydmFsdWVfdHlwZT4oX21fZnJvbSkpICkgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkKKyAgICAgICAgKTsKKyNlbHNlCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgc2l6ZW9mKCBfbV9jaGVjayhfbV9mcm9tKSApID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpCisgICAgICAgICk7CisjZW5kaWYKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9iYXNpY19pbXBsOgorICBpc19jb252ZXJ0aWJsZV9iYXNpY19pbXBsX2F1eDwKKyAgICBGcm9tLFRvLAorICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmN0aW9uPHR5cGVuYW1lIDo6bmRuYm9vc3Q6OnJlbW92ZV9yZWZlcmVuY2U8RnJvbT46OnR5cGU+Ojp2YWx1ZQorICA+Cit7fTsKKworI2Vsc2UKKy8vCisvLyBUaGlzIHZlcnNpb24gc2VlbXMgdG8gd29yayBwcmV0dHkgd2VsbCBmb3IgYSB3aWRlIHNwZWN0cnVtIG9mIGNvbXBpbGVycywKKy8vIGhvd2V2ZXIgaXQgZG9lcyByZWx5IG9uIHVuZGVmaW5lZCBiZWhhdmlvdXIgYnkgcGFzc2luZyBVRFQncyB0aHJvdWdoICguLi4pLgorLy8KK3RlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9iYXNpY19pbXBsCit7CisgICAgc3RhdGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlIEJPT1NUX1RUX0RFQ0wgX21fY2hlY2soLi4uKTsKKyAgICBzdGF0aWMgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlIEJPT1NUX1RUX0RFQ0wgX21fY2hlY2soVG8pOworICAgIHR5cGVkZWYgdHlwZW5hbWUgYWRkX2x2YWx1ZV9yZWZlcmVuY2U8RnJvbT46OnR5cGUgbHZhbHVlX3R5cGU7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBhZGRfcnZhbHVlX3JlZmVyZW5jZTxGcm9tPjo6dHlwZSBydmFsdWVfdHlwZTsgCisgICAgc3RhdGljIGx2YWx1ZV90eXBlIF9tX2Zyb207CisjaWZkZWYgQk9PU1RfTVNWQworI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MjQ0KQorI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQ19GVUxMX1ZFUiwgPj0gMTQwMDUwMDAwKQorI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NjMzNCkKKyNlbmRpZgorI2VuZGlmCisjaWZuZGVmIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgc2l6ZW9mKCBfbV9jaGVjayhzdGF0aWNfY2FzdDxydmFsdWVfdHlwZT4oX21fZnJvbSkpICkgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkKKyAgICAgICAgKTsKKyNlbHNlCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgc2l6ZW9mKCBfbV9jaGVjayhfbV9mcm9tKSApID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUpCisgICAgICAgICk7CisjZW5kaWYKKyNpZmRlZiBCT09TVF9NU1ZDCisjcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCit9OworCisjZW5kaWYgLy8gaXNfY29udmVydGlibGVfaW1wbAorCisjaWYgZGVmaW5lZChfX0RNQ19fKQorLy8gQXMgYmVmb3JlLCBhIHN0YXRpYyBjb25zdGFudCBzb21ldGltZXMgY2F1c2VzIGVycm9ycyBvbiBEaWdpdGFsIE1hcnMuCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRnJvbSwgdHlwZW5hbWUgVG8+CitzdHJ1Y3QgaXNfY29udmVydGlibGVfaW1wbAoreworICAgIGVudW0geyB2YWx1ZSA9CisgICAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX2FuZDwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2NvbnZlcnRpYmxlX2Jhc2ljX2ltcGw8RnJvbSxUbz46OnZhbHVlLAorICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfdm9pZDxUbz46OnZhbHVlCisgICAgICAgICAgICA+Ojp2YWx1ZSwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PAorICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfYXJyYXk8VG8+Ojp2YWx1ZQorICAgICAgICAgICAgPjo6dmFsdWUsCisgICAgICAgICAgICA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX25vdDwKKyAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2Z1bmN0aW9uPFRvPjo6dmFsdWUKKyAgICAgICAgICAgID46OnZhbHVlCisgICAgICAgID46OnZhbHVlKSB9OworfTsKKyNlbGlmICFkZWZpbmVkKF9fQk9STEFORENfXykgfHwgX19CT1JMQU5EQ19fID4gMHg1NTEKK3RlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9pbXBsCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfY29udmVydGlibGVfYmFzaWNfaW1wbDxGcm9tLFRvPjo6dmFsdWUsCisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc192b2lkPFRvPjo6dmFsdWUKKyAgICAgICAgICAgID46OnZhbHVlLAorICAgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9ub3Q8CisgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19hcnJheTxUbz46OnZhbHVlCisgICAgICAgICAgICA+Ojp2YWx1ZSwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PAorICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfZnVuY3Rpb248VG8+Ojp2YWx1ZQorICAgICAgICAgICAgPjo6dmFsdWUKKyAgICAgICAgPjo6dmFsdWUpCisgICAgICAgICk7Cit9OworI2VuZGlmCisKK3RlbXBsYXRlIDxib29sIHRyaXZpYWwxLCBib29sIHRyaXZpYWwyLCBib29sIGFic3RyYWN0X3RhcmdldD4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9pbXBsX3NlbGVjdAoreworICAgdGVtcGxhdGUgPGNsYXNzIEZyb20sIGNsYXNzIFRvPgorICAgc3RydWN0IHJlYmluZAorICAgeworICAgICAgdHlwZWRlZiBpc19jb252ZXJ0aWJsZV9pbXBsPEZyb20sIFRvPiB0eXBlOworICAgfTsKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXNfY29udmVydGlibGVfaW1wbF9zZWxlY3Q8dHJ1ZSwgdHJ1ZSwgZmFsc2U+Cit7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgRnJvbSwgY2xhc3MgVG8+CisgICBzdHJ1Y3QgcmViaW5kCisgICB7CisgICAgICB0eXBlZGVmIHRydWVfdHlwZSB0eXBlOworICAgfTsKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXNfY29udmVydGlibGVfaW1wbF9zZWxlY3Q8ZmFsc2UsIGZhbHNlLCB0cnVlPgoreworICAgdGVtcGxhdGUgPGNsYXNzIEZyb20sIGNsYXNzIFRvPgorICAgc3RydWN0IHJlYmluZAorICAgeworICAgICAgdHlwZWRlZiBmYWxzZV90eXBlIHR5cGU7CisgICB9OworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9pbXBsX3NlbGVjdDx0cnVlLCBmYWxzZSwgdHJ1ZT4KK3sKKyAgIHRlbXBsYXRlIDxjbGFzcyBGcm9tLCBjbGFzcyBUbz4KKyAgIHN0cnVjdCByZWJpbmQKKyAgIHsKKyAgICAgIHR5cGVkZWYgZmFsc2VfdHlwZSB0eXBlOworICAgfTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBGcm9tLCB0eXBlbmFtZSBUbz4KK3N0cnVjdCBpc19jb252ZXJ0aWJsZV9pbXBsX2Rpc3BhdGNoX2Jhc2UKK3sKKyNpZiAhQk9PU1RfV09SS0FST1VORChfX0hQX2FDQywgPCA2MDcwMCkKKyAgIHR5cGVkZWYgaXNfY29udmVydGlibGVfaW1wbF9zZWxlY3Q8IAorICAgICAgOjpuZG5ib29zdDo6aXNfYXJpdGhtZXRpYzxGcm9tPjo6dmFsdWUsIAorICAgICAgOjpuZG5ib29zdDo6aXNfYXJpdGhtZXRpYzxUbz46OnZhbHVlLAorI2lmbmRlZiBCT09TVF9OT19JU19BQlNUUkFDVAorICAgICAgOjpuZG5ib29zdDo6aXNfYWJzdHJhY3Q8VG8+Ojp2YWx1ZQorI2Vsc2UKKyAgICAgIGZhbHNlCisjZW5kaWYKKyAgID4gc2VsZWN0b3I7CisjZWxzZQorICAgdHlwZWRlZiBpc19jb252ZXJ0aWJsZV9pbXBsX3NlbGVjdDxmYWxzZSwgZmFsc2UsIGZhbHNlPiBzZWxlY3RvcjsKKyNlbmRpZgorICAgdHlwZWRlZiB0eXBlbmFtZSBzZWxlY3Rvcjo6dGVtcGxhdGUgcmViaW5kPEZyb20sIFRvPiBpc2NfYmluZGVyOworICAgdHlwZWRlZiB0eXBlbmFtZSBpc2NfYmluZGVyOjp0eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRnJvbSwgdHlwZW5hbWUgVG8+CitzdHJ1Y3QgaXNfY29udmVydGlibGVfaW1wbF9kaXNwYXRjaCAKKyAgIDogcHVibGljIGlzX2NvbnZlcnRpYmxlX2ltcGxfZGlzcGF0Y2hfYmFzZTxGcm9tLCBUbz46OnR5cGUKK3t9OworCisvLworLy8gTm93IGFkZCB0aGUgZnVsbCBhbmQgcGFydGlhbCBzcGVjaWFsaXNhdGlvbnMKKy8vIGZvciB2b2lkIHR5cGVzLCB0aGVzZSBhcmUgY29tbW9uIHRvIGFsbCB0aGUKKy8vIGltcGxlbWVudGF0aW9uIGFib3ZlOgorLy8KKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKKyMgICBkZWZpbmUgVFRfQVVYX0JPT0xfQ1ZfVk9JRF9UUkFJVF9TUEVDMl9QQVJUMSh0cmFpdCxzcGVjMSxzcGVjMix2YWx1ZSkgXAorICAgIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzIodHJhaXQsc3BlYzEsc3BlYzIsdmFsdWUpIFwKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMyKHRyYWl0LHNwZWMxLHNwZWMyIGNvbnN0LHZhbHVlKSBcCisgICAgQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMih0cmFpdCxzcGVjMSxzcGVjMiB2b2xhdGlsZSx2YWx1ZSkgXAorICAgIEJPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzIodHJhaXQsc3BlYzEsc3BlYzIgY29uc3Qgdm9sYXRpbGUsdmFsdWUpIFwKKyAgICAvKiovCisKKyMgICBkZWZpbmUgVFRfQVVYX0JPT0xfQ1ZfVk9JRF9UUkFJVF9TUEVDMih0cmFpdCxzcGVjMSxzcGVjMix2YWx1ZSkgXAorICAgIFRUX0FVWF9CT09MX0NWX1ZPSURfVFJBSVRfU1BFQzJfUEFSVDEodHJhaXQsc3BlYzEsc3BlYzIsdmFsdWUpIFwKKyAgICBUVF9BVVhfQk9PTF9DVl9WT0lEX1RSQUlUX1NQRUMyX1BBUlQxKHRyYWl0LHNwZWMxIGNvbnN0LHNwZWMyLHZhbHVlKSBcCisgICAgVFRfQVVYX0JPT0xfQ1ZfVk9JRF9UUkFJVF9TUEVDMl9QQVJUMSh0cmFpdCxzcGVjMSB2b2xhdGlsZSxzcGVjMix2YWx1ZSkgXAorICAgIFRUX0FVWF9CT09MX0NWX1ZPSURfVFJBSVRfU1BFQzJfUEFSVDEodHJhaXQsc3BlYzEgY29uc3Qgdm9sYXRpbGUsc3BlYzIsdmFsdWUpIFwKKyAgICAvKiovCisKKyAgICBUVF9BVVhfQk9PTF9DVl9WT0lEX1RSQUlUX1NQRUMyKGlzX2NvbnZlcnRpYmxlLHZvaWQsdm9pZCx0cnVlKQorCisjICAgdW5kZWYgVFRfQVVYX0JPT0xfQ1ZfVk9JRF9UUkFJVF9TUEVDMgorIyAgIHVuZGVmIFRUX0FVWF9CT09MX0NWX1ZPSURfVFJBSVRfU1BFQzJfUEFSVDEKKworI2Vsc2UKKyAgICBCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMyKGlzX2NvbnZlcnRpYmxlLHZvaWQsdm9pZCx0cnVlKQorI2VuZGlmIC8vIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCisKKyNpZm5kZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9QQVJUSUFMX1NQRUMyXzEodHlwZW5hbWUgVG8saXNfY29udmVydGlibGUsdm9pZCxUbyxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfUEFSVElBTF9TUEVDMl8xKHR5cGVuYW1lIEZyb20saXNfY29udmVydGlibGUsRnJvbSx2b2lkLGZhbHNlKQorI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9QQVJUSUFMX1NQRUMyXzEodHlwZW5hbWUgVG8saXNfY29udmVydGlibGUsdm9pZCBjb25zdCxUbyxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfUEFSVElBTF9TUEVDMl8xKHR5cGVuYW1lIFRvLGlzX2NvbnZlcnRpYmxlLHZvaWQgdm9sYXRpbGUsVG8sZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1BBUlRJQUxfU1BFQzJfMSh0eXBlbmFtZSBUbyxpc19jb252ZXJ0aWJsZSx2b2lkIGNvbnN0IHZvbGF0aWxlLFRvLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9QQVJUSUFMX1NQRUMyXzEodHlwZW5hbWUgRnJvbSxpc19jb252ZXJ0aWJsZSxGcm9tLHZvaWQgY29uc3QsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1BBUlRJQUxfU1BFQzJfMSh0eXBlbmFtZSBGcm9tLGlzX2NvbnZlcnRpYmxlLEZyb20sdm9pZCB2b2xhdGlsZSxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfUEFSVElBTF9TUEVDMl8xKHR5cGVuYW1lIEZyb20saXNfY29udmVydGlibGUsRnJvbSx2b2lkIGNvbnN0IHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisjZW5kaWYgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMihpc19jb252ZXJ0aWJsZSxGcm9tLFRvLCg6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2NvbnZlcnRpYmxlX2ltcGxfZGlzcGF0Y2g8RnJvbSxUbz46OnZhbHVlKSkKKworI2Vsc2UKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMihpc19jb252ZXJ0aWJsZSxGcm9tLFRvLEJPT1NUX0lTX0NPTlZFUlRJQkxFKEZyb20sVG8pKQorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX0NPTlZFUlRJQkxFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvaXNfZW51bS5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9pc19lbnVtLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWIyZWY1Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfZW51bS5ocHAKQEAgLTAsMCArMSwxODkgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgRGF2ZSBBYnJhaGFtcywgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkCisvLyAgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLiAgCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfRU5VTV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfRU5VTV9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2ludHJpbnNpY3MuaHBwPgorI2lmbmRlZiBCT09TVF9JU19FTlVNCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvYWRkX3JlZmVyZW5jZS5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfYXJpdGhtZXRpYy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19jb252ZXJ0aWJsZS5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfYXJyYXkuaHBwPgorI2lmZGVmIF9fR05VQ19fCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfZnVuY3Rpb24uaHBwPgorI2VuZGlmCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcD4KKyNpZiBkZWZpbmVkKEJPT1NUX1RUX0hBU19DT05GT1JNSU5HX0lTX0NMQVNTX0lNUExFTUVOVEFUSU9OKSAKKyMgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX2NsYXNzLmhwcD4KKyMgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3VuaW9uLmhwcD4KKyNlbmRpZgorI2VuZGlmCisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpZm5kZWYgQk9PU1RfSVNfRU5VTQorI2lmICEoZGVmaW5lZChfX0JPUkxBTkRDX18pICYmIChfX0JPUkxBTkRDX18gPD0gMHg1NTEpKQorCituYW1lc3BhY2UgZGV0YWlsIHsKKworI2lmIGRlZmluZWQoQk9PU1RfVFRfSEFTX0NPTkZPUk1JTkdfSVNfQ0xBU1NfSU1QTEVNRU5UQVRJT04pIAorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19jbGFzc19vcl91bmlvbgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19jbGFzczxUPjo6dmFsdWUKKyAgICAgICAgICwgOjpuZG5ib29zdDo6aXNfdW5pb248VD46OnZhbHVlCisgICAgICA+Ojp2YWx1ZSkpOworfTsKKworI2Vsc2UKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfY2xhc3Nfb3JfdW5pb24KK3sKKyMgaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDEzMDApIHx8IEJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg1ODEpKS8vIHdlIHNpbXBseSBjYW4ndCBkZXRlY3QgaXQgdGhpcyB3YXkuCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworIyBlbHNlCisgICAgdGVtcGxhdGUgPGNsYXNzIFU+IHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6eWVzX3R5cGUgaXNfY2xhc3Nfb3JfdW5pb25fdGVzdGVyKHZvaWQoVTo6Kikodm9pZCkpOworCisjICBpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsID09IDEzMDApICAgICAgICAgICAgICAgICBcCisgICAgfHwgQk9PU1RfV09SS0FST1VORChfX01XRVJLU19fLCA8PSAweDMwMDApIC8vIG5vIFNGSU5BRQorICAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZSBpc19jbGFzc19vcl91bmlvbl90ZXN0ZXIoLi4uKTsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgIGJvb2wsIHZhbHVlID0gc2l6ZW9mKGlzX2NsYXNzX29yX3VuaW9uX3Rlc3RlcigwKSkgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkpOworIyAgZWxzZQorICAgIHRlbXBsYXRlIDxjbGFzcyBVPgorICAgIHN0YXRpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZSBpc19jbGFzc19vcl91bmlvbl90ZXN0ZXIoLi4uKTsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgIGJvb2wsIHZhbHVlID0gc2l6ZW9mKGlzX2NsYXNzX29yX3VuaW9uX3Rlc3RlcjxUPigwKSkgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkpOworIyAgZW5kaWYKKyMgZW5kaWYKK307CisjZW5kaWYKKworc3RydWN0IGludF9jb252ZXJ0aWJsZQoreworICAgIGludF9jb252ZXJ0aWJsZShpbnQpOworfTsKKworLy8gRG9uJ3QgZXZhbHVhdGUgY29udmVydGliaWxpdHkgdG8gaW50X2NvbnZlcnRpYmxlIHVubGVzcyB0aGUgdHlwZQorLy8gaXMgbm9uLWFyaXRobWV0aWMuIFRoaXMgc3VwcHJlc3NlcyB3YXJuaW5ncyB3aXRoIEdDQy4KK3RlbXBsYXRlIDxib29sIGlzX3R5cGVuYW1lX2FyaXRobWV0aWNfb3JfcmVmZXJlbmNlID0gdHJ1ZT4KK3N0cnVjdCBpc19lbnVtX2hlbHBlcgoreworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgdHlwZQorICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworICAgIH07Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGlzX2VudW1faGVscGVyPGZhbHNlPgoreworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgdHlwZQorICAgICAgIDogcHVibGljIDo6bmRuYm9vc3Q6OmlzX2NvbnZlcnRpYmxlPHR5cGVuYW1lIG5kbmJvb3N0OjphZGRfcmVmZXJlbmNlPFQ+Ojp0eXBlLDo6bmRuYm9vc3Q6OmRldGFpbDo6aW50X2NvbnZlcnRpYmxlPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBpc19lbnVtX2ltcGwKK3sKKyAgIC8vdHlwZWRlZiA6Om5kbmJvb3N0OjphZGRfcmVmZXJlbmNlPFQ+IGFyX3Q7CisgICAvL3R5cGVkZWYgdHlwZW5hbWUgYXJfdDo6dHlwZSByX3R5cGU7CisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorCisjaWZkZWYgQk9PU1RfVFRfSEFTX0NPTkZPUk1JTkdfSVNfQ0xBU1NfSU1QTEVNRU5UQVRJT04KKyAgICAKKyAgIC8vIFdlIE1VU1QgY2hlY2sgZm9yIGlzX2NsYXNzX29yX3VuaW9uIG9uIGNvbmZvcm1pbmcgY29tcGlsZXJzIGluCisgICAvLyBvcmRlciB0byBjb3JyZWN0bHkgZGVkdWNlIHRoYXQgbm9uY29weWFibGUgdHlwZXMgYXJlIG5vdCBlbnVtcworICAgLy8gKGR3YSAyMDAyLzA0LzE1KS4uLgorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHNlbGVjdG9yID0KKyAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgICA6Om5kbmJvb3N0Ojppc19hcml0aG1ldGljPFQ+Ojp2YWx1ZQorICAgICAgICAgLCA6Om5kbmJvb3N0Ojppc19yZWZlcmVuY2U8VD46OnZhbHVlCisgICAgICAgICAsIDo6bmRuYm9vc3Q6OmlzX2Z1bmN0aW9uPFQ+Ojp2YWx1ZQorICAgICAgICAgLCBpc19jbGFzc19vcl91bmlvbjxUPjo6dmFsdWUKKyAgICAgICAgICwgaXNfYXJyYXk8VD46OnZhbHVlCisgICAgICA+Ojp2YWx1ZSkpOworI2Vsc2UKKyAgIC8vIC4uLmhvd2V2ZXIsIG5vdCBjaGVja2luZyBpc19jbGFzc19vcl91bmlvbiBvbiBub24tY29uZm9ybWluZworICAgLy8gY29tcGlsZXJzIHByZXZlbnRzIGEgZGVwZW5kZW5jeSByZWN1cnNpb24uCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgc2VsZWN0b3IgPQorICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2FyaXRobWV0aWM8VD46OnZhbHVlCisgICAgICAgICAsIDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxUPjo6dmFsdWUKKyAgICAgICAgICwgOjpuZG5ib29zdDo6aXNfZnVuY3Rpb248VD46OnZhbHVlCisgICAgICAgICAsIGlzX2FycmF5PFQ+Ojp2YWx1ZQorICAgICAgPjo6dmFsdWUpKTsKKyNlbmRpZiAvLyBCT09TVF9UVF9IQVNfQ09ORk9STUlOR19JU19DTEFTU19JTVBMRU1FTlRBVElPTgorCisjZWxzZSAvLyAhZGVmaW5lZChfX0dOVUNfXyk6CisgICAgCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgc2VsZWN0b3IgPQorICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2FyaXRobWV0aWM8VD46OnZhbHVlCisgICAgICAgICAsIDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxUPjo6dmFsdWUKKyAgICAgICAgICwgaXNfY2xhc3Nfb3JfdW5pb248VD46OnZhbHVlCisgICAgICAgICAsIGlzX2FycmF5PFQ+Ojp2YWx1ZQorICAgICAgPjo6dmFsdWUpKTsKKyAgICAKKyNlbmRpZgorCisjaWYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHg2MDApCisgICAgdHlwZWRlZiA6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2VudW1faGVscGVyPAorICAgICAgICAgIDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfZW51bV9pbXBsPFQ+OjpzZWxlY3RvcgorICAgICAgICA+IHNlX3Q7CisjZWxzZQorICAgIHR5cGVkZWYgOjpuZG5ib29zdDo6ZGV0YWlsOjppc19lbnVtX2hlbHBlcjxzZWxlY3Rvcj4gc2VfdDsKKyNlbmRpZgorCisgICAgdHlwZWRlZiB0eXBlbmFtZSBzZV90Ojp0ZW1wbGF0ZSB0eXBlPFQ+IGhlbHBlcjsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBoZWxwZXI6OnZhbHVlKTsKK307CisKKy8vIHRoZXNlIGhlbHAgb24gY29tcGlsZXJzIHdpdGggbm8gcGFydGlhbCBzcGVjaWFsaXphdGlvbiBzdXBwb3J0OgorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19lbnVtLHZvaWQsZmFsc2UpCisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX2VudW0sdm9pZCBjb25zdCxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfZW51bSx2b2lkIHZvbGF0aWxlLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19lbnVtLHZvaWQgY29uc3Qgdm9sYXRpbGUsZmFsc2UpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfZW51bSxULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfZW51bV9pbXBsPFQ+Ojp2YWx1ZSkKKworI2Vsc2UgLy8gX19CT1JMQU5EQ19fCisvLworLy8gYnVnZ3kgaXNfY29udmVydGlibGUgcHJldmVudHMgd29ya2luZworLy8gaW1wbGVtZW50YXRpb24gb2YgaXNfZW51bToKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfZW51bSxULGZhbHNlKQorCisjZW5kaWYKKworI2Vsc2UgLy8gQk9PU1RfSVNfRU5VTQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2VudW0sVCxCT09TVF9JU19FTlVNKFQpKQorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX0VOVU1fSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9pc19mbG9hdC5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9pc19mbG9hdC5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWVlMjIzYQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX2Zsb2F0LmhwcApAQCAtMCwwICsxLDI3IEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RZUEVfVFJBSVRTX0lTX0ZMT0FUX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UWVBFX1RSQUlUU19JU19GTE9BVF9IUFBfSU5DTFVERUQKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworLy8qIGlzIGEgdHlwZSBUIGEgZmxvYXRpbmctcG9pbnQgdHlwZSBkZXNjcmliZWQgaW4gdGhlIHN0YW5kYXJkICgzLjkuMXA4KQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19mbG9hdCxULGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfZmxvYXQsZmxvYXQsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2Zsb2F0LGRvdWJsZSx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfZmxvYXQsbG9uZyBkb3VibGUsdHJ1ZSkKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RZUEVfVFJBSVRTX0lTX0ZMT0FUX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvaXNfZnVuY3Rpb24uaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfZnVuY3Rpb24uaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmNWE2YzcKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9pc19mdW5jdGlvbi5ocHAKQEAgLTAsMCArMSwxMTEgQEAKKworLy8gIENvcHlyaWdodCAyMDAwIEpvaG4gTWFkZG9jayAoam9obkBqb2hubWFkZG9jay5jby51aykKKy8vICBDb3B5cmlnaHQgMjAwMiBBbGVrc2V5IEd1cnRvdm95IChhZ3VydG92b3lAbWV0YS1jb21tLmNvbSkKKy8vCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0lTX0ZVTkNUSU9OX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19GVU5DVElPTl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ZhbHNlX3Jlc3VsdC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pICYmICFkZWZpbmVkKEJPT1NUX1RUX1RFU1RfTVNfRlVOQ19TSUdTKQorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19mdW5jdGlvbl9wdHJfaGVscGVyLmhwcD4KKyNlbHNlCisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworLy8gaXMgYSB0eXBlIGEgZnVuY3Rpb24/CisvLyBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgaW1wbGVtZW50YXRpb24gaXMgdW5uZWNlc3NhcmlseSBjb21wbGV4OgorLy8gd2UgY291bGQganVzdCB1c2UgIWlzX2NvbnZlcnRpYmxlPFQqLCBjb25zdCB2b2xhdGlsZSB2b2lkKj46OnZhbHVlLAorLy8gZXhjZXB0IHRoYXQgc29tZSBjb21waWxlcnMgZXJyb25lb3VzbHkgYWxsb3cgY29udmVyc2lvbnMgZnJvbQorLy8gZnVuY3Rpb24gcG9pbnRlcnMgdG8gdm9pZCouCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpZiAhZGVmaW5lZCggX19DT0RFR0VBUkNfXyApCisKK25hbWVzcGFjZSBkZXRhaWwgeworCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgJiYgIWRlZmluZWQoQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MpCit0ZW1wbGF0ZTxib29sIGlzX3JlZiA9IHRydWU+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fY2hvb3NlcgorICAgIDogcHVibGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpmYWxzZV9yZXN1bHQKK3sKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXNfZnVuY3Rpb25fY2hvb3NlcjxmYWxzZT4KK3sKKyAgICB0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCByZXN1bHRfCisgICAgICAgIDogcHVibGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppc19mdW5jdGlvbl9wdHJfaGVscGVyPFQqPgorICAgIHsKKyAgICB9OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfZnVuY3Rpb25faW1wbAorICAgIDogcHVibGljIGlzX2Z1bmN0aW9uX2Nob29zZXI8IDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxUPjo6dmFsdWUgPgorICAgICAgICA6OkJPT1NUX05FU1RFRF9URU1QTEFURSByZXN1bHRfPFQ+Cit7Cit9OworCisjZWxzZQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19mdW5jdGlvbl9pbXBsCit7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDX0ZVTExfVkVSLCA+PSAxNDAwNTAwMDApCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjYzMzQpCisjZW5kaWYKKyAgICBzdGF0aWMgVCogdDsKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgIGJvb2wsIHZhbHVlID0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppc19mdW5jdGlvbl9wdHJfdGVzdGVyKHQpKQorICAgICAgICA9PSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKQorICAgICAgICApOworI2lmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQ19GVUxMX1ZFUiwgPj0gMTQwMDUwMDAwKQorI3ByYWdtYSB3YXJuaW5nKHBvcCkKKyNlbmRpZgorfTsKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19mdW5jdGlvbl9pbXBsPFQmPiA6IHB1YmxpYyBmYWxzZV90eXBlCit7fTsKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX2Z1bmN0aW9uX2ltcGw8VCYmPiA6IHB1YmxpYyBmYWxzZV90eXBlCit7fTsKKyNlbmRpZgorI2VuZGlmCisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworI2VuZGlmIC8vICFkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKKworI2lmIGRlZmluZWQoIF9fQ09ERUdFQVJDX18gKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19mdW5jdGlvbixULF9faXNfZnVuY3Rpb24oVCkpCisjZWxzZQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19mdW5jdGlvbixULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfZnVuY3Rpb25faW1wbDxUPjo6dmFsdWUpCisjaWZuZGVmIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19mdW5jdGlvbixUJiYsZmFsc2UpCisjZW5kaWYKKyNlbmRpZgorfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX0ZVTkNUSU9OX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvaXNfaW50ZWdyYWwuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfaW50ZWdyYWwuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkNDFhNTUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9pc19pbnRlZ3JhbC5ocHAKQEAgLTAsMCArMSw4MyBAQAorCisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9JU19JTlRFR1JBTF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfSU5URUdSQUxfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisvLyogaXMgYSB0eXBlIFQgYW4gW2N2LXF1YWxpZmllZC1dIGludGVncmFsIHR5cGUgZGVzY3JpYmVkIGluIHRoZSBzdGFuZGFyZCAoMy45LjFwMykKKy8vIGFzIGFuIGV4dGVuc2lvbiB3ZSBpbmNsdWRlIGxvbmcgbG9uZywgYXMgdGhpcyBpcyBsaWtlbHkgdG8gYmUgYWRkZWQgdG8gdGhlCisvLyBzdGFuZGFyZCBhdCBhIGxhdGVyIGRhdGUKKyNpZiBkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfaW50ZWdyYWwsVCxfX2lzX2ludGVncmFsKFQpKQorI2Vsc2UKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfaW50ZWdyYWwsVCxmYWxzZSkKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsdW5zaWduZWQgY2hhcix0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsdW5zaWduZWQgc2hvcnQsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLHVuc2lnbmVkIGludCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsdW5zaWduZWQgbG9uZyx0cnVlKQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19pbnRlZ3JhbCxzaWduZWQgY2hhcix0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsc2lnbmVkIHNob3J0LHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19pbnRlZ3JhbCxzaWduZWQgaW50LHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19pbnRlZ3JhbCxzaWduZWQgbG9uZyx0cnVlKQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19pbnRlZ3JhbCxib29sLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19pbnRlZ3JhbCxjaGFyLHRydWUpCisKKyNpZm5kZWYgQk9PU1RfTk9fSU5UUklOU0lDX1dDSEFSX1QKKy8vIElmIHRoZSBmb2xsb3dpbmcgbGluZSBmYWlscyB0byBjb21waWxlIGFuZCB5b3UncmUgdXNpbmcgdGhlIEludGVsCisvLyBjb21waWxlciwgc2VlIGh0dHA6Ly9saXN0cy5ib29zdC5vcmcvTWFpbEFyY2hpdmVzL2Jvb3N0LXVzZXJzL21zZzA2NTY3LnBocCwKKy8vIGFuZCBkZWZpbmUgQk9PU1RfTk9fSU5UUklOU0lDX1dDSEFSX1Qgb24gdGhlIGNvbW1hbmQgbGluZS4KK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLHdjaGFyX3QsdHJ1ZSkKKyNlbmRpZgorCisvLyBTYW1lIHNldCBvZiBpbnRlZ3JhbCB0eXBlcyBhcyBpbiBib29zdC90eXBlX3RyYWl0cy9pbnRlZ3JhbF9wcm9tb3Rpb24uaHBwLgorLy8gUGxlYXNlLCBrZWVwIGluIHN5bmMuIC0tIEFsZXhhbmRlciBOYXNvbm92CisjaWYgKGRlZmluZWQoQk9PU1RfTVNWQykgJiYgKEJPT1NUX01TVkMgPCAxMzAwKSkgXAorICAgIHx8IChkZWZpbmVkKEJPT1NUX0lOVEVMX0NYWF9WRVJTSU9OKSAmJiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoQk9PU1RfSU5URUxfQ1hYX1ZFUlNJT04gPD0gNjAwKSkgXAorICAgIHx8IChkZWZpbmVkKF9fQk9STEFORENfXykgJiYgKF9fQk9STEFORENfXyA9PSAweDYwMCkgJiYgKF9NU0NfVkVSIDwgMTMwMCkpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19pbnRlZ3JhbCx1bnNpZ25lZCBfX2ludDgsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLF9faW50OCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsdW5zaWduZWQgX19pbnQxNix0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsX19pbnQxNix0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsdW5zaWduZWQgX19pbnQzMix0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsX19pbnQzMix0cnVlKQorI2lmZGVmIF9fQk9STEFORENfXworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsdW5zaWduZWQgX19pbnQ2NCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsX19pbnQ2NCx0cnVlKQorI2VuZGlmCisjZW5kaWYKKworIyBpZiBkZWZpbmVkKEJPT1NUX0hBU19MT05HX0xPTkcpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19pbnRlZ3JhbCwgOjpuZG5ib29zdDo6dWxvbmdfbG9uZ190eXBlLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9DVl9TUEVDMShpc19pbnRlZ3JhbCwgOjpuZG5ib29zdDo6bG9uZ19sb25nX3R5cGUsdHJ1ZSkKKyNlbGlmIGRlZmluZWQoQk9PU1RfSEFTX01TX0lOVDY0KQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsdW5zaWduZWQgX19pbnQ2NCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsX19pbnQ2NCx0cnVlKQorI2VuZGlmCisgICAgICAgIAorI2lmZGVmIEJPT1NUX0hBU19JTlQxMjgKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0NWX1NQRUMxKGlzX2ludGVncmFsLG5kbmJvb3N0OjppbnQxMjhfdHlwZSx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfQ1ZfU1BFQzEoaXNfaW50ZWdyYWwsbmRuYm9vc3Q6OnVpbnQxMjhfdHlwZSx0cnVlKQorI2VuZGlmCisKKyNlbmRpZiAgLy8gbm9uLUNvZGVHZWFyIGltcGxlbWVudGF0aW9uCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19JTlRFR1JBTF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX2x2YWx1ZV9yZWZlcmVuY2UuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfbHZhbHVlX3JlZmVyZW5jZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI1ZmUyZgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX2x2YWx1ZV9yZWZlcmVuY2UuaHBwCkBAIC0wLDAgKzEsMTE4IEBACisKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIAorLy8gICAgICBIb3dhcmQgSGlubmFudCBhbmQgSm9obiBNYWRkb2NrIDIwMDAuIAorLy8gIChDKSBDb3B5cmlnaHQgTWF0IE1hcmN1cywgSmVzc2UgSm9uZXMgYW5kIEFkb2JlIFN5c3RlbXMgSW5jIDIwMDEKKworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworLy8gICAgRml4ZWQgaXNfcG9pbnRlciwgaXNfbHZhbHVlX3JlZmVyZW5jZSwgaXNfY29uc3QsIGlzX3ZvbGF0aWxlLCBpc19zYW1lLCAKKy8vICAgIGlzX21lbWJlcl9wb2ludGVyIGJhc2VkIG9uIHRoZSBTaW11bGF0ZWQgUGFydGlhbCBTcGVjaWFsaXphdGlvbiB3b3JrIAorLy8gICAgb2YgTWF0IE1hcmN1cyBhbmQgSmVzc2UgSm9uZXMuIFNlZSAgaHR0cDovL29wZW5zb3VyY2UuYWRvYmUuY29tIG9yIAorLy8gICAgaHR0cDovL2dyb3Vwcy55YWhvby5jb20vZ3JvdXAvYm9vc3QvbWVzc2FnZS81NDQxIAorLy8gICAgU29tZSB3b3JrYXJvdW5kcyBpbiBoZXJlIHVzZSBpZGVhcyBzdWdnZXN0ZWQgZnJvbSAiR2VuZXJpYzxQcm9ncmFtbWluZz46IAorLy8gICAgTWFwcGluZ3MgYmV0d2VlbiBUeXBlcyBhbmQgVmFsdWVzIiAKKy8vICAgIGJ5IEFuZHJlaSBBbGV4YW5kcmVzY3UgKHNlZSBodHRwOi8vd3d3LmN1ai5jb20vZXhwZXJ0cy8xODEwL2FsZXhhbmRyLmh0bWwpLgorCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfTFZBTFVFX1JFRkVSRU5DRV9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfTFZBTFVFX1JFRkVSRU5DRV9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisKKyNpZmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvd3JhcC5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmIGRlZmluZWQoIF9fQ09ERUdFQVJDX18gKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19sdmFsdWVfcmVmZXJlbmNlLFQsX19pc19yZWZlcmVuY2UoVCkpCisjZWxpZiAhZGVmaW5lZChCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OKQorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2x2YWx1ZV9yZWZlcmVuY2UsVCxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX2x2YWx1ZV9yZWZlcmVuY2UsVCYsdHJ1ZSkKKworI2lmICBkZWZpbmVkKEJPT1NUX0lMTEVHQUxfQ1ZfUkVGRVJFTkNFUykKKy8vIHRoZXNlIGFyZSBpbGxlZ2FsIHNwZWNpYWxpc2F0aW9uczsgY3YtcXVhbGlmaWVzIGFwcGxpZWQgdG8KKy8vIHJlZmVyZW5jZXMgaGF2ZSBubyBlZmZlY3QgYWNjb3JkaW5nIHRvIFs4LjMuMnAxXSwKKy8vIEMrKyBCdWlsZGVyIHJlcXVpcmVzIHRoZW0gdGhvdWdoIGFzIGl0IHRyZWF0cyBjdi1xdWFsaWZpZWQKKy8vIHJlZmVyZW5jZXMgYXMgZGlzdGluY3QgdHlwZXMuLi4KK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX2x2YWx1ZV9yZWZlcmVuY2UsVCYgY29uc3QsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX2x2YWx1ZV9yZWZlcmVuY2UsVCYgdm9sYXRpbGUsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX2x2YWx1ZV9yZWZlcmVuY2UsVCYgY29uc3Qgdm9sYXRpbGUsdHJ1ZSkKKyNlbmRpZgorCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fIDwgMykKKy8vIHRoZXNlIGFsbG93IHVzIHRvIHdvcmsgYXJvdW5kIGlsbGVnYWxseSBjdi1xdWFsaWZpZWQgcmVmZXJlbmNlCisvLyB0eXBlcy4KK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX2x2YWx1ZV9yZWZlcmVuY2UsVCBjb25zdCAsOjpuZG5ib29zdDo6aXNfbHZhbHVlX3JlZmVyZW5jZTxUPjo6dmFsdWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19sdmFsdWVfcmVmZXJlbmNlLFQgdm9sYXRpbGUgLDo6bmRuYm9vc3Q6OmlzX2x2YWx1ZV9yZWZlcmVuY2U8VD46OnZhbHVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfbHZhbHVlX3JlZmVyZW5jZSxUIGNvbnN0IHZvbGF0aWxlICw6Om5kbmJvb3N0Ojppc19sdmFsdWVfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSkKKy8vIEhvd2V2ZXIsIHRoZSBhYm92ZSBzcGVjaWFsaXphdGlvbnMgY29uZnVzZSBnY2MgMi45NiB1bmxlc3Mgd2UgYWxzbworLy8gc3VwcGx5IHRoZXNlIHNwZWNpYWxpemF0aW9ucyBmb3IgYXJyYXkgdHlwZXMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHVuc2lnbmVkIGxvbmcgTixpc19sdmFsdWVfcmVmZXJlbmNlLFRbTl0sZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCx1bnNpZ25lZCBsb25nIE4saXNfbHZhbHVlX3JlZmVyZW5jZSxjb25zdCBUW05dLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsdW5zaWduZWQgbG9uZyBOLGlzX2x2YWx1ZV9yZWZlcmVuY2Usdm9sYXRpbGUgVFtOXSxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHVuc2lnbmVkIGxvbmcgTixpc19sdmFsdWVfcmVmZXJlbmNlLGNvbnN0IHZvbGF0aWxlIFRbTl0sZmFsc2UpCisjZW5kaWYKKworI2Vsc2UKKworI2lmZGVmIEJPT1NUX01TVkMKKyMgICBwcmFnbWEgd2FybmluZyhwdXNoKQorIyAgIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQxODEgNDA5NykKKyNlbmRpZgorCituYW1lc3BhY2UgZGV0YWlsIHsKKwordXNpbmcgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlOwordXNpbmcgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGU7Cit1c2luZyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6d3JhcDsKKwordGVtcGxhdGUgPGNsYXNzIFQ+IFQmKCogaXNfbHZhbHVlX3JlZmVyZW5jZV9oZWxwZXIxKHdyYXA8VD4pICkod3JhcDxUPik7CitjaGFyIGlzX2x2YWx1ZV9yZWZlcmVuY2VfaGVscGVyMSguLi4pOworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4gbm9fdHlwZSBpc19sdmFsdWVfcmVmZXJlbmNlX2hlbHBlcjIoVCYoKikod3JhcDxUPikpOworeWVzX3R5cGUgaXNfbHZhbHVlX3JlZmVyZW5jZV9oZWxwZXIyKC4uLik7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX2x2YWx1ZV9yZWZlcmVuY2VfaW1wbAoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCgKKyAgICAgICAgYm9vbCwgdmFsdWUgPSBzaXplb2YoCisgICAgICAgICAgICA6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2x2YWx1ZV9yZWZlcmVuY2VfaGVscGVyMigKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2x2YWx1ZV9yZWZlcmVuY2VfaGVscGVyMSg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6d3JhcDxUPigpKSkpID09IDEKKyAgICAgICAgKTsKK307CisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfbHZhbHVlX3JlZmVyZW5jZSx2b2lkLGZhbHNlKQorI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19sdmFsdWVfcmVmZXJlbmNlLHZvaWQgY29uc3QsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX2x2YWx1ZV9yZWZlcmVuY2Usdm9pZCB2b2xhdGlsZSxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfbHZhbHVlX3JlZmVyZW5jZSx2b2lkIGNvbnN0IHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX2x2YWx1ZV9yZWZlcmVuY2UsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX2x2YWx1ZV9yZWZlcmVuY2VfaW1wbDxUPjo6dmFsdWUpCisKKyNpZmRlZiBCT09TVF9NU1ZDCisjICAgcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyLmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjcyNjk5Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIuaHBwCkBAIC0wLDAgKzEsMTM2IEBACisKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZAorLy8gIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4gIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworCisjaWZuZGVmIEJPT1NUX1RUX0lTX01FTUJFUl9GVU5DVElPTl9QT0lOVEVSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19NRU1CRVJfRlVOQ1RJT05fUE9JTlRFUl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgXAorICAgJiYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA8IDB4NjAwKSAmJiAhZGVmaW5lZChCT09TVF9UVF9URVNUX01TX0ZVTkNfU0lHUykKKyAgIC8vCisgICAvLyBOb3RlOiB3ZSB1c2UgdGhlICJ3b3JrYXJvdW5kIiB2ZXJzaW9uIGZvciBNU1ZDIGJlY2F1c2UgaXQgd29ya3MgZm9yIAorICAgLy8gX19zdGRjYWxsIGV0YyBmdW5jdGlvbiB0eXBlcywgd2hlcmUgYXMgdGhlIHBhcnRpYWwgc3BlY2lhbGlzYXRpb24KKyAgIC8vIHZlcnNpb24gZG9lcyBub3QgZG8gc28uCisgICAvLworIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pc19tZW1fZnVuX3BvaW50ZXJfaW1wbC5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcD4KKyNlbHNlCisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3llc19ub190eXBlLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvZmFsc2VfcmVzdWx0LmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX29yLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3Rlci5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmIGRlZmluZWQoIF9fQ09ERUdFQVJDX18gKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcixULF9faXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIoIFQgKSkKKyNlbGlmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pICYmICFCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPCAweDYwMCkgJiYgIWRlZmluZWQoQk9PU1RfVFRfVEVTVF9NU19GVU5DX1NJR1MpCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoCisgICAgICBpc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcgorICAgICwgVAorICAgICwgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmlzX21lbV9mdW5fcG9pbnRlcl9pbXBsPHR5cGVuYW1lIHJlbW92ZV9jdjxUPjo6dHlwZT46OnZhbHVlCisgICAgKQorCisjZWxzZQorCituYW1lc3BhY2UgZGV0YWlsIHsKKworI2lmbmRlZiBfX0JPUkxBTkRDX18KKwordGVtcGxhdGUgPGJvb2w+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX3NlbGVjdAorICAgIDogcHVibGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpmYWxzZV9yZXN1bHQKK3sKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXNfbWVtX2Z1bl9wb2ludGVyX3NlbGVjdDxmYWxzZT4KK3sKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDX0ZVTExfVkVSLCA+PSAxNDAwNTAwMDApCisjcHJhZ21hIHdhcm5pbmcocHVzaCkKKyNwcmFnbWEgd2FybmluZyhkaXNhYmxlOjYzMzQpCisjZW5kaWYKKyAgICAgICAgc3RhdGljIFQqIG1ha2VfdDsKKyAgICAgICAgdHlwZWRlZiByZXN1bHRfPFQ+IHNlbGZfdHlwZTsKKworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgICAgICBib29sLCB2YWx1ZSA9ICgKKyAgICAgICAgICAgICAgICAxID09IHNpemVvZig6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihzZWxmX3R5cGU6Om1ha2VfdCkpCisgICAgICAgICAgICApKTsKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkNfRlVMTF9WRVIsID49IDE0MDA1MDAwMCkKKyNwcmFnbWEgd2FybmluZyhwb3ApCisjZW5kaWYKKyAgICB9OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXJfaW1wbAorICAgIDogcHVibGljIGlzX21lbV9mdW5fcG9pbnRlcl9zZWxlY3Q8CisgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZQorICAgICAgICAgICAgLCA6Om5kbmJvb3N0Ojppc19hcnJheTxUPjo6dmFsdWUKKyAgICAgICAgICAgID46OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88VD4KK3sKK307CisKKyNpZm5kZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXJfaW1wbDxUJj4gOiBwdWJsaWMgZmFsc2VfdHlwZXt9OworI2VuZGlmCisKKyNlbHNlIC8vIEJvcmxhbmQgQysrCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyX2ltcGwKK3sKKyAgIHN0YXRpYyBUKiBtX3Q7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoCisgICAgICAgICAgICAgIGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgICAgICgxID09IHNpemVvZih0eXBlX3RyYWl0czo6aXNfbWVtX2Z1bl9wb2ludGVyX3Rlc3RlcihtX3QpKSkgKTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyX2ltcGw8VCY+Cit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7Cit9OworCisjZW5kaWYKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcix2b2lkLGZhbHNlKQorI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcix2b2lkIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcix2b2lkIHZvbGF0aWxlLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcix2b2lkIGNvbnN0IHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlcl9pbXBsPFQ+Ojp2YWx1ZSkKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX01FTUJFUl9GVU5DVElPTl9QT0lOVEVSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX3BvaW50ZXIuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX3BvaW50ZXIuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0YjY0MTMKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9pc19tZW1iZXJfcG9pbnRlci5ocHAKQEAgLTAsMCArMSwxMTYgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgRGF2ZSBBYnJhaGFtcywgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgCisvLyAgICAgIEhvd2FyZCBIaW5uYW50IGFuZCBKb2huIE1hZGRvY2sgMjAwMC4gCisvLyAgKEMpIENvcHlyaWdodCBNYXQgTWFyY3VzLCBKZXNzZSBKb25lcyBhbmQgQWRvYmUgU3lzdGVtcyBJbmMgMjAwMQorCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisvLyAgICBGaXhlZCBpc19wb2ludGVyLCBpc19yZWZlcmVuY2UsIGlzX2NvbnN0LCBpc192b2xhdGlsZSwgaXNfc2FtZSwgCisvLyAgICBpc19tZW1iZXJfcG9pbnRlciBiYXNlZCBvbiB0aGUgU2ltdWxhdGVkIFBhcnRpYWwgU3BlY2lhbGl6YXRpb24gd29yayAKKy8vICAgIG9mIE1hdCBNYXJjdXMgYW5kIEplc3NlIEpvbmVzLiBTZWUgIGh0dHA6Ly9vcGVuc291cmNlLmFkb2JlLmNvbSBvciAKKy8vICAgIGh0dHA6Ly9ncm91cHMueWFob28uY29tL2dyb3VwL2Jvb3N0L21lc3NhZ2UvNTQ0MSAKKy8vICAgIFNvbWUgd29ya2Fyb3VuZHMgaW4gaGVyZSB1c2UgaWRlYXMgc3VnZ2VzdGVkIGZyb20gIkdlbmVyaWM8UHJvZ3JhbW1pbmc+OiAKKy8vICAgIE1hcHBpbmdzIGJldHdlZW4gVHlwZXMgYW5kIFZhbHVlcyIgCisvLyAgICBieSBBbmRyZWkgQWxleGFuZHJlc2N1IChzZWUgaHR0cDovL3d3dy5jdWouY29tL2V4cGVydHMvMTgxMC9hbGV4YW5kci5odG1sKS4KKworCisjaWZuZGVmIEJPT1NUX1RUX0lTX01FTUJFUl9QT0lOVEVSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19NRU1CRVJfUE9JTlRFUl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgJiYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCA8IDB4NjAwKQorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX21lbWJlcl9mdW5jdGlvbl9wb2ludGVyLmhwcD4KKyNlbHNlCisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX21lbV9mdW5fcG9pbnRlcl90ZXN0ZXIuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ZhbHNlX3Jlc3VsdC5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ljZV9vci5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmIGRlZmluZWQoIF9fQ09ERUdFQVJDX18gKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19tZW1iZXJfcG9pbnRlcixULF9faXNfbWVtYmVyX3BvaW50ZXIoVCkpCisjZWxpZiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgPCAweDYwMCkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfbWVtYmVyX3BvaW50ZXIsVCxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHR5cGVuYW1lIFUsaXNfbWVtYmVyX3BvaW50ZXIsVSBUOjoqLHRydWUpCisKKyNlbGlmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX21lbWJlcl9wb2ludGVyLFQsOjpuZG5ib29zdDo6aXNfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXI8VD46OnZhbHVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsdHlwZW5hbWUgVSxpc19tZW1iZXJfcG9pbnRlcixVIFQ6OiosdHJ1ZSkKKworI2lmICFCT09TVF9XT1JLQVJPVU5EKF9fTVdFUktTX18sPD0weDMwMDMpICYmICFCT09TVF9XT1JLQVJPVU5EKF9fSUJNQ1BQX18sIDw9NjAwKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsdHlwZW5hbWUgVSxpc19tZW1iZXJfcG9pbnRlcixVIFQ6Oipjb25zdCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsdHlwZW5hbWUgVSxpc19tZW1iZXJfcG9pbnRlcixVIFQ6Oip2b2xhdGlsZSx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsdHlwZW5hbWUgVSxpc19tZW1iZXJfcG9pbnRlcixVIFQ6Oipjb25zdCB2b2xhdGlsZSx0cnVlKQorI2VuZGlmCisKKyNlbHNlIC8vIG5vIHBhcnRpYWwgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24KKworbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBSLCB0eXBlbmFtZSBUPgorOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlIEJPT1NUX1RUX0RFQ0wgaXNfbWVtYmVyX3BvaW50ZXJfdGVzdGVyKFIgVDo6KmNvbnN0IHZvbGF0aWxlKik7Cis6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6bm9fdHlwZSBCT09TVF9UVF9ERUNMIGlzX21lbWJlcl9wb2ludGVyX3Rlc3RlciguLi4pOworCit0ZW1wbGF0ZSA8Ym9vbD4KK3N0cnVjdCBpc19tZW1iZXJfcG9pbnRlcl9zZWxlY3QKKyAgICA6IHB1YmxpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6ZmFsc2VfcmVzdWx0Cit7Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGlzX21lbWJlcl9wb2ludGVyX3NlbGVjdDxmYWxzZT4KK3sKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHN0YXRpYyBUKiBtYWtlX3QoKTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICAgICAgYm9vbCwgdmFsdWUgPQorICAgICAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgICAgICAgKDEgPT0gc2l6ZW9mKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppc19tZW1fZnVuX3BvaW50ZXJfdGVzdGVyKG1ha2VfdCgpKSkpLAorICAgICAgICAgICAgICAgICgxID09IHNpemVvZihpc19tZW1iZXJfcG9pbnRlcl90ZXN0ZXIobWFrZV90KCkpKSkKKyAgICAgICAgICAgID46OnZhbHVlKSApOworICAgIH07Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBpc19tZW1iZXJfcG9pbnRlcl9pbXBsCisgICAgOiBwdWJsaWMgaXNfbWVtYmVyX3BvaW50ZXJfc2VsZWN0PAorICAgICAgICAgIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxUPjo6dmFsdWUKKyAgICAgICAgICAgICwgOjpuZG5ib29zdDo6aXNfYXJyYXk8VD46OnZhbHVlCisgICAgICAgICAgICA+Ojp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPFQ+Cit7Cit9OworCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX21lbWJlcl9wb2ludGVyLHZvaWQsZmFsc2UpCisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX21lbWJlcl9wb2ludGVyLHZvaWQgY29uc3QsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX21lbWJlcl9wb2ludGVyLHZvaWQgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX21lbWJlcl9wb2ludGVyLHZvaWQgY29uc3Qgdm9sYXRpbGUsZmFsc2UpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfbWVtYmVyX3BvaW50ZXIsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX21lbWJlcl9wb2ludGVyX2ltcGw8VD46OnZhbHVlKQorCisjZW5kaWYgLy8gX19CT1JMQU5EQ19fCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19NRU1CRVJfUE9JTlRFUl9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX3BvZC5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9pc19wb2QuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkZGE5MjUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9pc19wb2QuaHBwCkBAIC0wLDAgKzEsMTQzIEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0lTX1BPRF9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfSVNfUE9EX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc192b2lkLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19zY2FsYXIuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfb3IuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2ludHJpbnNpY3MuaHBwPgorCisjaW5jbHVkZSA8Y3N0ZGRlZj4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworI2lmbmRlZiBCT09TVF9JU19QT0QKKyNkZWZpbmUgQk9PU1RfSU5URVJOQUxfSVNfUE9EKFQpIGZhbHNlCisjZWxzZQorI2RlZmluZSBCT09TVF9JTlRFUk5BTF9JU19QT0QoVCkgQk9PU1RfSVNfUE9EKFQpCisjZW5kaWYKKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworLy8gZm9yd2FyZCBkZWNsYXJhdGlvbiwgbmVlZGVkIGJ5ICdpc19wb2RfYXJyYXlfaGVscGVyJyB0ZW1wbGF0ZSBiZWxvdwordGVtcGxhdGU8IHR5cGVuYW1lIFQgPiBzdHJ1Y3QgaXNfUE9EOworCituYW1lc3BhY2UgZGV0YWlsIHsKKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgaXNfcG9kX2ltcGwKK3sgCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICBib29sLCB2YWx1ZSA9CisgICAgICAgICg6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6aWNlX29yPAorICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfc2NhbGFyPFQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX3ZvaWQ8VD46OnZhbHVlLAorICAgICAgICAgICAgQk9PU1RfSU5URVJOQUxfSVNfUE9EKFQpCisgICAgICAgICA+Ojp2YWx1ZSkpOworfTsKKworI2lmICFkZWZpbmVkKEJPT1NUX05PX0FSUkFZX1RZUEVfU1BFQ0lBTElaQVRJT05TKQordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHN0ZDo6c2l6ZV90IHN6Pgorc3RydWN0IGlzX3BvZF9pbXBsPFRbc3pdPgorICAgIDogcHVibGljIGlzX3BvZF9pbXBsPFQ+Cit7Cit9OworI2VuZGlmCisKKyNlbHNlCisKK3RlbXBsYXRlIDxib29sIGlzX2FycmF5ID0gZmFsc2U+CitzdHJ1Y3QgaXNfcG9kX2hlbHBlcgoreworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgICAgICAgYm9vbCwgdmFsdWUgPQorICAgICAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfc2NhbGFyPFQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICA6Om5kbmJvb3N0Ojppc192b2lkPFQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICBCT09TVF9JTlRFUk5BTF9JU19QT0QoVCkKKyAgICAgICAgICAgID46OnZhbHVlKSk7CisgICAgfTsKK307CisKK3RlbXBsYXRlIDxib29sIGI+CitzdHJ1Y3QgYm9vbF90b195ZXNfbm9fdHlwZQoreworICAgIHR5cGVkZWYgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGUgdHlwZTsKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgYm9vbF90b195ZXNfbm9fdHlwZTx0cnVlPgoreworICAgIHR5cGVkZWYgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlIHR5cGU7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgQXJyYXlUeXBlPgorc3RydWN0IGlzX3BvZF9hcnJheV9oZWxwZXIKK3sKKyAgICBlbnVtIHsgaXNfcG9kID0gOjpuZG5ib29zdDo6aXNfUE9EPEFycmF5VHlwZT46OnZhbHVlIH07IC8vIE1TVkMgd29ya2Fyb3VuZAorICAgIHR5cGVkZWYgdHlwZW5hbWUgYm9vbF90b195ZXNfbm9fdHlwZTxpc19wb2Q+Ojp0eXBlIHR5cGU7CisgICAgdHlwZSBpbnN0YW5jZSgpIGNvbnN0OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Citpc19wb2RfYXJyYXlfaGVscGVyPFQ+IGlzX1BPRF9hcnJheShUKik7CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXNfcG9kX2hlbHBlcjx0cnVlPgoreworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgcmVzdWx0XworICAgIHsKKyAgICAgICAgc3RhdGljIFQmIGhlbHAoKTsKKyAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgICAgIHNpemVvZihpc19QT0RfYXJyYXkoaGVscCgpKS5pbnN0YW5jZSgpKSA9PSBzaXplb2YoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlKQorICAgICAgICAgICAgKTsKKyAgICB9OworfTsKKworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IGlzX3BvZF9pbXBsCit7IAorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKAorICAgICAgIGJvb2wsIHZhbHVlID0gKAorICAgICAgICAgICA6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3BvZF9oZWxwZXI8CisgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2FycmF5PFQ+Ojp2YWx1ZQorICAgICAgICAgICA+Ojp0ZW1wbGF0ZSByZXN1bHRfPFQ+Ojp2YWx1ZQorICAgICAgICAgICApCisgICAgICAgKTsKK307CisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKKy8vIHRoZSBmb2xsb3dpbmcgaGVscCBjb21waWxlcnMgd2l0aG91dCBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uIHN1cHBvcnQ6CitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCx2b2lkLHRydWUpCisKKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLHZvaWQgY29uc3QsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLHZvaWQgdm9sYXRpbGUsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLHZvaWQgY29uc3Qgdm9sYXRpbGUsdHJ1ZSkKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19QT0QsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3BvZF9pbXBsPFQ+Ojp2YWx1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfcG9kLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19wb2RfaW1wbDxUPjo6dmFsdWUpCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyN1bmRlZiBCT09TVF9JTlRFUk5BTF9JU19QT0QKKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX1BPRF9IUFBfSU5DTFVERUQKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX3BvaW50ZXIuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9pbnRlci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZlMTRhZgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX3BvaW50ZXIuaHBwCkBAIC0wLDAgKzEsMTYyIEBACisKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIAorLy8gICAgICBIb3dhcmQgSGlubmFudCBhbmQgSm9obiBNYWRkb2NrIDIwMDAuIAorLy8gIChDKSBDb3B5cmlnaHQgTWF0IE1hcmN1cywgSmVzc2UgSm9uZXMgYW5kIEFkb2JlIFN5c3RlbXMgSW5jIDIwMDEKKworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworLy8gICAgRml4ZWQgaXNfcG9pbnRlciwgaXNfcmVmZXJlbmNlLCBpc19jb25zdCwgaXNfdm9sYXRpbGUsIGlzX3NhbWUsIAorLy8gICAgaXNfbWVtYmVyX3BvaW50ZXIgYmFzZWQgb24gdGhlIFNpbXVsYXRlZCBQYXJ0aWFsIFNwZWNpYWxpemF0aW9uIHdvcmsgCisvLyAgICBvZiBNYXQgTWFyY3VzIGFuZCBKZXNzZSBKb25lcy4gU2VlICBodHRwOi8vb3BlbnNvdXJjZS5hZG9iZS5jb20gb3IgCisvLyAgICBodHRwOi8vZ3JvdXBzLnlhaG9vLmNvbS9ncm91cC9ib29zdC9tZXNzYWdlLzU0NDEgCisvLyAgICBTb21lIHdvcmthcm91bmRzIGluIGhlcmUgdXNlIGlkZWFzIHN1Z2dlc3RlZCBmcm9tICJHZW5lcmljPFByb2dyYW1taW5nPjogCisvLyAgICBNYXBwaW5ncyBiZXR3ZWVuIFR5cGVzIGFuZCBWYWx1ZXMiIAorLy8gICAgYnkgQW5kcmVpIEFsZXhhbmRyZXNjdSAoc2VlIGh0dHA6Ly93d3cuY3VqLmNvbS9leHBlcnRzLzE4MTAvYWxleGFuZHIuaHRtbCkuCisKKworI2lmbmRlZiBCT09TVF9UVF9JU19QT0lOVEVSX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19QT0lOVEVSX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfbWVtYmVyX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX25vdC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcD4KKyNpZiAhQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLDw9MTMwMCkKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY3YuaHBwPgorI2VuZGlmCisKKyNpZmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcD4KKyMgICBpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2lzX2Z1bmN0aW9uX3B0cl90ZXN0ZXIuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9mYWxzZV9yZXN1bHQuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2Vfb3IuaHBwPgorI2VuZGlmCisKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpZiBkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfcG9pbnRlcixULF9faXNfcG9pbnRlcihUKSkKKyNlbGlmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisKK25hbWVzcGFjZSBkZXRhaWwgeworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBpc19wb2ludGVyX2hlbHBlcgoreworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKK307CisKKyMgICBkZWZpbmUgVFRfQVVYX0JPT0xfVFJBSVRfSEVMUEVSX1BBUlRJQUxfU1BFQyhoZWxwZXIsc3AscmVzdWx0KSBcCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+IHN0cnVjdCBoZWxwZXI8c3A+IFwKK3sgXAorICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IHJlc3VsdCk7IFwKK307IFwKKy8qKi8KKworVFRfQVVYX0JPT0xfVFJBSVRfSEVMUEVSX1BBUlRJQUxfU1BFQyhpc19wb2ludGVyX2hlbHBlcixUKix0cnVlKQorCisjICAgdW5kZWYgVFRfQVVYX0JPT0xfVFJBSVRfSEVMUEVSX1BBUlRJQUxfU1BFQworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVCA+CitzdHJ1Y3QgaXNfcG9pbnRlcl9pbXBsCit7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLDw9MTMwMCkKKyAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8CisgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfcG9pbnRlcl9oZWxwZXI8VD46OnZhbHVlCisgICAgICAgICAgICAsIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX21lbWJlcl9wb2ludGVyPFQ+Ojp2YWx1ZQorICAgICAgICAgICAgICAgID46OnZhbHVlCisgICAgICAgICAgICA+Ojp2YWx1ZSkKKyAgICAgICAgKTsKKyNlbHNlCisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0KKyAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2VfYW5kPAorICAgICAgICA6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3BvaW50ZXJfaGVscGVyPHR5cGVuYW1lIHJlbW92ZV9jdjxUPjo6dHlwZT46OnZhbHVlCisgICAgICAgICAgICAsIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfbm90PAorICAgICAgICAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX21lbWJlcl9wb2ludGVyPFQ+Ojp2YWx1ZQorICAgICAgICAgICAgICAgID46OnZhbHVlCisgICAgICAgICAgICA+Ojp2YWx1ZSkKKyAgICAgICAgKTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfcG9pbnRlcixULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfcG9pbnRlcl9pbXBsPFQ+Ojp2YWx1ZSkKKworI2lmIGRlZmluZWQoX19CT1JMQU5EQ19fKSAmJiAhZGVmaW5lZChfX0NPTU9fXykgJiYgKF9fQk9STEFORENfXyA8IDB4NjAwKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfcG9pbnRlcixUJixmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX3BvaW50ZXIsVCYgY29uc3QsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc19wb2ludGVyLFQmIHZvbGF0aWxlLGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfcG9pbnRlcixUJiBjb25zdCB2b2xhdGlsZSxmYWxzZSkKKyNlbmRpZgorCisjZWxzZSAvLyBubyBwYXJ0aWFsIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uCisKK25hbWVzcGFjZSBkZXRhaWwgeworCitzdHJ1Y3QgcG9pbnRlcl9oZWxwZXIKK3sKKyAgICBwb2ludGVyX2hlbHBlcihjb25zdCB2b2xhdGlsZSB2b2lkKik7Cit9OworCit5ZXNfdHlwZSBCT09TVF9UVF9ERUNMIGlzX3BvaW50ZXJfdGVzdGVyKHBvaW50ZXJfaGVscGVyKTsKK25vX3R5cGUgQk9PU1RfVFRfREVDTCBpc19wb2ludGVyX3Rlc3RlciguLi4pOworCit0ZW1wbGF0ZSA8Ym9vbD4KK3N0cnVjdCBpc19wb2ludGVyX3NlbGVjdAorICAgIDogcHVibGljIDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpmYWxzZV9yZXN1bHQKK3sKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgaXNfcG9pbnRlcl9zZWxlY3Q8ZmFsc2U+Cit7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCByZXN1bHRfCisgICAgeworICAgICAgICBzdGF0aWMgVCYgbWFrZV90KCk7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAgICAgICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICAgICAgICAgICAgICgxID09IHNpemVvZihpc19wb2ludGVyX3Rlc3RlcihtYWtlX3QoKSkpKSwKKyAgICAgICAgICAgICAgICAgICAgKDEgPT0gc2l6ZW9mKHR5cGVfdHJhaXRzOjppc19mdW5jdGlvbl9wdHJfdGVzdGVyKG1ha2VfdCgpKSkpCisgICAgICAgICAgICAgICAgPjo6dmFsdWUpKTsKKyAgICB9OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfcG9pbnRlcl9pbXBsCisgICAgOiBwdWJsaWMgaXNfcG9pbnRlcl9zZWxlY3Q8CisgICAgICAgICAgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9vcjwKKyAgICAgICAgICAgICAgOjpuZG5ib29zdDo6aXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZQorICAgICAgICAgICAgLCA6Om5kbmJvb3N0Ojppc19hcnJheTxUPjo6dmFsdWUKKyAgICAgICAgICAgID46OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88VD4KK3sKK307CisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9pbnRlcix2b2lkLGZhbHNlKQorI2lmbmRlZiBCT09TVF9OT19DVl9WT0lEX1NQRUNJQUxJWkFUSU9OUworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19wb2ludGVyLHZvaWQgY29uc3QsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvaW50ZXIsdm9pZCB2b2xhdGlsZSxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9pbnRlcix2b2lkIGNvbnN0IHZvbGF0aWxlLGZhbHNlKQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3BvaW50ZXIsVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3BvaW50ZXJfaW1wbDxUPjo6dmFsdWUpCisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19QT0lOVEVSX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9seW1vcnBoaWMuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfcG9seW1vcnBoaWMuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZTFhMWYKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9pc19wb2x5bW9ycGhpYy5ocHAKQEAgLTAsMCArMSwxMTQgQEAKKy8vICAoQykgQ29weXJpZ2h0IEpvaG4gTWFkZG9jayAyMDAwLiAKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfUE9MWU1PUlBISUNfSFBQCisjZGVmaW5lIEJPT1NUX1RUX0lTX1BPTFlNT1JQSElDX0hQUAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaW50cmluc2ljcy5ocHA+CisjaWZuZGVmIEJPT1NUX0lTX1BPTFlNT1JQSElDCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfY2xhc3MuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+CisjZW5kaWYKKy8vIHNob3VsZCBiZSB0aGUgbGFzdCAjaW5jbHVkZQorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X2RlZi5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3R7CisKKyNpZm5kZWYgQk9PU1RfSVNfUE9MWU1PUlBISUMKKworbmFtZXNwYWNlIGRldGFpbHsKKwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfcG9seW1vcnBoaWNfaW1wMQoreworIyBpZiBCT09TVF9XT1JLQVJPVU5EKF9fTVdFUktTX18sIDw9IDB4MjQwNykgLy8gQ1dQcm83IHNob3VsZCByZXR1cm4gZmFsc2UgYWx3YXlzLgorICAgIHR5cGVkZWYgY2hhciBkMSwgKCZkMilbMl07CisjIGVsc2UgCisgICB0eXBlZGVmIHR5cGVuYW1lIHJlbW92ZV9jdjxUPjo6dHlwZSBuY3ZUOworICAgc3RydWN0IGQxIDogcHVibGljIG5jdlQKKyAgIHsKKyAgICAgIGQxKCk7CisjICBpZiAhZGVmaW5lZChfX0dOVUNfXykgLy8gdGhpcyByYWlzZXMgd2FybmluZ3Mgd2l0aCBzb21lIGNsYXNzZXMsIGFuZCBidXlzIG5vdGhpbmcgd2l0aCBHQ0MKKyAgICAgIH5kMSgpdGhyb3coKTsKKyMgIGVuZGlmIAorICAgICAgY2hhciBwYWRkaW5nWzI1Nl07CisgICBwcml2YXRlOgorICAgICAgLy8ga2VlcCBzb21lIHBpY2t5IGNvbXBpbGVycyBoYXBweToKKyAgICAgIGQxKGNvbnN0IGQxJik7CisgICAgICBkMSYgb3BlcmF0b3I9KGNvbnN0IGQxJik7CisgICB9OworICAgc3RydWN0IGQyIDogcHVibGljIG5jdlQKKyAgIHsKKyAgICAgIGQyKCk7CisgICAgICB2aXJ0dWFsIH5kMigpdGhyb3coKTsKKyMgIGlmICFkZWZpbmVkKEJPT1NUX01TVkMpICYmICFkZWZpbmVkKF9fSUNMKQorICAgICAgLy8gZm9yIHNvbWUgcmVhc29uIHRoaXMgbWVzc2VzIHVwIFZDKysgd2hlbiBUIGhhcyB2aXJ0dWFsIGJhc2VzLAorICAgICAgLy8gcHJvYmFibHkgbGlrZXdpc2UgZm9yIGNvbXBpbGVycyB0aGF0IHVzZSB0aGUgc2FtZSBBQkk6CisgICAgICBzdHJ1Y3QgdW5pcXVle307CisgICAgICB2aXJ0dWFsIHZvaWQgdW5pcXVlX25hbWVfdG9fYm9vc3Q1NDg3NjI5KHVuaXF1ZSopOworIyAgZW5kaWYKKyAgICAgIGNoYXIgcGFkZGluZ1syNTZdOworICAgcHJpdmF0ZToKKyAgICAgIC8vIGtlZXAgc29tZSBwaWNreSBjb21waWxlcnMgaGFwcHk6CisgICAgICBkMihjb25zdCBkMiYpOworICAgICAgZDImIG9wZXJhdG9yPShjb25zdCBkMiYpOworICAgfTsKKyMgZW5kaWYgCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoc2l6ZW9mKGQyKSA9PSBzaXplb2YoZDEpKSk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBpc19wb2x5bW9ycGhpY19pbXAyCit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSBmYWxzZSk7Cit9OworCit0ZW1wbGF0ZSA8Ym9vbCBpc19jbGFzcz4KK3N0cnVjdCBpc19wb2x5bW9ycGhpY19zZWxlY3RvcgoreworICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBzdHJ1Y3QgcmViaW5kCisgICB7CisgICAgICB0eXBlZGVmIGlzX3BvbHltb3JwaGljX2ltcDI8VD4gdHlwZTsKKyAgIH07Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGlzX3BvbHltb3JwaGljX3NlbGVjdG9yPHRydWU+Cit7CisgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgIHN0cnVjdCByZWJpbmQKKyAgIHsKKyAgICAgIHR5cGVkZWYgaXNfcG9seW1vcnBoaWNfaW1wMTxUPiB0eXBlOworICAgfTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3BvbHltb3JwaGljX2ltcAoreworICAgdHlwZWRlZiBpc19wb2x5bW9ycGhpY19zZWxlY3RvcjwgOjpuZG5ib29zdDo6aXNfY2xhc3M8VD46OnZhbHVlPiBzZWxlY3RvcjsKKyAgIHR5cGVkZWYgdHlwZW5hbWUgc2VsZWN0b3I6OnRlbXBsYXRlIHJlYmluZDxUPiBiaW5kZXI7CisgICB0eXBlZGVmIHR5cGVuYW1lIGJpbmRlcjo6dHlwZSBpbXBfdHlwZTsKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGltcF90eXBlOjp2YWx1ZSk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19wb2x5bW9ycGhpYyxULDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfcG9seW1vcnBoaWNfaW1wPFQ+Ojp2YWx1ZSkKKworI2Vsc2UgLy8gQk9PU1RfSVNfUE9MWU1PUlBISUMKKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMShpc19wb2x5bW9ycGhpYyxULEJPT1NUX0lTX1BPTFlNT1JQSElDKFQpKQorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmCmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmQ5MzY0Ci0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfcmVmZXJlbmNlLmhwcApAQCAtMCwwICsxLDQ1IEBACisKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIAorLy8gICAgICBIb3dhcmQgSGlubmFudCBhbmQgSm9obiBNYWRkb2NrIDIwMDAsIDIwMTAuIAorLy8gIChDKSBDb3B5cmlnaHQgTWF0IE1hcmN1cywgSmVzc2UgSm9uZXMgYW5kIEFkb2JlIFN5c3RlbXMgSW5jIDIwMDEKKworLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9JU19SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX1JFRkVSRU5DRV9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfbHZhbHVlX3JlZmVyZW5jZS5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfcnZhbHVlX3JlZmVyZW5jZS5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaWNlLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGRldGFpbCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGlzX3JlZmVyZW5jZV9pbXBsCit7CisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICA6Om5kbmJvb3N0Ojppc19sdmFsdWVfcmVmZXJlbmNlPFQ+Ojp2YWx1ZSwgOjpuZG5ib29zdDo6aXNfcnZhbHVlX3JlZmVyZW5jZTxUPjo6dmFsdWUKKyAgICAgICA+Ojp2YWx1ZSkpOworfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfcmVmZXJlbmNlLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19yZWZlcmVuY2VfaW1wbDxUPjo6dmFsdWUpCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX3J2YWx1ZV9yZWZlcmVuY2UuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfcnZhbHVlX3JlZmVyZW5jZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVhMzdmYwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX3J2YWx1ZV9yZWZlcmVuY2UuaHBwCkBAIC0wLDAgKzEsMjkgQEAKKworLy8gIChDKSBKb2huIE1hZGRvY2sgMjAxMC4gCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0lTX1JWQUxVRV9SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX1JWQUxVRV9SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3J2YWx1ZV9yZWZlcmVuY2UsVCxmYWxzZSkKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX3J2YWx1ZV9yZWZlcmVuY2UsVCYmLHRydWUpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX1JFRkVSRU5DRV9IUFBfSU5DTFVERUQKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9pc19zYW1lLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzcyMWZhCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvaXNfc2FtZS5ocHAKQEAgLTAsMCArMSwxMDMgQEAKKworLy8gIChDKSBDb3B5cmlnaHQgRGF2ZSBBYnJhaGFtcywgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgCisvLyAgICAgIEhvd2FyZCBIaW5uYW50IGFuZCBKb2huIE1hZGRvY2sgMjAwMC4gCisvLyAgKEMpIENvcHlyaWdodCBNYXQgTWFyY3VzLCBKZXNzZSBKb25lcyBhbmQgQWRvYmUgU3lzdGVtcyBJbmMgMjAwMQorCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisvLyAgICBGaXhlZCBpc19wb2ludGVyLCBpc19yZWZlcmVuY2UsIGlzX2NvbnN0LCBpc192b2xhdGlsZSwgaXNfc2FtZSwgCisvLyAgICBpc19tZW1iZXJfcG9pbnRlciBiYXNlZCBvbiB0aGUgU2ltdWxhdGVkIFBhcnRpYWwgU3BlY2lhbGl6YXRpb24gd29yayAKKy8vICAgIG9mIE1hdCBNYXJjdXMgYW5kIEplc3NlIEpvbmVzLiBTZWUgIGh0dHA6Ly9vcGVuc291cmNlLmFkb2JlLmNvbSBvciAKKy8vICAgIGh0dHA6Ly9ncm91cHMueWFob28uY29tL2dyb3VwL2Jvb3N0L21lc3NhZ2UvNTQ0MSAKKy8vICAgIFNvbWUgd29ya2Fyb3VuZHMgaW4gaGVyZSB1c2UgaWRlYXMgc3VnZ2VzdGVkIGZyb20gIkdlbmVyaWM8UHJvZ3JhbW1pbmc+OiAKKy8vICAgIE1hcHBpbmdzIGJldHdlZW4gVHlwZXMgYW5kIFZhbHVlcyIgCisvLyAgICBieSBBbmRyZWkgQWxleGFuZHJlc2N1IChzZWUgaHR0cDovL3d3dy5jdWouY29tL2V4cGVydHMvMTgxMC9hbGV4YW5kci5odG1sKS4KKworCisjaWZuZGVmIEJPT1NUX1RUX0lTX1NBTUVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX1NBTUVfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9jb25maWcuaHBwPgorI2lmZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwveWVzX25vX3R5cGUuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9pY2VfYW5kLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19yZWZlcmVuY2UuaHBwPgorI2VuZGlmCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisjaWZuZGVmIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfREVGMihpc19zYW1lLFQsVSxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzJfMSh0eXBlbmFtZSBULGlzX3NhbWUsVCxULHRydWUpCisjaWYgQk9PU1RfV09SS0FST1VORChfX0JPUkxBTkRDX18sIDwgMHg2MDApCisvLyB3aXRob3V0IHRoaXMsIEJvcmxhbmQncyBjb21waWxlciBnaXZlcyB0aGUgd3JvbmcgYW5zd2VyIGZvcgorLy8gcmVmZXJlbmNlcyB0byBhcnJheXM6CitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMyXzEodHlwZW5hbWUgVCxpc19zYW1lLFQmLFQmLHRydWUpCisjZW5kaWYKKworI2Vsc2UgLy8gQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorCituYW1lc3BhY2UgZGV0YWlsIHsKKworI2lmZGVmIEJPT1NUX01TVkMKKy8vIHRoZSBmb2xsb3dpbmcgVkM2IHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGlzICpOT1QqIGxlZ2FsCisvLyBDKyssIGJ1dCBoYXMgdGhlIGFkdmFudGFnZSB0aGF0IGl0IHdvcmtzIGZvciBpbmNvbXBsZXRlCisvLyB0eXBlcy4KKwordGVtcGxhdGU8IHR5cGVuYW1lIFQxID4KK3N0cnVjdCBpc19zYW1lX3BhcnRfMQoreworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQyPiAgc3RydWN0IHBhcnRfMiAgICAgeyBlbnVtIHsgdmFsdWUgPSBmYWxzZSB9OyB9OworICAgIHRlbXBsYXRlPD4gICAgICAgICAgICAgc3RydWN0IHBhcnRfMjxUMT4geyBlbnVtIHsgdmFsdWUgPSB0cnVlIH07IH07Cit9OworCit0ZW1wbGF0ZTwgdHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyID4KK3N0cnVjdCBpc19zYW1lX2ltcGwKK3sKKyAgICBlbnVtIHsgdmFsdWUgPSBuZG5ib29zdDo6ZGV0YWlsOjppc19zYW1lX3BhcnRfMTxUMT46OnRlbXBsYXRlIHBhcnRfMjxUMj46OnZhbHVlIH07Cit9OworCisjZWxzZSAvLyBnZW5lcmljICJuby1wYXJ0aWFsLXNwZWNpYWxpemF0aW9uIiB2ZXJzaW9uCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlCitCT09TVF9UVF9ERUNMIGlzX3NhbWVfdGVzdGVyKFQqLCBUKik7CisKKzo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjpub190eXBlCitCT09TVF9UVF9ERUNMIGlzX3NhbWVfdGVzdGVyKC4uLik7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgorc3RydWN0IGlzX3NhbWVfaW1wbAoreworICAgc3RhdGljIFQgdDsKKyAgIHN0YXRpYyBVIHU7CisKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9CisgICAgICAoOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6OmljZV9hbmQ8CisgICAgICAgICAoc2l6ZW9mKHR5cGVfdHJhaXRzOjp5ZXNfdHlwZSkgPT0gc2l6ZW9mKG5kbmJvb3N0OjpkZXRhaWw6OmlzX3NhbWVfdGVzdGVyKCZ0LCZ1KSkpLAorICAgICAgICAgKDo6bmRuYm9vc3Q6OmlzX3JlZmVyZW5jZTxUPjo6dmFsdWUgPT0gOjpuZG5ib29zdDo6aXNfcmVmZXJlbmNlPFU+Ojp2YWx1ZSksCisgICAgICAgICAoc2l6ZW9mKFQpID09IHNpemVvZihVKSkKKyAgICAgICAgPjo6dmFsdWUpKTsKK307CisKKyNlbmRpZiAvLyBCT09TVF9NU1ZDCisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYyKGlzX3NhbWUsVCxVLCg6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3NhbWVfaW1wbDxULFU+Ojp2YWx1ZSkpCisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAgLy8gQk9PU1RfVFRfSVNfU0FNRV9IUFBfSU5DTFVERUQKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvaXNfc2NhbGFyLmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX3NjYWxhci5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA0M2Q3MAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX3NjYWxhci5ocHAKQEAgLTAsMCArMSw1NSBAQAorCisvLyAgKEMpIENvcHlyaWdodCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCBIb3dhcmQgSGlubmFudCAmIEpvaG4gTWFkZG9jayAyMDAwLgorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworI2lmbmRlZiBCT09TVF9UVF9JU19TQ0FMQVJfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX1NDQUxBUl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX2FyaXRobWV0aWMuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX2VudW0uaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3BvaW50ZXIuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX21lbWJlcl9wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvaWNlX29yLmhwcD4KKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCituYW1lc3BhY2UgZGV0YWlsIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfc2NhbGFyX2ltcGwKK3sgCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPQorICAgICAgKDo6bmRuYm9vc3Q6OnR5cGVfdHJhaXRzOjppY2Vfb3I8CisgICAgICAgICA6Om5kbmJvb3N0Ojppc19hcml0aG1ldGljPFQ+Ojp2YWx1ZSwKKyAgICAgICAgIDo6bmRuYm9vc3Q6OmlzX2VudW08VD46OnZhbHVlLAorICAgICAgICAgOjpuZG5ib29zdDo6aXNfcG9pbnRlcjxUPjo6dmFsdWUsCisgICAgICAgICA6Om5kbmJvb3N0Ojppc19tZW1iZXJfcG9pbnRlcjxUPjo6dmFsdWUKKyAgICAgID46OnZhbHVlKSk7Cit9OworCisvLyB0aGVzZSBzcGVjaWFsaXphdGlvbnMgYXJlIG9ubHkgcmVhbGx5IG5lZWRlZCBmb3IgY29tcGlsZXJzIAorLy8gd2l0aG91dCBwYXJ0aWFsIHNwZWNpYWxpemF0aW9uIHN1cHBvcnQ6Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfc2NhbGFyX2ltcGw8dm9pZD57IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlICk7IH07CisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfc2NhbGFyX2ltcGw8dm9pZCBjb25zdD57IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlICk7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfc2NhbGFyX2ltcGw8dm9pZCB2b2xhdGlsZT57IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlICk7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfc2NhbGFyX2ltcGw8dm9pZCBjb25zdCB2b2xhdGlsZT57IEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlICk7IH07CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfc2NhbGFyLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc19zY2FsYXJfaW1wbDxUPjo6dmFsdWUpCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9JU19TQ0FMQVJfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9pc191bmlvbi5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9pc191bmlvbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjYwZDdjZAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX3VuaW9uLmhwcApAQCAtMCwwICsxLDU3IEBACisKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZAorLy8gIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4gIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworCisjaWZuZGVmIEJPT1NUX1RUX0lTX1VOSU9OX0hQUF9JTkNMVURFRAorI2RlZmluZSBCT09TVF9UVF9JU19VTklPTl9IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9jdi5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pbnRyaW5zaWNzLmhwcD4KKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGRldGFpbCB7CisjaWZuZGVmIF9fR05VQ19fCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IGlzX3VuaW9uX2ltcGwKK3sKKyAgIHR5cGVkZWYgdHlwZW5hbWUgcmVtb3ZlX2N2PFQ+Ojp0eXBlIGN2dDsKKyNpZmRlZiBCT09TVF9JU19VTklPTgorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gQk9PU1RfSVNfVU5JT04oY3Z0KSk7CisjZWxzZQorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworI2VuZGlmCit9OworI2Vsc2UKKy8vCisvLyB1c2luZyByZW1vdmVfY3YgaGVyZSBnZW5lcmF0ZXMgYSB3aG9sZSBsb2FkIG9mIG5lZWRsZXNzCisvLyB3YXJuaW5ncyB3aXRoIGdjYywgc2luY2UgaXQgZG9lc24ndCBkbyBhbnkgZ29vZCB3aXRoIGdjYworLy8gaW4gYW55IGNhc2UgKGF0IGxlYXN0IGF0IHByZXNlbnQpLCBqdXN0IHJlbW92ZSBpdDoKKy8vCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IGlzX3VuaW9uX2ltcGwKK3sKKyNpZmRlZiBCT09TVF9JU19VTklPTgorICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gQk9PU1RfSVNfVU5JT04oVCkpOworI2Vsc2UKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IGZhbHNlKTsKKyNlbmRpZgorfTsKKyNlbmRpZgorfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfdW5pb24sVCw6Om5kbmJvb3N0OjpkZXRhaWw6OmlzX3VuaW9uX2ltcGw8VD46OnZhbHVlKQorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfdW5kZWYuaHBwPgorCisjZW5kaWYgLy8gQk9PU1RfVFRfSVNfVU5JT05fSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9pc192b2lkLmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvaWQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmNTE2N2EKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9pc192b2lkLmhwcApAQCAtMCwwICsxLDM4IEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX0lTX1ZPSURfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX1ZPSURfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCisvLyogaXMgYSB0eXBlIFQgdm9pZCAtIGlzX3ZvaWQ8VD4KKyNpZiBkZWZpbmVkKCBfX0NPREVHRUFSQ19fICkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0RFRjEoaXNfdm9pZCxULF9faXNfdm9pZChUKSkKKyNlbHNlCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3ZvaWQsVCxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGlzX3ZvaWQsdm9pZCx0cnVlKQorCisjaWZuZGVmIEJPT1NUX05PX0NWX1ZPSURfU1BFQ0lBTElaQVRJT05TCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9TUEVDMShpc192b2lkLHZvaWQgY29uc3QsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1NQRUMxKGlzX3ZvaWQsdm9pZCB2b2xhdGlsZSx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfU1BFQzEoaXNfdm9pZCx2b2lkIGNvbnN0IHZvbGF0aWxlLHRydWUpCisjZW5kaWYKKworI2VuZGlmICAvLyBub24tQ29kZUdlYXIgaW1wbGVtZW50YXRpb24KKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX1ZPSURfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9pc192b2xhdGlsZS5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9pc192b2xhdGlsZS5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ0MDg4OQotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL2lzX3ZvbGF0aWxlLmhwcApAQCAtMCwwICsxLDE1MiBAQAorCisvLyAgKEMpIENvcHlyaWdodCBEYXZlIEFicmFoYW1zLCBTdGV2ZSBDbGVhcnksIEJlbWFuIERhd2VzLCAKKy8vICAgICAgSG93YXJkIEhpbm5hbnQgYW5kIEpvaG4gTWFkZG9jayAyMDAwLiAKKy8vICAoQykgQ29weXJpZ2h0IE1hdCBNYXJjdXMsIEplc3NlIEpvbmVzIGFuZCBBZG9iZSBTeXN0ZW1zIEluYyAyMDAxCisKKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKy8vICAgIEZpeGVkIGlzX3BvaW50ZXIsIGlzX3JlZmVyZW5jZSwgaXNfY29uc3QsIGlzX3ZvbGF0aWxlLCBpc19zYW1lLCAKKy8vICAgIGlzX21lbWJlcl9wb2ludGVyIGJhc2VkIG9uIHRoZSBTaW11bGF0ZWQgUGFydGlhbCBTcGVjaWFsaXphdGlvbiB3b3JrIAorLy8gICAgb2YgTWF0IE1hcmN1cyBhbmQgSmVzc2UgSm9uZXMuIFNlZSAgaHR0cDovL29wZW5zb3VyY2UuYWRvYmUuY29tIG9yIAorLy8gICAgaHR0cDovL2dyb3Vwcy55YWhvby5jb20vZ3JvdXAvYm9vc3QvbWVzc2FnZS81NDQxIAorLy8gICAgU29tZSB3b3JrYXJvdW5kcyBpbiBoZXJlIHVzZSBpZGVhcyBzdWdnZXN0ZWQgZnJvbSAiR2VuZXJpYzxQcm9ncmFtbWluZz46IAorLy8gICAgTWFwcGluZ3MgYmV0d2VlbiBUeXBlcyBhbmQgVmFsdWVzIiAKKy8vICAgIGJ5IEFuZHJlaSBBbGV4YW5kcmVzY3UgKHNlZSBodHRwOi8vd3d3LmN1ai5jb20vZXhwZXJ0cy8xODEwL2FsZXhhbmRyLmh0bWwpLgorCisKKyNpZm5kZWYgQk9PU1RfVFRfSVNfVk9MQVRJTEVfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX0lTX1ZPTEFUSUxFX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpZm5kZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9jdl90cmFpdHNfaW1wbC5ocHA+CisjICAgaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDE0MDApCisjICAgICAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9ib3VuZHMuaHBwPgorIyAgIGVuZGlmCisjZWxzZQorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfYXJyYXkuaHBwPgorIyAgIGluY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC95ZXNfbm9fdHlwZS5ocHA+CisjICAgaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2ZhbHNlX3Jlc3VsdC5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL2Jvb2xfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworbmFtZXNwYWNlIGRldGFpbHsKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IGlzX3ZvbGF0aWxlX3J2YWxfZmlsdGVyCit7CisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLCA8IDE0MDApCisgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSA6Om5kbmJvb3N0OjpkZXRhaWw6OmN2X3RyYWl0c19pbXA8dHlwZW5hbWUgbmRuYm9vc3Q6OnJlbW92ZV9ib3VuZHM8VD46OnR5cGUqPjo6aXNfdm9sYXRpbGUpOworI2Vsc2UKKyAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9IDo6bmRuYm9vc3Q6OmRldGFpbDo6Y3ZfdHJhaXRzX2ltcDxUKj46OmlzX3ZvbGF0aWxlKTsKKyNlbmRpZgorfTsKKyNpZm5kZWYgQk9PU1RfTk9fQ1hYMTFfUlZBTFVFX1JFRkVSRU5DRVMKKy8vCisvLyBXZSBjYW4ndCBmaWx0ZXIgb3V0IHJ2YWx1ZV9yZWZlcmVuY2VzIGF0IHRoZSBzYW1lIGxldmVsIGFzCisvLyByZWZlcmVuY2VzIG9yIHdlIGdldCBhbWJpZ3VpdGllcyBmcm9tIG1zdmM6CisvLwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgaXNfdm9sYXRpbGVfcnZhbF9maWx0ZXI8VCYmPgoreworICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsIHZhbHVlID0gZmFsc2UpOworfTsKKyNlbmRpZgorfQorCisjaWYgZGVmaW5lZCggX19DT0RFR0VBUkNfXyApCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3ZvbGF0aWxlLFQsX19pc192b2xhdGlsZShUKSkKKyNlbGlmICFkZWZpbmVkKEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04pCisKKy8vKiBpcyBhIHR5cGUgVCBkZWNsYXJlZCB2b2xhdGlsZSAtIGlzX3ZvbGF0aWxlPFQ+CitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3ZvbGF0aWxlLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc192b2xhdGlsZV9ydmFsX2ZpbHRlcjxUPjo6dmFsdWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc192b2xhdGlsZSxUJixmYWxzZSkKKworI2lmICBkZWZpbmVkKEJPT1NUX0lMTEVHQUxfQ1ZfUkVGRVJFTkNFUykKKy8vIHRoZXNlIGFyZSBpbGxlZ2FsIHNwZWNpYWxpc2F0aW9uczsgY3YtcXVhbGlmaWVzIGFwcGxpZWQgdG8KKy8vIHJlZmVyZW5jZXMgaGF2ZSBubyBlZmZlY3QgYWNjb3JkaW5nIHRvIFs4LjMuMnAxXSwKKy8vIEMrKyBCdWlsZGVyIHJlcXVpcmVzIHRoZW0gdGhvdWdoIGFzIGl0IHRyZWF0cyBjdi1xdWFsaWZpZWQKKy8vIHJlZmVyZW5jZXMgYXMgZGlzdGluY3QgdHlwZXMuLi4KK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULGlzX3ZvbGF0aWxlLFQmIGNvbnN0LGZhbHNlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQsaXNfdm9sYXRpbGUsVCYgdm9sYXRpbGUsZmFsc2UpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxpc192b2xhdGlsZSxUJiBjb25zdCB2b2xhdGlsZSxmYWxzZSkKKyNlbmRpZgorCisjZWxzZQorCituYW1lc3BhY2UgZGV0YWlsIHsKKwordXNpbmcgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Onllc190eXBlOwordXNpbmcgOjpuZG5ib29zdDo6dHlwZV90cmFpdHM6Om5vX3R5cGU7CisKK3llc190eXBlIGlzX3ZvbGF0aWxlX3Rlc3Rlcih2b2lkIGNvbnN0IHZvbGF0aWxlKik7Citub190eXBlIGlzX3ZvbGF0aWxlX3Rlc3Rlcih2b2lkIGNvbnN0Kik7CisKK3RlbXBsYXRlIDxib29sIGlzX3JlZiwgYm9vbCBhcnJheT4KK3N0cnVjdCBpc192b2xhdGlsZV9oZWxwZXIKKyAgICA6IHB1YmxpYyA6Om5kbmJvb3N0Ojp0eXBlX3RyYWl0czo6ZmFsc2VfcmVzdWx0Cit7Cit9OworCit0ZW1wbGF0ZSA8Pgorc3RydWN0IGlzX3ZvbGF0aWxlX2hlbHBlcjxmYWxzZSxmYWxzZT4KK3sKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHN0YXRpYyBUKiB0OworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoYm9vbCwgdmFsdWUgPSAoCisgICAgICAgICAgICBzaXplb2YobmRuYm9vc3Q6OmRldGFpbDo6eWVzX3R5cGUpID09IHNpemVvZihuZG5ib29zdDo6ZGV0YWlsOjppc192b2xhdGlsZV90ZXN0ZXIodCkpCisgICAgICAgICAgICApKTsKKyAgICB9OworfTsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBpc192b2xhdGlsZV9oZWxwZXI8ZmFsc2UsdHJ1ZT4KK3sKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IHJlc3VsdF8KKyAgICB7CisgICAgICAgIHN0YXRpYyBUIHQ7CisgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChib29sLCB2YWx1ZSA9ICgKKyAgICAgICAgICAgIHNpemVvZihuZG5ib29zdDo6ZGV0YWlsOjp5ZXNfdHlwZSkgPT0gc2l6ZW9mKG5kbmJvb3N0OjpkZXRhaWw6OmlzX3ZvbGF0aWxlX3Rlc3RlcigmdCkpCisgICAgICAgICAgICApKTsKKyAgICB9OworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgaXNfdm9sYXRpbGVfaW1wbAorICAgIDogcHVibGljIGlzX3ZvbGF0aWxlX2hlbHBlcjwKKyAgICAgICAgICBpc19yZWZlcmVuY2U8VD46OnZhbHVlCisgICAgICAgICwgaXNfYXJyYXk8VD46OnZhbHVlCisgICAgICAgID46OnRlbXBsYXRlIHJlc3VsdF88VD4KK3sKK307CisKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfdm9sYXRpbGUsdm9pZCxmYWxzZSkKKyNpZm5kZWYgQk9PU1RfTk9fQ1ZfVk9JRF9TUEVDSUFMSVpBVElPTlMKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfdm9sYXRpbGUsdm9pZCBjb25zdCxmYWxzZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfdm9sYXRpbGUsdm9pZCB2b2xhdGlsZSx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc192b2xhdGlsZSx2b2lkIGNvbnN0IHZvbGF0aWxlLHRydWUpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKKy8vKiBpcyBhIHR5cGUgVCBkZWNsYXJlZCB2b2xhdGlsZSAtIGlzX3ZvbGF0aWxlPFQ+CitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9ERUYxKGlzX3ZvbGF0aWxlLFQsOjpuZG5ib29zdDo6ZGV0YWlsOjppc192b2xhdGlsZV9pbXBsPFQ+Ojp2YWx1ZSkKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9ib29sX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX0lTX1ZPTEFUSUxFX0hQUF9JTkNMVURFRApkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfYm91bmRzLmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2JvdW5kcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE4Nzg5MwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2JvdW5kcy5ocHAKQEAgLTAsMCArMSw0MyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDA0IFBlZGVyIEhvbHQKKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX1RZUEVfVFJBSVRTX01TVkNfUkVNT1ZFX0JPVU5EU19IT0xUXzIwMDRfMDgyNworI2RlZmluZSBCT09TVF9UWVBFX1RSQUlUU19NU1ZDX1JFTU9WRV9CT1VORFNfSE9MVF8yMDA0XzA4MjcKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL21zdmMvdHlwZW9mLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgbmFtZXNwYWNlIGRldGFpbCB7CisgICAgICAgIHRlbXBsYXRlPGJvb2wgSXNBcnJheT4KKyAgICAgICAgc3RydWN0IHJlbW92ZV9ib3VuZHNfaW1wbF90eXBlb2YgeworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0cnVjdCByZW1vdmVfYm91bmRzX2ltcGxfdHlwZW9mPHRydWU+IHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxVLElEPiB0ZXN0KFVbXSk7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoICooKFQqKU5VTEwpICkgKSk7CisgICAgICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2V4dHJhY3RfdHlwZTxJRD46OmlkMnR5cGU6OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgfSAvL25hbWVzcGFjZSBkZXRhaWwKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgc3RydWN0IHJlbW92ZV9ib3VuZHMgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnJlbW92ZV9ib3VuZHNfaW1wbF90eXBlb2Y8CisgICAgICAgICAgICBuZG5ib29zdDo6aXNfYXJyYXk8VD46OnZhbHVlICAgICAgICAgICAgICAgIAorICAgICAgICA+Ojp0ZW1wbGF0ZSBpbm5lcjxULHJlbW92ZV9ib3VuZHM8VD4gPjo6dHlwZSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDEscmVtb3ZlX2JvdW5kcyxUKQorICAgIH07Cit9IC8vbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvL0JPT1NUX1RZUEVfVFJBSVRTX01TVkNfUkVNT1ZFX0JPVU5EU19IT0xUXzIwMDRfMDgyNworCmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9jdi5ocHAgYi9ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9jdi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJlMTVjMAotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2N2LmhwcApAQCAtMCwwICsxLDE5MCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDA0IFBlZGVyIEhvbHQKKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX1RZUEVfVFJBSVRTX01TVkNfUkVNT1ZFX0NWX0hPTFRfMjAwNF8wOTAxCisjZGVmaW5lIEJPT1NUX1RZUEVfVFJBSVRTX01TVkNfUkVNT1ZFX0NWX0hPTFRfMjAwNF8wOTAxCisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9tc3ZjL3R5cGVvZi5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfdm9sYXRpbGUuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX2NvbnN0LmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19wb2ludGVyLmhwcD4KKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9pc19hcnJheS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgbmFtZXNwYWNlIGRldGFpbCB7CisgICAgICAgIHRlbXBsYXRlPGJvb2wgSXNQb2ludGVyLGJvb2wgSXNBcnJheSxib29sIElzQ29uc3QsYm9vbCBJc1ZvbGF0aWxlPgorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX2N2X2ltcGxfdHlwZW9mIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgICAgICBzdHJ1Y3QgdHJhbnNmb3JtX3R5cGUgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgdGVtcGxhdGU8PiAvL1ZvbGF0aWxlCisgICAgICAgIHN0cnVjdCByZW1vdmVfY3ZfaW1wbF90eXBlb2Y8ZmFsc2UsZmFsc2UsZmFsc2UsdHJ1ZT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFUsSUQ+IHRlc3QoVSB2b2xhdGlsZSYoKikoKSk7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoIChUKCopKCkpKE5VTEwpICkgKSk7CisgICAgICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2V4dHJhY3RfdHlwZTxJRD46OmlkMnR5cGU6OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICAgICAgc3RydWN0IHRyYW5zZm9ybV90eXBlIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQmIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTw+IC8vQ29uc3QKKyAgICAgICAgc3RydWN0IHJlbW92ZV9jdl9pbXBsX3R5cGVvZjxmYWxzZSxmYWxzZSx0cnVlLGZhbHNlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VSxJRD4gdGVzdChVIGNvbnN0JigqKSgpKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFQsSUQ+IHRlc3QoLi4uKTsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQscmVnaXN0ZXJfdGVzdD1zaXplb2YodGVzdCggKFQoKikoKSkoTlVMTCkgKSApKTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfZXh0cmFjdF90eXBlPElEPjo6aWQydHlwZTo6dHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgICAgICBzdHJ1Y3QgdHJhbnNmb3JtX3R5cGUgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCYgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPD4gLy9DVgorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX2N2X2ltcGxfdHlwZW9mPGZhbHNlLGZhbHNlLHRydWUsdHJ1ZT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFUsSUQ+IHRlc3QoVSBjb25zdCB2b2xhdGlsZSYoKikoKSk7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoIChUKCopKCkpKE5VTEwpICkgKSk7CisgICAgICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2V4dHJhY3RfdHlwZTxJRD46OmlkMnR5cGU6OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICAgICAgc3RydWN0IHRyYW5zZm9ybV90eXBlIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQmIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICB0ZW1wbGF0ZTw+IC8vVm9sYXRpbGUgUG9pbnRlcgorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX2N2X2ltcGxfdHlwZW9mPHRydWUsZmFsc2UsZmFsc2UsdHJ1ZT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFUsSUQ+IHRlc3Qodm9pZCgqKShVIHZvbGF0aWxlW10pKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFQsSUQ+IHRlc3QoLi4uKTsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQscmVnaXN0ZXJfdGVzdD1zaXplb2YodGVzdCggKHZvaWQoKikoVCkpKE5VTEwpICkgKSk7CisgICAgICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2V4dHJhY3RfdHlwZTxJRD46OmlkMnR5cGU6OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICAgICAgc3RydWN0IHRyYW5zZm9ybV90eXBlIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZVtdOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgdGVtcGxhdGU8PiAvL0NvbnN0IFBvaW50ZXIKKyAgICAgICAgc3RydWN0IHJlbW92ZV9jdl9pbXBsX3R5cGVvZjx0cnVlLGZhbHNlLHRydWUsZmFsc2U+IHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxVLElEPiB0ZXN0KHZvaWQoKikoVSBjb25zdFtdKSk7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoICh2b2lkKCopKFQpKShOVUxMKSApICkpOworICAgICAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8SUQ+OjppZDJ0eXBlOjp0eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHN0cnVjdCB0cmFuc2Zvcm1fdHlwZSB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGVbXTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgICAgIHRlbXBsYXRlPD4gLy9DViBQb2ludGVyCisgICAgICAgIHN0cnVjdCByZW1vdmVfY3ZfaW1wbF90eXBlb2Y8dHJ1ZSxmYWxzZSx0cnVlLHRydWU+IHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxVLElEPiB0ZXN0KHZvaWQoKikoVSBjb25zdCB2b2xhdGlsZVtdKSk7CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxULElEPiB0ZXN0KC4uLik7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHJlZ2lzdGVyX3Rlc3Q9c2l6ZW9mKHRlc3QoICh2b2lkKCopKFQpKShOVUxMKSApICkpOworICAgICAgICAgICAgICAgIHR5cGVkZWYgdHlwZW5hbWUgbXN2Y19leHRyYWN0X3R5cGU8SUQ+OjppZDJ0eXBlOjp0eXBlIHR5cGU7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICAgICAgICAgIHN0cnVjdCB0cmFuc2Zvcm1fdHlwZSB7CisgICAgICAgICAgICAgICAgdHlwZWRlZiBUIHR5cGVbXTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07ICAgICAgICAKKyAgICAgICAgdGVtcGxhdGU8PiAvL1ZvbGF0aWxlIEFycmF5CisgICAgICAgIHN0cnVjdCByZW1vdmVfY3ZfaW1wbF90eXBlb2Y8ZmFsc2UsdHJ1ZSxmYWxzZSx0cnVlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsdmFsdWU9KHNpemVvZihUKS9zaXplb2YoKCooKFQqKU5VTEwpKVswXSkpKTsKKworICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxVW3ZhbHVlXSxJRD4gdGVzdCh2b2lkKCopKFUgdm9sYXRpbGVbXSkpOworICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxJRD4gdGVzdCguLi4pOworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCxyZWdpc3Rlcl90ZXN0PXNpemVvZih0ZXN0KCAodm9pZCgqKShUKSkoTlVMTCkgKSApKTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfZXh0cmFjdF90eXBlPElEPjo6aWQydHlwZTo6dHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgICAgICBzdHJ1Y3QgdHJhbnNmb3JtX3R5cGUgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgdGVtcGxhdGU8PiAvL0NvbnN0IEFycmF5CisgICAgICAgIHN0cnVjdCByZW1vdmVfY3ZfaW1wbF90eXBlb2Y8ZmFsc2UsdHJ1ZSx0cnVlLGZhbHNlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQsdmFsdWU9KHNpemVvZihUKS9zaXplb2YoKCooKFQqKU5VTEwpKVswXSkpKTsKKworICAgICAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgICAgICAgICAgICAgc3RhdGljIG1zdmNfcmVnaXN0ZXJfdHlwZTxVW3ZhbHVlXSxJRD4gdGVzdCh2b2lkKCopKFUgY29uc3RbXSkpOworICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VCxJRD4gdGVzdCguLi4pOworICAgICAgICAgICAgICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVCh1bnNpZ25lZCxyZWdpc3Rlcl90ZXN0PXNpemVvZih0ZXN0KCAodm9pZCgqKShUKSkoTlVMTCkgKSApKTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfZXh0cmFjdF90eXBlPElEPjo6aWQydHlwZTo6dHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgICAgICAgICBzdHJ1Y3QgdHJhbnNmb3JtX3R5cGUgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTw+IC8vQ1YgQXJyYXkKKyAgICAgICAgc3RydWN0IHJlbW92ZV9jdl9pbXBsX3R5cGVvZjxmYWxzZSx0cnVlLHRydWUsdHJ1ZT4geworICAgICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCx0eXBlbmFtZSBJRD4KKyAgICAgICAgICAgIHN0cnVjdCBpbm5lciB7CisgICAgICAgICAgICAgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKHVuc2lnbmVkLHZhbHVlPShzaXplb2YoVCkvc2l6ZW9mKCgqKChUKilOVUxMKSlbMF0pKSk7CisKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VVt2YWx1ZV0sSUQ+IHRlc3Qodm9pZCgqKShVIGNvbnN0IHZvbGF0aWxlW10pKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFQsSUQ+IHRlc3QoLi4uKTsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQscmVnaXN0ZXJfdGVzdD1zaXplb2YodGVzdCggKHZvaWQoKikoVCkpKE5VTEwpICkgKSk7CisgICAgICAgICAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBtc3ZjX2V4dHJhY3RfdHlwZTxJRD46OmlkMnR5cGU6OnR5cGUgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgICAgICAgICAgc3RydWN0IHRyYW5zZm9ybV90eXBlIHsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIFQgdHlwZTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisKKyAgICB9IC8vbmFtZXNwYWNlIGRldGFpbAorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBzdHJ1Y3QgcmVtb3ZlX2N2IHsKKyAgICAgICAgdHlwZWRlZiBuZG5ib29zdDo6ZGV0YWlsOjpyZW1vdmVfY3ZfaW1wbF90eXBlb2Y8CisgICAgICAgICAgICBuZG5ib29zdDo6aXNfcG9pbnRlcjxUPjo6dmFsdWUsCisgICAgICAgICAgICBuZG5ib29zdDo6aXNfYXJyYXk8VD46OnZhbHVlLAorICAgICAgICAgICAgbmRuYm9vc3Q6OmlzX2NvbnN0PFQ+Ojp2YWx1ZSwKKyAgICAgICAgICAgIG5kbmJvb3N0Ojppc192b2xhdGlsZTxUPjo6dmFsdWUKKyAgICAgICAgPiByZW1vdmVfY3ZfdHlwZTsKKyAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSAKKyAgICAgICAgICAgIHJlbW92ZV9jdl90eXBlOjp0ZW1wbGF0ZSBpbm5lcjwKKyAgICAgICAgICAgICAgICB0eXBlbmFtZSByZW1vdmVfY3ZfdHlwZTo6dGVtcGxhdGUgdHJhbnNmb3JtX3R5cGU8VD46OnR5cGUsCisgICAgICAgICAgICAgICAgcmVtb3ZlX2N2PFQ+CisgICAgICAgICAgICA+Ojp0eXBlCisgICAgICAgIHR5cGU7CisgICAgICAgIEJPT1NUX01QTF9BVVhfTEFNQkRBX1NVUFBPUlQoMSxyZW1vdmVfY3YsVCkKKyAgICB9OworfS8vbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvL0JPT1NUX1RZUEVfVFJBSVRTX01TVkNfUkVNT1ZFX0NWX0hPTFRfMjAwNF8wOTAxCmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9yZWZlcmVuY2UuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfcmVmZXJlbmNlLmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNmM0YzJkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy9yZW1vdmVfcmVmZXJlbmNlLmhwcApAQCAtMCwwICsxLDQyIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMDQgUGVkZXIgSG9sdAorLy8gVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBpcyBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZQorLy8gTGljZW5zZSwgVmVyc2lvbiAxLjAuIChodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKyNpZm5kZWYgQk9PU1RfVFlQRV9UUkFJVFNfTVNWQ19SRU1PVkVfUkVGRVJFTkNFX0hPTFRfMjAwNF8wODI3CisjZGVmaW5lIEJPT1NUX1RZUEVfVFJBSVRTX01TVkNfUkVNT1ZFX1JFRkVSRU5DRV9IT0xUXzIwMDRfMDgyNworCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvbXN2Yy90eXBlb2YuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2lzX3JlZmVyZW5jZS5ocHA+CisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisgICAgbmFtZXNwYWNlIGRldGFpbCB7CisgICAgICAgIHRlbXBsYXRlPGJvb2wgSXNSZWZlcmVuY2U+CisgICAgICAgIHN0cnVjdCByZW1vdmVfcmVmZXJlbmNlX2ltcGxfdHlwZW9mIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsdHlwZW5hbWUgSUQ+CisgICAgICAgICAgICBzdHJ1Y3QgaW5uZXIgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgdGVtcGxhdGU8PgorICAgICAgICBzdHJ1Y3QgcmVtb3ZlX3JlZmVyZW5jZV9pbXBsX3R5cGVvZjx0cnVlPiB7CisgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULHR5cGVuYW1lIElEPgorICAgICAgICAgICAgc3RydWN0IGlubmVyIHsKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgICAgICAgICAgICAgIHN0YXRpYyBtc3ZjX3JlZ2lzdGVyX3R5cGU8VSxJRD4gdGVzdChVJigqKSgpKTsKKyAgICAgICAgICAgICAgICBzdGF0aWMgbXN2Y19yZWdpc3Rlcl90eXBlPFQsSUQ+IHRlc3QoLi4uKTsKKyAgICAgICAgICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQodW5zaWduZWQscmVnaXN0ZXJfdGVzdD1zaXplb2YodGVzdCggKFQoKikoKSkoTlVMTCkgKSApKTsKKyAgICAgICAgICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG1zdmNfZXh0cmFjdF90eXBlPElEPjo6aWQydHlwZTo6dHlwZSB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICB9IC8vbmFtZXNwYWNlIGRldGFpbAorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgc3RydWN0IHJlbW92ZV9yZWZlcmVuY2UgeworICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfaW1wbF90eXBlb2Y8CisgICAgICAgICAgICBuZG5ib29zdDo6aXNfcmVmZXJlbmNlPFQ+Ojp2YWx1ZQorICAgICAgICA+Ojp0ZW1wbGF0ZSBpbm5lcjxULHJlbW92ZV9yZWZlcmVuY2U8VD4gPjo6dHlwZSB0eXBlOworICAgICAgICBCT09TVF9NUExfQVVYX0xBTUJEQV9TVVBQT1JUKDEscmVtb3ZlX3JlZmVyZW5jZSxUKQorICAgIH07Cit9IC8vbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvL0JPT1NUX1RZUEVfVFJBSVRTX01TVkNfUkVNT1ZFX1JFRkVSRU5DRV9IT0xUXzIwMDRfMDgyNwpkaWZmIC0tZ2l0IGEvYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy90eXBlb2YuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvbXN2Yy90eXBlb2YuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyZjI0MDIKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9tc3ZjL3R5cGVvZi5ocHAKQEAgLTAsMCArMSw1MCBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDA0IFBlZGVyIEhvbHQKKy8vIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gaXMgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUKKy8vIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQorCisjaWZuZGVmIEJPT1NUX1RZUEVUUkFJVFNfTVNWQ19UWVBFT0ZfSFBQCisjZGVmaW5lIEJPT1NUX1RZUEVUUkFJVFNfTVNWQ19UWVBFT0ZfSFBQCisKKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorI2luY2x1ZGUgPGJvb3N0L2RldGFpbC93b3JrYXJvdW5kLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsgbmFtZXNwYWNlIGRldGFpbCB7CisjIGlmIEJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQyw9PTEzMDApCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIElEPgorICAgICAgICBzdHJ1Y3QgbXN2Y19leHRyYWN0X3R5cGUKKyAgICAgICAgeworICAgICAgICAgICAgdGVtcGxhdGU8Ym9vbD4KKyAgICAgICAgICAgIHN0cnVjdCBpZDJ0eXBlX2ltcGw7CisKKyAgICAgICAgICAgIHR5cGVkZWYgaWQydHlwZV9pbXBsPHRydWU+IGlkMnR5cGU7CisgICAgICAgIH07CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgSUQ+CisgICAgICAgIHN0cnVjdCBtc3ZjX3JlZ2lzdGVyX3R5cGUgOiBwdWJsaWMgbXN2Y19leHRyYWN0X3R5cGU8SUQ+CisgICAgICAgIHsKKyAgICAgICAgICAgIHRlbXBsYXRlPD4KKyAgICAgICAgICAgIHN0cnVjdCBpZDJ0eXBlX2ltcGw8dHJ1ZT4gIC8vVkM3LjAgc3BlY2lmaWMgYnVnZmVhdHVyZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyMgZWxzZSAKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSUQ+CisgICAgICAgIHN0cnVjdCBtc3ZjX2V4dHJhY3RfdHlwZQorICAgICAgICB7CisgICAgICAgICAgICBzdHJ1Y3QgaWQydHlwZTsKKyAgICAgICAgfTsKKworICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBJRD4KKyAgICAgICAgc3RydWN0IG1zdmNfcmVnaXN0ZXJfdHlwZSA6IHB1YmxpYyBtc3ZjX2V4dHJhY3RfdHlwZTxJRD4KKyAgICAgICAgeworICAgICAgICAgICAgdHlwZWRlZiBtc3ZjX2V4dHJhY3RfdHlwZTxJRD4gYmFzZV90eXBlOworICAgICAgICAgICAgc3RydWN0IGJhc2VfdHlwZTo6aWQydHlwZSAvLyBUaGlzIHVzZXMgbmljZSBWQzYuNSBhbmQgVkM3LjEgYnVnZmVhdHVyZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHR5cGVkZWYgVCB0eXBlOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyMgZW5kaWYKK319CisKKyNlbmRpZiAvL0JPT1NUX1RZUEVUUkFJVFNfTVNWQ19UWVBFT0ZfSU1QTF9IUFAKZGlmZiAtLWdpdCBhL2Jvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9ib3VuZHMuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2JvdW5kcy5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjllZTYyMwotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9ib3VuZHMuaHBwCkBAIC0wLDAgKzEsNDggQEAKKworLy8gIChDKSBDb3B5cmlnaHQgU3RldmUgQ2xlYXJ5LCBCZW1hbiBEYXdlcywgSG93YXJkIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4KKy8vICBVc2UsIG1vZGlmaWNhdGlvbiBhbmQgZGlzdHJpYnV0aW9uIGFyZSBzdWJqZWN0IHRvIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLAorLy8gIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZyBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0CisvLyAgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KS4KKy8vCisvLyAgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvdHlwZV90cmFpdHMgZm9yIG1vc3QgcmVjZW50IHZlcnNpb24gaW5jbHVkaW5nIGRvY3VtZW50YXRpb24uCisKKyNpZm5kZWYgQk9PU1RfVFRfUkVNT1ZFX0JPVU5EU19IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfUkVNT1ZFX0JPVU5EU19IUFBfSU5DTFVERUQKKworI2luY2x1ZGUgPGJvb3N0L2NvbmZpZy5ocHA+CisjaW5jbHVkZSA8Y3N0ZGRlZj4KKyNpbmNsdWRlIDxib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsPD0xMzAwKQorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX2JvdW5kcy5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcD4KKworI2lmICFCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsPD0xMzAwKQorCituYW1lc3BhY2UgbmRuYm9vc3QgeworCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9ERUYxKHJlbW92ZV9ib3VuZHMsVCxUKQorCisjaWYgIWRlZmluZWQoQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTikgJiYgIWRlZmluZWQoQk9PU1RfTk9fQVJSQVlfVFlQRV9TUEVDSUFMSVpBVElPTlMpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLHJlbW92ZV9ib3VuZHMsVFtOXSxUIHR5cGUpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLHJlbW92ZV9ib3VuZHMsVCBjb25zdFtOXSxUIGNvbnN0IHR5cGUpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLHJlbW92ZV9ib3VuZHMsVCB2b2xhdGlsZVtOXSxUIHZvbGF0aWxlIHR5cGUpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLHJlbW92ZV9ib3VuZHMsVCBjb25zdCB2b2xhdGlsZVtOXSxUIGNvbnN0IHZvbGF0aWxlIHR5cGUpCisjaWYgIUJPT1NUX1dPUktBUk9VTkQoX19CT1JMQU5EQ19fLCBCT09TVF9URVNURURfQVQoMHg2MTApKSAmJiAhZGVmaW5lZChfX0lCTUNQUF9fKSAmJiAgIUJPT1NUX1dPUktBUk9VTkQoX19ETUNfXywgQk9PU1RfVEVTVEVEX0FUKDB4ODQwKSkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV9ib3VuZHMsVFtdLFQpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxyZW1vdmVfYm91bmRzLFQgY29uc3RbXSxUIGNvbnN0KQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQscmVtb3ZlX2JvdW5kcyxUIHZvbGF0aWxlW10sVCB2b2xhdGlsZSkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV9ib3VuZHMsVCBjb25zdCB2b2xhdGlsZVtdLFQgY29uc3Qgdm9sYXRpbGUpCisjZW5kaWYKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBuZG5ib29zdAorCisjZW5kaWYKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX1JFTU9WRV9CT1VORFNfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfY3YuaHBwIGIvYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODdkMmIwCi0tLSAvZGV2L251bGwKKysrIGIvYm9vc3QvdHlwZV90cmFpdHMvcmVtb3ZlX2N2LmhwcApAQCAtMCwwICsxLDg0IEBACisKKy8vICAoQykgQ29weXJpZ2h0IERhdmUgQWJyYWhhbXMsIFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZAorLy8gIEhpbm5hbnQgJiBKb2huIE1hZGRvY2sgMjAwMC4gIAorLy8gIFVzZSwgbW9kaWZpY2F0aW9uIGFuZCBkaXN0cmlidXRpb24gYXJlIHN1YmplY3QgdG8gdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsCisvLyAgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vICBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpLgorLy8KKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy90eXBlX3RyYWl0cyBmb3IgbW9zdCByZWNlbnQgdmVyc2lvbiBpbmNsdWRpbmcgZG9jdW1lbnRhdGlvbi4KKworCisjaWZuZGVmIEJPT1NUX1RUX1JFTU9WRV9DVl9IUFBfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfUkVNT1ZFX0NWX0hQUF9JTkNMVURFRAorCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvYnJva2VuX2NvbXBpbGVyX3NwZWMuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC9jdl90cmFpdHNfaW1wbC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpbmNsdWRlIDxjc3RkZGVmPgorCisjaWYgQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLDw9MTMwMCkKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9tc3ZjL3JlbW92ZV9jdi5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK25hbWVzcGFjZSBkZXRhaWx7CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IHJ2YWx1ZV9yZWZfZmlsdGVyX3JlbV9jdgoreworICAgdHlwZWRlZiB0eXBlbmFtZSBuZG5ib29zdDo6ZGV0YWlsOjpjdl90cmFpdHNfaW1wPFQqPjo6dW5xdWFsaWZpZWRfdHlwZSB0eXBlOworfTsKKworI2lmbmRlZiBCT09TVF9OT19DWFgxMV9SVkFMVUVfUkVGRVJFTkNFUworLy8KKy8vIFdlIGNhbid0IGZpbHRlciBvdXQgcnZhbHVlX3JlZmVyZW5jZXMgYXQgdGhlIHNhbWUgbGV2ZWwgYXMKKy8vIHJlZmVyZW5jZXMgb3Igd2UgZ2V0IGFtYmlndWl0aWVzIGZyb20gbXN2YzoKKy8vCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBydmFsdWVfcmVmX2ZpbHRlcl9yZW1fY3Y8VCYmPgoreworICAgdHlwZWRlZiBUJiYgdHlwZTsKK307CisjZW5kaWYKKworfQorCisKKy8vICBjb252ZXJ0IGEgdHlwZSBUIHRvIGEgbm9uLWN2LXF1YWxpZmllZCB0eXBlIC0gcmVtb3ZlX2N2PFQ+CitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9ERUYxKHJlbW92ZV9jdixULHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnJ2YWx1ZV9yZWZfZmlsdGVyX3JlbV9jdjxUPjo6dHlwZSkKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMSh0eXBlbmFtZSBULHJlbW92ZV9jdixUJixUJikKKyNpZiAhZGVmaW5lZChCT09TVF9OT19BUlJBWV9UWVBFX1NQRUNJQUxJWkFUSU9OUykKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX1BBUlRJQUxfU1BFQzFfMih0eXBlbmFtZSBULHN0ZDo6c2l6ZV90IE4scmVtb3ZlX2N2LFQgY29uc3RbTl0sVCB0eXBlW05dKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8yKHR5cGVuYW1lIFQsc3RkOjpzaXplX3QgTixyZW1vdmVfY3YsVCB2b2xhdGlsZVtOXSxUIHR5cGVbTl0pCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzIodHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOLHJlbW92ZV9jdixUIGNvbnN0IHZvbGF0aWxlW05dLFQgdHlwZVtOXSkKKyNlbmRpZgorCisjZWxpZiAhQk9PU1RfV09SS0FST1VORChCT09TVF9NU1ZDLDw9MTMwMCkKKworbmFtZXNwYWNlIGRldGFpbCB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCByZW1vdmVfY3ZfaW1wbAoreworICAgIHR5cGVkZWYgdHlwZW5hbWUgcmVtb3ZlX3ZvbGF0aWxlX2ltcGw8IAorICAgICAgICAgIHR5cGVuYW1lIHJlbW92ZV9jb25zdF9pbXBsPFQ+Ojp0eXBlCisgICAgICAgID46OnR5cGUgdHlwZTsKK307Cit9CisKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0RFRjEocmVtb3ZlX2N2LFQsdHlwZW5hbWUgbmRuYm9vc3Q6OmRldGFpbDo6cmVtb3ZlX2N2X2ltcGw8VD46OnR5cGUpCisKKyNlbmRpZiAvLyBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvdHlwZV90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9SRU1PVkVfQ1ZfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfcmVmZXJlbmNlLmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL3JlbW92ZV9yZWZlcmVuY2UuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiOTkxZDUKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy9yZW1vdmVfcmVmZXJlbmNlLmhwcApAQCAtMCwwICsxLDcwIEBACisKKy8vICAoQykgQ29weXJpZ2h0IFN0ZXZlIENsZWFyeSwgQmVtYW4gRGF3ZXMsIEhvd2FyZCBIaW5uYW50ICYgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX1JFTU9WRV9SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisjZGVmaW5lIEJPT1NUX1RUX1JFTU9WRV9SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9icm9rZW5fY29tcGlsZXJfc3BlYy5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKyNpbmNsdWRlIDxib29zdC9kZXRhaWwvd29ya2Fyb3VuZC5ocHA+CisKKyNpZiBCT09TVF9XT1JLQVJPVU5EKEJPT1NUX01TVkMsPD0xMzAwKQorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL21zdmMvcmVtb3ZlX3JlZmVyZW5jZS5ocHA+CisjZW5kaWYKKworLy8gc2hvdWxkIGJlIHRoZSBsYXN0ICNpbmNsdWRlCisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvZGV0YWlsL3R5cGVfdHJhaXRfZGVmLmhwcD4KKworbmFtZXNwYWNlIG5kbmJvb3N0IHsKKworI2lmbmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCisKK25hbWVzcGFjZSBkZXRhaWx7CisvLworLy8gV2UgY2FuJ3QgZmlsdGVyIG91dCBydmFsdWVfcmVmZXJlbmNlcyBhdCB0aGUgc2FtZSBsZXZlbCBhcworLy8gcmVmZXJlbmNlcyBvciB3ZSBnZXQgYW1iaWd1aXRpZXMgZnJvbSBtc3ZjOgorLy8KK3RlbXBsYXRlIDxjbGFzcyBUPgorc3RydWN0IHJlbW92ZV9ydmFsdWVfcmVmCit7CisgICB0eXBlZGVmIFQgdHlwZTsKK307CisjaWZuZGVmIEJPT1NUX05PX0NYWDExX1JWQUxVRV9SRUZFUkVOQ0VTCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCByZW1vdmVfcnZhbHVlX3JlZjxUJiY+Cit7CisgICB0eXBlZGVmIFQgdHlwZTsKK307CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0RFRjEocmVtb3ZlX3JlZmVyZW5jZSxULHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnJlbW92ZV9ydmFsdWVfcmVmPFQ+Ojp0eXBlKQorQk9PU1RfVFRfQVVYX1RZUEVfVFJBSVRfUEFSVElBTF9TUEVDMV8xKHR5cGVuYW1lIFQscmVtb3ZlX3JlZmVyZW5jZSxUJixUKQorCisjaWYgZGVmaW5lZChCT09TVF9JTExFR0FMX0NWX1JFRkVSRU5DRVMpCisvLyB0aGVzZSBhcmUgaWxsZWdhbCBzcGVjaWFsaXNhdGlvbnM7IGN2LXF1YWxpZmllcyBhcHBsaWVkIHRvCisvLyByZWZlcmVuY2VzIGhhdmUgbm8gZWZmZWN0IGFjY29yZGluZyB0byBbOC4zLjJwMV0sCisvLyBDKysgQnVpbGRlciByZXF1aXJlcyB0aGVtIHRob3VnaCBhcyBpdCB0cmVhdHMgY3YtcXVhbGlmaWVkCisvLyByZWZlcmVuY2VzIGFzIGRpc3RpbmN0IHR5cGVzLi4uCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxyZW1vdmVfcmVmZXJlbmNlLFQmIGNvbnN0LFQpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxyZW1vdmVfcmVmZXJlbmNlLFQmIHZvbGF0aWxlLFQpCitCT09TVF9UVF9BVVhfVFlQRV9UUkFJVF9QQVJUSUFMX1NQRUMxXzEodHlwZW5hbWUgVCxyZW1vdmVfcmVmZXJlbmNlLFQmIGNvbnN0IHZvbGF0aWxlLFQpCisjZW5kaWYKKworI2VsaWYgIUJPT1NUX1dPUktBUk9VTkQoQk9PU1RfTVNWQyw8PTEzMDApCisKK0JPT1NUX1RUX0FVWF9UWVBFX1RSQUlUX0RFRjEocmVtb3ZlX3JlZmVyZW5jZSxULHR5cGVuYW1lIG5kbmJvb3N0OjpkZXRhaWw6OnJlbW92ZV9yZWZlcmVuY2VfaW1wbDxUPjo6dHlwZSkKKworI2VuZGlmIC8vIEJPT1NUX05PX1RFTVBMQVRFX1BBUlRJQUxfU1BFQ0lBTElaQVRJT04KKworfSAvLyBuYW1lc3BhY2UgbmRuYm9vc3QKKworI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2RldGFpbC90eXBlX3RyYWl0X3VuZGVmLmhwcD4KKworI2VuZGlmIC8vIEJPT1NUX1RUX1JFTU9WRV9SRUZFUkVOQ0VfSFBQX0lOQ0xVREVECmRpZmYgLS1naXQgYS9ib29zdC90eXBlX3RyYWl0cy90eXBlX3dpdGhfYWxpZ25tZW50LmhwcCBiL2Jvb3N0L3R5cGVfdHJhaXRzL3R5cGVfd2l0aF9hbGlnbm1lbnQuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjNDU0N2EKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC90eXBlX3RyYWl0cy90eXBlX3dpdGhfYWxpZ25tZW50LmhwcApAQCAtMCwwICsxLDM5OSBAQAorLy8gIChDKSBDb3B5cmlnaHQgSm9obiBNYWRkb2NrIDIwMDAuCisvLyAgVXNlLCBtb2RpZmljYXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBhcmUgc3ViamVjdCB0byB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwKKy8vICBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdAorLy8gIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkuCisvLworLy8gIFNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZy9saWJzL3R5cGVfdHJhaXRzIGZvciBtb3N0IHJlY2VudCB2ZXJzaW9uIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uLgorCisjaWZuZGVmIEJPT1NUX1RUX1RZUEVfV0lUSF9BTElHTk1FTlRfSU5DTFVERUQKKyNkZWZpbmUgQk9PU1RfVFRfVFlQRV9XSVRIX0FMSUdOTUVOVF9JTkNMVURFRAorCisjaW5jbHVkZSA8Ym9vc3QvbXBsL2lmLmhwcD4KKyNpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9mb3JfZWFjaF9pLmhwcD4KKyNpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvdHVwbGUvdG9fbGlzdC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2NhdC5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL2xpc3QvdHJhbnNmb3JtLmhwcD4KKyNpbmNsdWRlIDxib29zdC9wcmVwcm9jZXNzb3IvbGlzdC9hcHBlbmQuaHBwPgorI2luY2x1ZGUgPGJvb3N0L3R5cGVfdHJhaXRzL2FsaWdubWVudF9vZi5ocHA+CisjaW5jbHVkZSA8Ym9vc3QvdHlwZV90cmFpdHMvaXNfcG9kLmhwcD4KKyNpbmNsdWRlIDxib29zdC9zdGF0aWNfYXNzZXJ0LmhwcD4KKyNpbmNsdWRlIDxib29zdC9jb25maWcuaHBwPgorCisvLyBzaG91bGQgYmUgdGhlIGxhc3QgI2luY2x1ZGUKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF9kZWYuaHBwPgorCisjaW5jbHVkZSA8Y3N0ZGRlZj4KKworI2lmZGVmIEJPT1NUX01TVkMKKyMgICBwcmFnbWEgd2FybmluZyhwdXNoKQorIyAgIHByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQxMjEpIC8vIGFsaWdubWVudCBpcyBzZW5zaXRpdmUgdG8gcGFja2luZworI2VuZGlmCisKK25hbWVzcGFjZSBuZG5ib29zdCB7CisKKyNpZm5kZWYgX19CT1JMQU5EQ19fCisKK25hbWVzcGFjZSBkZXRhaWwgeworCitjbGFzcyBhbGlnbm1lbnRfZHVtbXk7Cit0eXBlZGVmIHZvaWQgKCpmdW5jdGlvbl9wdHIpKCk7Cit0eXBlZGVmIGludCAoYWxpZ25tZW50X2R1bW15OjoqbWVtYmVyX3B0cik7Cit0eXBlZGVmIGludCAoYWxpZ25tZW50X2R1bW15OjoqbWVtYmVyX2Z1bmN0aW9uX3B0cikoKTsKKworI2lmZGVmIEJPT1NUX0hBU19MT05HX0xPTkcKKyNkZWZpbmUgQk9PU1RfVFRfQUxJR05NRU5UX0JBU0VfVFlQRVMgQk9PU1RfUFBfVFVQTEVfVE9fTElTVCggXAorICAgICAgICAxMiwgKCBcCisgICAgICAgIGNoYXIsIHNob3J0LCBpbnQsIGxvbmcsICA6Om5kbmJvb3N0Ojpsb25nX2xvbmdfdHlwZSwgZmxvYXQsIGRvdWJsZSwgbG9uZyBkb3VibGUgXAorICAgICAgICAsIHZvaWQqLCBmdW5jdGlvbl9wdHIsIG1lbWJlcl9wdHIsIG1lbWJlcl9mdW5jdGlvbl9wdHIpKQorI2Vsc2UKKyNkZWZpbmUgQk9PU1RfVFRfQUxJR05NRU5UX0JBU0VfVFlQRVMgQk9PU1RfUFBfVFVQTEVfVE9fTElTVCggXAorICAgICAgICAxMSwgKCBcCisgICAgICAgIGNoYXIsIHNob3J0LCBpbnQsIGxvbmcsIGZsb2F0LCBkb3VibGUsIGxvbmcgZG91YmxlIFwKKyAgICAgICAgLCB2b2lkKiwgZnVuY3Rpb25fcHRyLCBtZW1iZXJfcHRyLCBtZW1iZXJfZnVuY3Rpb25fcHRyKSkKKyNlbmRpZgorCisjZGVmaW5lIEJPT1NUX1RUX0hBU19PTkVfVChELERhdGEsVCkgbmRuYm9vc3Q6OmRldGFpbDo6aGFzX29uZV9UPCBUID4KKworI2RlZmluZSBCT09TVF9UVF9BTElHTk1FTlRfU1RSVUNUX1RZUEVTICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQk9PU1RfUFBfTElTVF9UUkFOU0ZPUk0oQk9PU1RfVFRfSEFTX09ORV9ULCAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCT09TVF9UVF9BTElHTk1FTlRfQkFTRV9UWVBFUykKKworI2RlZmluZSBCT09TVF9UVF9BTElHTk1FTlRfVFlQRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgQk9PU1RfUFBfTElTVF9BUFBFTkQoQk9PU1RfVFRfQUxJR05NRU5UX0JBU0VfVFlQRVMsICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT1NUX1RUX0FMSUdOTUVOVF9TVFJVQ1RfVFlQRVMpCisKKy8vCisvLyBsb3dlcl9hbGlnbm1lbnRfaGVscGVyIC0tCisvLworLy8gVGhpcyB0ZW1wbGF0ZSBnZXRzIGluc3RhbnRpYXRlZCBhIGxvdCwgc28gdXNlIHBhcnRpYWwKKy8vIHNwZWNpYWxpemF0aW9uIHdoZW4gYXZhaWxhYmxlIHRvIHJlZHVjZSB0aGUgY29tcGlsZXIgYnVyZGVuLgorLy8KKyNpZmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCit0ZW1wbGF0ZSA8Ym9vbCBmb3VuZCA9IHRydWU+CitzdHJ1Y3QgbG93ZXJfYWxpZ25tZW50X2hlbHBlcl9pbXBsCit7CisgICAgdGVtcGxhdGUgPHN0ZDo6c2l6ZV90LCBjbGFzcz4KKyAgICBzdHJ1Y3QgYXBwbHkKKyAgICB7CisgICAgICAgIHR5cGVkZWYgY2hhciB0eXBlOworICAgICAgICBlbnVtIHsgdmFsdWUgPSB0cnVlIH07CisgICAgfTsKK307CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgbG93ZXJfYWxpZ25tZW50X2hlbHBlcl9pbXBsPGZhbHNlPgoreworICAgIHRlbXBsYXRlIDxzdGQ6OnNpemVfdCB0YXJnZXQsIGNsYXNzIFRlc3RUeXBlPgorICAgIHN0cnVjdCBhcHBseQorICAgICAgOiBwdWJsaWMgbXBsOjppZl9jPChhbGlnbm1lbnRfb2Y8VGVzdFR5cGU+Ojp2YWx1ZSA9PSB0YXJnZXQpLCBUZXN0VHlwZSwgY2hhcj4KKyAgICB7CisgICAgICAgIGVudW0geyB2YWx1ZSA9IChhbGlnbm1lbnRfb2Y8VGVzdFR5cGU+Ojp2YWx1ZSA9PSB0YXJnZXQpIH07CisgICAgfTsKK307CisKK3RlbXBsYXRlIDxib29sIGZvdW5kLCBzdGQ6OnNpemVfdCB0YXJnZXQsIGNsYXNzIFRlc3RUeXBlPgorc3RydWN0IGxvd2VyX2FsaWdubWVudF9oZWxwZXIKKyAgOiBwdWJsaWMgbG93ZXJfYWxpZ25tZW50X2hlbHBlcl9pbXBsPGZvdW5kPjo6dGVtcGxhdGUgYXBwbHk8dGFyZ2V0LFRlc3RUeXBlPgoreworfTsKKyNlbHNlCit0ZW1wbGF0ZSA8Ym9vbCBmb3VuZCwgc3RkOjpzaXplX3QgdGFyZ2V0LCBjbGFzcyBUZXN0VHlwZT4KK3N0cnVjdCBsb3dlcl9hbGlnbm1lbnRfaGVscGVyCit7CisgICAgdHlwZWRlZiBjaGFyIHR5cGU7CisgICAgZW51bSB7IHZhbHVlID0gdHJ1ZSB9OworfTsKKwordGVtcGxhdGUgPHN0ZDo6c2l6ZV90IHRhcmdldCwgY2xhc3MgVGVzdFR5cGU+CitzdHJ1Y3QgbG93ZXJfYWxpZ25tZW50X2hlbHBlcjxmYWxzZSx0YXJnZXQsVGVzdFR5cGU+Cit7CisgICAgZW51bSB7IHZhbHVlID0gKGFsaWdubWVudF9vZjxUZXN0VHlwZT46OnZhbHVlID09IHRhcmdldCkgfTsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIG1wbDo6aWZfYzx2YWx1ZSwgVGVzdFR5cGUsIGNoYXI+Ojp0eXBlIHR5cGU7Cit9OworI2VuZGlmCisKKyNkZWZpbmUgQk9PU1RfVFRfQ0hPT1NFX01JTl9BTElHTk1FTlQoUixQLEksVCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB0eXBlbmFtZSBsb3dlcl9hbGlnbm1lbnRfaGVscGVyPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgQk9PU1RfUFBfQ0FUKGZvdW5kLEkpLHRhcmdldCxUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgPjo6dHlwZSBCT09TVF9QUF9DQVQodCxJKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBlbnVtIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBCT09TVF9QUF9DQVQoZm91bmQsQk9PU1RfUFBfSU5DKEkpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgPSBsb3dlcl9hbGlnbm1lbnRfaGVscGVyPEJPT1NUX1BQX0NBVChmb3VuZCxJKSx0YXJnZXQsVCA+Ojp2YWx1ZSAgXAorICAgICAgICB9OworCisjZGVmaW5lIEJPT1NUX1RUX0NIT09TRV9UKFIsUCxJLFQpIFQgQk9PU1RfUFBfQ0FUKHQsSSk7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IGhhc19vbmVfVAoreworICBUIGRhdGE7Cit9OworCit0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgdGFyZ2V0PgordW5pb24gbG93ZXJfYWxpZ25tZW50Cit7CisgICAgZW51bSB7IGZvdW5kMCA9IGZhbHNlIH07CisKKyAgICBCT09TVF9QUF9MSVNUX0ZPUl9FQUNIX0koCisgICAgICAgICAgQk9PU1RfVFRfQ0hPT1NFX01JTl9BTElHTk1FTlQKKyAgICAgICAgLCBpZ25vcmVkCisgICAgICAgICwgQk9PU1RfVFRfQUxJR05NRU5UX1RZUEVTCisgICAgICAgICkKK307CisKK3VuaW9uIG1heF9hbGlnbgoreworICAgIEJPT1NUX1BQX0xJU1RfRk9SX0VBQ0hfSSgKKyAgICAgICAgICBCT09TVF9UVF9DSE9PU0VfVAorICAgICAgICAsIGlnbm9yZWQKKyAgICAgICAgLCBCT09TVF9UVF9BTElHTk1FTlRfVFlQRVMKKyAgICAgICAgKQorfTsKKworI3VuZGVmIEJPT1NUX1RUX0FMSUdOTUVOVF9CQVNFX1RZUEVTCisjdW5kZWYgQk9PU1RfVFRfSEFTX09ORV9UCisjdW5kZWYgQk9PU1RfVFRfQUxJR05NRU5UX1NUUlVDVF9UWVBFUworI3VuZGVmIEJPT1NUX1RUX0FMSUdOTUVOVF9UWVBFUworI3VuZGVmIEJPT1NUX1RUX0NIT09TRV9NSU5fQUxJR05NRU5UCisjdW5kZWYgQk9PU1RfVFRfQ0hPT1NFX1QKKwordGVtcGxhdGU8c3RkOjpzaXplX3QgVEFsaWduLCBzdGQ6OnNpemVfdCBBbGlnbj4KK3N0cnVjdCBpc19hbGlnbmVkCit7CisgICAgQk9PU1RfU1RBVElDX0NPTlNUQU5UKGJvb2wsCisgICAgICAgIHZhbHVlID0gKFRBbGlnbiA+PSBBbGlnbikgJiAoVEFsaWduICUgQWxpZ24gPT0gMCkKKyAgICAgICAgKTsKK307CisKKyNpZmRlZiBCT09TVF9OT19URU1QTEFURV9QQVJUSUFMX1NQRUNJQUxJWkFUSU9OCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjpkZXRhaWw6Om1heF9hbGlnbix0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19wb2QsOjpuZG5ib29zdDo6ZGV0YWlsOjpsb3dlcl9hbGlnbm1lbnQ8MT4gLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjpkZXRhaWw6Omxvd2VyX2FsaWdubWVudDwyPiAsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmRldGFpbDo6bG93ZXJfYWxpZ25tZW50PDQ+ICx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19wb2QsOjpuZG5ib29zdDo6ZGV0YWlsOjpsb3dlcl9hbGlnbm1lbnQ8OD4gLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjpkZXRhaWw6Omxvd2VyX2FsaWdubWVudDwxMD4gLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjpkZXRhaWw6Omxvd2VyX2FsaWdubWVudDwxNj4gLHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjpkZXRhaWw6Omxvd2VyX2FsaWdubWVudDwzMj4gLHRydWUpCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKKyNpZm5kZWYgQk9PU1RfTk9fVEVNUExBVEVfUEFSVElBTF9TUEVDSUFMSVpBVElPTgordGVtcGxhdGU8c3RkOjpzaXplX3QgQWxpZ24+CitzdHJ1Y3QgaXNfcG9kPCA6Om5kbmJvb3N0OjpkZXRhaWw6Omxvd2VyX2FsaWdubWVudDxBbGlnbj4gPgoreworICAgICAgICBCT09TVF9TVEFUSUNfQ09OU1RBTlQoc3RkOjpzaXplX3QsIHZhbHVlID0gdHJ1ZSk7Cit9OworI2VuZGlmCisKKy8vIFRoaXMgYWxpZ25tZW50IG1ldGhvZCBvcmlnaW5hbGx5IGR1ZSB0byBCcmlhbiBQYXJrZXIsIGltcGxlbWVudGVkIGJ5IERhdmlkCisvLyBBYnJhaGFtcywgYW5kIHRoZW4gcG9ydGVkIGhlcmUgYnkgRG91ZyBHcmVnb3IuCituYW1lc3BhY2UgZGV0YWlseworCit0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgQWxpZ24+CitjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50X2ltcAoreworICAgIHR5cGVkZWYgOjpuZG5ib29zdDo6ZGV0YWlsOjpsb3dlcl9hbGlnbm1lbnQ8QWxpZ24+IHQxOworICAgIHR5cGVkZWYgdHlwZW5hbWUgbXBsOjppZl9jPAorICAgICAgICAgIDo6bmRuYm9vc3Q6OmRldGFpbDo6aXNfYWxpZ25lZDwgOjpuZG5ib29zdDo6YWxpZ25tZW50X29mPHQxPjo6dmFsdWUsQWxpZ24gPjo6dmFsdWUKKyAgICAgICAgLCB0MQorICAgICAgICAsIDo6bmRuYm9vc3Q6OmRldGFpbDo6bWF4X2FsaWduCisgICAgICAgID46OnR5cGUgYWxpZ25fdDsKKworICAgIEJPT1NUX1NUQVRJQ19DT05TVEFOVChzdGQ6OnNpemVfdCwgZm91bmQgPSBhbGlnbm1lbnRfb2Y8YWxpZ25fdD46OnZhbHVlKTsKKworICAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoZm91bmQgPj0gQWxpZ24pOworICAgIEJPT1NUX1NUQVRJQ19BU1NFUlQoZm91bmQgJSBBbGlnbiA9PSAwKTsKKworIHB1YmxpYzoKKyAgICB0eXBlZGVmIGFsaWduX3QgdHlwZTsKK307CisKK30KKwordGVtcGxhdGUgPHN0ZDo6c2l6ZV90IEFsaWduPgorY2xhc3MgdHlwZV93aXRoX2FsaWdubWVudCAKKyAgOiBwdWJsaWMgOjpuZG5ib29zdDo6ZGV0YWlsOjp0eXBlX3dpdGhfYWxpZ25tZW50X2ltcDxBbGlnbj4KK3sKK307CisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorbmFtZXNwYWNlIGFsaWduIHsKK3N0cnVjdCBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygyKSkpIGEyIHt9Oworc3RydWN0IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDQpKSkgYTQge307CitzdHJ1Y3QgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oOCkpKSBhOCB7fTsKK3N0cnVjdCBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKSBhMTYge307CitzdHJ1Y3QgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMzIpKSkgYTMyIHt9Oworc3RydWN0IF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDY0KSkpIGE2NCB7fTsKK3N0cnVjdCBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxMjgpKSkgYTEyOCB7fTsKK30KKwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDE+ICB7IHB1YmxpYzogdHlwZWRlZiBjaGFyIHR5cGU7IH07Cit0ZW1wbGF0ZTw+IGNsYXNzIHR5cGVfd2l0aF9hbGlnbm1lbnQ8Mj4gIHsgcHVibGljOiB0eXBlZGVmIGFsaWduOjphMiB0eXBlOyB9OwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDQ+ICB7IHB1YmxpYzogdHlwZWRlZiBhbGlnbjo6YTQgdHlwZTsgfTsKK3RlbXBsYXRlPD4gY2xhc3MgdHlwZV93aXRoX2FsaWdubWVudDw4PiAgeyBwdWJsaWM6IHR5cGVkZWYgYWxpZ246OmE4IHR5cGU7IH07Cit0ZW1wbGF0ZTw+IGNsYXNzIHR5cGVfd2l0aF9hbGlnbm1lbnQ8MTY+IHsgcHVibGljOiB0eXBlZGVmIGFsaWduOjphMTYgdHlwZTsgfTsKK3RlbXBsYXRlPD4gY2xhc3MgdHlwZV93aXRoX2FsaWdubWVudDwzMj4geyBwdWJsaWM6IHR5cGVkZWYgYWxpZ246OmEzMiB0eXBlOyB9OwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDY0PiB7IHB1YmxpYzogdHlwZWRlZiBhbGlnbjo6YTY0IHR5cGU7IH07Cit0ZW1wbGF0ZTw+IGNsYXNzIHR5cGVfd2l0aF9hbGlnbm1lbnQ8MTI4PiB7IHB1YmxpYzogdHlwZWRlZiBhbGlnbjo6YTEyOCB0eXBlOyB9OworCituYW1lc3BhY2UgZGV0YWlsIHsKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMix0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19wb2QsOjpuZG5ib29zdDo6YWxpZ246OmE0LHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjphbGlnbjo6YTgsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMTYsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMzIsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphNjQsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMTI4LHRydWUpCit9CisjZW5kaWYKKyNpZiAoZGVmaW5lZChCT09TVF9NU1ZDKSB8fCAoZGVmaW5lZChCT09TVF9JTlRFTCkgJiYgZGVmaW5lZChfTVNDX1ZFUikpKSAmJiBfTVNDX1ZFUiA+PSAxMzAwCisvLworLy8gTVNWQyBzdXBwb3J0cyB0eXBlcyB3aGljaCBoYXZlIGFsaWdubWVudHMgZ3JlYXRlciB0aGFuIHRoZSBub3JtYWwKKy8vIG1heGltdW06IHRoZXNlIGFyZSB1c2VkIGZvciBleGFtcGxlIGluIHRoZSB0eXBlcyBfX202NCBhbmQgX19tMTI4CisvLyB0byBwcm92aWRlIHR5cGVzIHdpdGggYWxpZ25tZW50IHJlcXVpcmVtZW50cyB3aGljaCBtYXRjaCB0aGUgU1NFCisvLyByZWdpc3RlcnMuICBUaGVyZWZvcmUgd2UgZXh0ZW5kIHR5cGVfd2l0aF9hbGlnbm1lbnQ8PiB0byBzdXBwb3J0CisvLyBzdWNoIHR5cGVzLCBob3dldmVyLCB3ZSBoYXZlIHRvIGJlIGNhcmVmdWwgdG8gdXNlIGEgYnVpbHRpbiB0eXBlCisvLyB3aGVuZXZlciBwb3NzaWJsZSBvdGhlcndpc2Ugd2UgYnJlYWsgcHJldmlvdXNseSB3b3JraW5nIGNvZGU6CisvLyBzZWUgaHR0cDovL2FydGljbGUuZ21hbmUub3JnL2dtYW5lLmNvbXAubGliLmJvb3N0LmRldmVsLzE3MzAxMQorLy8gZm9yIGFuIGV4YW1wbGUgYW5kIHRlc3QgY2FzZS4gIFRodXMgdHlwZXMgbGlrZSBhOCBiZWxvdyB3aWxsCisvLyBiZSB1c2VkICpvbmx5KiBpZiB0aGUgZXhpc3RpbmcgaW1wbGVtZW50YXRpb24gY2FuJ3QgcHJvdmlkZSBhIHR5cGUKKy8vIHdpdGggc3VpdGFibGUgYWxpZ25tZW50LiAgVGhpcyBkb2VzIG1lYW4gaG93ZXZlciwgdGhhdCB0eXBlX3dpdGhfYWxpZ25tZW50PD4KKy8vIG1heSByZXR1cm4gYSB0eXBlIHdoaWNoIGNhbm5vdCBiZSBwYXNzZWQgdGhyb3VnaCBhIGZ1bmN0aW9uIGNhbGwKKy8vIGJ5IHZhbHVlIChhbmQgbmVpdGhlciBjYW4gYW55IHR5cGUgY29udGFpbmluZyBzdWNoIGEgdHlwZSBsaWtlCisvLyBCb29zdC5PcHRpb25hbCkuICBIb3dldmVyLCB0aGlzIG9ubHkgaGFwcGVucyB3aGVuIHdlIGhhdmUgbm8gY2hvaWNlIAorLy8gaW4gdGhlIG1hdHRlciBiZWNhdXNlIG5vIG90aGVyICJvcmRpbmFyeSIgdHlwZSBpcyBhdmFpbGFibGUuCisvLworbmFtZXNwYWNlIGFsaWduIHsKK3N0cnVjdCBfX2RlY2xzcGVjKGFsaWduKDgpKSBhOCB7IAorICAgY2hhciBtWzhdOyAKKyAgIHR5cGVkZWYgYTggdHlwZTsKK307CitzdHJ1Y3QgX19kZWNsc3BlYyhhbGlnbigxNikpIGExNiB7IAorICAgY2hhciBtWzE2XTsgCisgICB0eXBlZGVmIGExNiB0eXBlOworfTsKK3N0cnVjdCBfX2RlY2xzcGVjKGFsaWduKDMyKSkgYTMyIHsgCisgICBjaGFyIG1bMzJdOyAKKyAgIHR5cGVkZWYgYTMyIHR5cGU7Cit9Oworc3RydWN0IF9fZGVjbHNwZWMoYWxpZ24oNjQpKSBhNjQgCit7IAorICAgY2hhciBtWzY0XTsgCisgICB0eXBlZGVmIGE2NCB0eXBlOworfTsKK3N0cnVjdCBfX2RlY2xzcGVjKGFsaWduKDEyOCkpIGExMjggeyAKKyAgIGNoYXIgbVsxMjhdOyAKKyAgIHR5cGVkZWYgYTEyOCB0eXBlOworfTsKK30KKwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDg+ICAKK3sgCisgICB0eXBlZGVmIG1wbDo6aWZfYzwKKyAgICAgIDo6bmRuYm9vc3Q6OmFsaWdubWVudF9vZjxuZG5ib29zdDo6ZGV0YWlsOjptYXhfYWxpZ24+Ojp2YWx1ZSA8IDgsCisgICAgICBhbGlnbjo6YTgsCisgICAgICBuZG5ib29zdDo6ZGV0YWlsOjp0eXBlX3dpdGhfYWxpZ25tZW50X2ltcDw4PiA+Ojp0eXBlIHQxOyAKK3B1YmxpYzogCisgICB0eXBlZGVmIHQxOjp0eXBlIHR5cGU7Cit9OwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDE2PiAKK3sgCisgICB0eXBlZGVmIG1wbDo6aWZfYzwKKyAgICAgIDo6bmRuYm9vc3Q6OmFsaWdubWVudF9vZjxuZG5ib29zdDo6ZGV0YWlsOjptYXhfYWxpZ24+Ojp2YWx1ZSA8IDE2LAorICAgICAgYWxpZ246OmExNiwKKyAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnR5cGVfd2l0aF9hbGlnbm1lbnRfaW1wPDE2PiA+Ojp0eXBlIHQxOyAKK3B1YmxpYzogCisgICB0eXBlZGVmIHQxOjp0eXBlIHR5cGU7Cit9OwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDMyPiAKK3sgCisgICB0eXBlZGVmIG1wbDo6aWZfYzwKKyAgICAgIDo6bmRuYm9vc3Q6OmFsaWdubWVudF9vZjxuZG5ib29zdDo6ZGV0YWlsOjptYXhfYWxpZ24+Ojp2YWx1ZSA8IDMyLAorICAgICAgYWxpZ246OmEzMiwKKyAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnR5cGVfd2l0aF9hbGlnbm1lbnRfaW1wPDMyPiA+Ojp0eXBlIHQxOyAKK3B1YmxpYzogCisgICB0eXBlZGVmIHQxOjp0eXBlIHR5cGU7Cit9OwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDY0PiB7CisgICB0eXBlZGVmIG1wbDo6aWZfYzwKKyAgICAgIDo6bmRuYm9vc3Q6OmFsaWdubWVudF9vZjxuZG5ib29zdDo6ZGV0YWlsOjptYXhfYWxpZ24+Ojp2YWx1ZSA8IDY0LAorICAgICAgYWxpZ246OmE2NCwKKyAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnR5cGVfd2l0aF9hbGlnbm1lbnRfaW1wPDY0PiA+Ojp0eXBlIHQxOyAKK3B1YmxpYzogCisgICB0eXBlZGVmIHQxOjp0eXBlIHR5cGU7Cit9OwordGVtcGxhdGU8PiBjbGFzcyB0eXBlX3dpdGhfYWxpZ25tZW50PDEyOD4geworICAgdHlwZWRlZiBtcGw6OmlmX2M8CisgICAgICA6Om5kbmJvb3N0OjphbGlnbm1lbnRfb2Y8bmRuYm9vc3Q6OmRldGFpbDo6bWF4X2FsaWduPjo6dmFsdWUgPCAxMjgsCisgICAgICBhbGlnbjo6YTEyOCwKKyAgICAgIG5kbmJvb3N0OjpkZXRhaWw6OnR5cGVfd2l0aF9hbGlnbm1lbnRfaW1wPDEyOD4gPjo6dHlwZSB0MTsgCitwdWJsaWM6IAorICAgdHlwZWRlZiB0MTo6dHlwZSB0eXBlOworfTsKKworbmFtZXNwYWNlIGRldGFpbCB7CitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjphbGlnbjo6YTgsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMTYsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMzIsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphNjQsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphMTI4LHRydWUpCit9CisjZW5kaWYKKworI2Vsc2UKKworLy8KKy8vIEJvcmxhbmQgc3BlY2lmaWMgdmVyc2lvbiwgd2UgaGF2ZSB0aGlzIGZvciB0d28gcmVhc29uczoKKy8vIDEpIFRoZSB2ZXJzaW9uIGFib3ZlIGRvZXNuJ3QgYWx3YXlzIGNvbXBpbGUgKHdpdGggdGhlIG5ldyB0ZXN0IGNhc2VzIGZvciBleGFtcGxlKQorLy8gMikgQmVjYXVzZSBvZiBCb3JsYW5kcyAjcHJhZ21hIG9wdGlvbiB3ZSBjYW4gY3JlYXRlIHR5cGVzIHdpdGggYWxpZ25tZW50cyB0aGF0IGFyZQorLy8gICAgZ3JlYXRlciB0aGF0IHRoZSBsYXJnZXN0IGFsaWduZWQgYnVpbHRpbiB0eXBlLgorCituYW1lc3BhY2UgYWxpZ257CisjcHJhZ21hIG9wdGlvbiBwdXNoIC1hMTYKK3N0cnVjdCBhMnsgc2hvcnQgczsgfTsKK3N0cnVjdCBhNHsgaW50IHM7IH07CitzdHJ1Y3QgYTh7IGRvdWJsZSBzOyB9Oworc3RydWN0IGExNnsgbG9uZyBkb3VibGUgczsgfTsKKyNwcmFnbWEgb3B0aW9uIHBvcAorfQorCituYW1lc3BhY2UgZGV0YWlsIHsKKwordHlwZWRlZiA6Om5kbmJvb3N0OjphbGlnbjo6YTE2IG1heF9hbGlnbjsKKworLy8jaWYgISBCT09TVF9XT1JLQVJPVU5EKF9fQ09ERUdFQVJDX18sIEJPT1NUX1RFU1RFRF9BVCgweDYxMCkpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjphbGlnbjo6YTIsdHJ1ZSkKK0JPT1NUX1RUX0FVWF9CT09MX1RSQUlUX0lNUExfU1BFQzEoaXNfcG9kLDo6bmRuYm9vc3Q6OmFsaWduOjphNCx0cnVlKQorQk9PU1RfVFRfQVVYX0JPT0xfVFJBSVRfSU1QTF9TUEVDMShpc19wb2QsOjpuZG5ib29zdDo6YWxpZ246OmE4LHRydWUpCitCT09TVF9UVF9BVVhfQk9PTF9UUkFJVF9JTVBMX1NQRUMxKGlzX3BvZCw6Om5kbmJvb3N0OjphbGlnbjo6YTE2LHRydWUpCisvLyNlbmRpZgorfQorCit0ZW1wbGF0ZSA8c3RkOjpzaXplX3QgTj4gc3RydWN0IHR5cGVfd2l0aF9hbGlnbm1lbnQKK3sKKyAgIC8vIFdlIHNob3VsZCBuZXZlciBnZXQgdG8gaGVyZSwgYnV0IGlmIHdlIGRvIHVzZSB0aGUgbWF4aW1hbGx5CisgICAvLyBhbGlnbmVkIHR5cGU6CisgICAvLyBCT09TVF9TVEFUSUNfQVNTRVJUKDApOworICAgdHlwZWRlZiBhbGlnbjo6YTE2IHR5cGU7Cit9OwordGVtcGxhdGUgPD4gc3RydWN0IHR5cGVfd2l0aF9hbGlnbm1lbnQ8MT57IHR5cGVkZWYgY2hhciB0eXBlOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IHR5cGVfd2l0aF9hbGlnbm1lbnQ8Mj57IHR5cGVkZWYgYWxpZ246OmEyIHR5cGU7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgdHlwZV93aXRoX2FsaWdubWVudDw0PnsgdHlwZWRlZiBhbGlnbjo6YTQgdHlwZTsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCB0eXBlX3dpdGhfYWxpZ25tZW50PDg+eyB0eXBlZGVmIGFsaWduOjphOCB0eXBlOyB9OwordGVtcGxhdGUgPD4gc3RydWN0IHR5cGVfd2l0aF9hbGlnbm1lbnQ8MTY+eyB0eXBlZGVmIGFsaWduOjphMTYgdHlwZTsgfTsKKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNpZmRlZiBCT09TVF9NU1ZDCisjICAgcHJhZ21hIHdhcm5pbmcocG9wKQorI2VuZGlmCisKKyNpbmNsdWRlIDxib29zdC90eXBlX3RyYWl0cy9kZXRhaWwvYm9vbF90cmFpdF91bmRlZi5ocHA+CisKKyNlbmRpZiAvLyBCT09TVF9UVF9UWVBFX1dJVEhfQUxJR05NRU5UX0lOQ0xVREVECisKKwpkaWZmIC0tZ2l0IGEvYm9vc3QvdXRpbGl0eS9hZGRyZXNzb2YuaHBwIGIvYm9vc3QvdXRpbGl0eS9hZGRyZXNzb2YuaHBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlY2Y3MzEKLS0tIC9kZXYvbnVsbAorKysgYi9ib29zdC91dGlsaXR5L2FkZHJlc3NvZi5ocHAKQEAgLTAsMCArMSwxMDIgQEAKKy8vIENvcHlyaWdodCAoQykgMjAwMiBCcmFkIEtpbmcgKGJyYWQua2luZ0BraXR3YXJlLmNvbSkgCisvLyAgICAgICAgICAgICAgICAgICAgRG91Z2xhcyBHcmVnb3IgKGdyZWdvZEBjcy5ycGkuZWR1KQorLy8KKy8vIENvcHlyaWdodCAoQykgMjAwMiwgMjAwOCBQZXRlciBEaW1vdgorLy8KKy8vIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZQorLy8gYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yIGNvcHkgYXQKKy8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkKKworLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwOi8vd3d3LmJvb3N0Lm9yZworCisjaWZuZGVmIEJPT1NUX1VUSUxJVFlfQUREUkVTU09GX0hQUAorIyBkZWZpbmUgQk9PU1RfVVRJTElUWV9BRERSRVNTT0ZfSFBQCisKKyMgaW5jbHVkZSA8Ym9vc3QvY29uZmlnLmhwcD4KKyMgaW5jbHVkZSA8Ym9vc3QvZGV0YWlsL3dvcmthcm91bmQuaHBwPgorCituYW1lc3BhY2UgbmRuYm9vc3QKK3sKKworbmFtZXNwYWNlIGRldGFpbAoreworCit0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgYWRkcl9pbXBsX3JlZgoreworICAgIFQgJiB2XzsKKworICAgIGlubGluZSBhZGRyX2ltcGxfcmVmKCBUICYgdiApOiB2XyggdiApIHt9CisgICAgaW5saW5lIG9wZXJhdG9yIFQmICgpIGNvbnN0IHsgcmV0dXJuIHZfOyB9CisKK3ByaXZhdGU6CisgICAgYWRkcl9pbXBsX3JlZiAmIG9wZXJhdG9yPShjb25zdCBhZGRyX2ltcGxfcmVmICYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgVD4gc3RydWN0IGFkZHJlc3NvZl9pbXBsCit7CisgICAgc3RhdGljIGlubGluZSBUICogZiggVCAmIHYsIGxvbmcgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VCo+KAorICAgICAgICAgICAgJmNvbnN0X2Nhc3Q8Y2hhciY+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9sYXRpbGUgY2hhciAmPih2KSkpOworICAgIH0KKworICAgIHN0YXRpYyBpbmxpbmUgVCAqIGYoIFQgKiB2LCBpbnQgKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK3RlbXBsYXRlPGNsYXNzIFQ+IFQgKiBhZGRyZXNzb2YoIFQgJiB2ICkKK3sKKyNpZiBkZWZpbmVkKCBfX0JPUkxBTkRDX18gKSAmJiBCT09TVF9XT1JLQVJPVU5EKCBfX0JPUkxBTkRDX18sIEJPT1NUX1RFU1RFRF9BVCggMHg2MTAgKSApCisKKyAgICByZXR1cm4gbmRuYm9vc3Q6OmRldGFpbDo6YWRkcmVzc29mX2ltcGw8VD46OmYoIHYsIDAgKTsKKworI2Vsc2UKKworICAgIHJldHVybiBuZG5ib29zdDo6ZGV0YWlsOjphZGRyZXNzb2ZfaW1wbDxUPjo6ZiggbmRuYm9vc3Q6OmRldGFpbDo6YWRkcl9pbXBsX3JlZjxUPiggdiApLCAwICk7CisKKyNlbmRpZgorfQorCisjaWYgZGVmaW5lZCggX19TVU5QUk9fQ0MgKSAmJiBCT09TVF9XT1JLQVJPVU5EKCBfX1NVTlBST19DQywgQk9PU1RfVEVTVEVEX0FUKCAweDU5MCApICkKKworbmFtZXNwYWNlIGRldGFpbAoreworCit0ZW1wbGF0ZTxjbGFzcyBUPiBzdHJ1Y3QgYWRkcmVzc29mX2FkZHAKK3sKKyAgICB0eXBlZGVmIFQgKiB0eXBlOworfTsKKworfSAvLyBuYW1lc3BhY2UgZGV0YWlsCisKK3RlbXBsYXRlPCBjbGFzcyBULCBzdGQ6OnNpemVfdCBOID4KK3R5cGVuYW1lIGRldGFpbDo6YWRkcmVzc29mX2FkZHA8IFRbTl0gPjo6dHlwZSBhZGRyZXNzb2YoIFQgKCZ0KVtOXSApCit7CisgICAgcmV0dXJuICZ0OworfQorCisjZW5kaWYKKworLy8gQm9ybGFuZCBkb2Vzbid0IGxpa2UgY2FzdGluZyBhbiBhcnJheSByZWZlcmVuY2UgdG8gYSBjaGFyIHJlZmVyZW5jZQorLy8gYnV0IHRoZXNlIG92ZXJsb2FkcyB3b3JrIGFyb3VuZCB0aGUgcHJvYmxlbS4KKyNpZiBkZWZpbmVkKCBfX0JPUkxBTkRDX18gKSAmJiBCT09TVF9XT1JLQVJPVU5EKF9fQk9STEFORENfXywgQk9PU1RfVEVTVEVEX0FUKDB4NTY0KSkKK3RlbXBsYXRlPHR5cGVuYW1lIFQsc3RkOjpzaXplX3QgTj4KK1QgKCphZGRyZXNzb2YoVCAoJnQpW05dKSlbTl0KK3sKKyAgIHJldHVybiByZWludGVycHJldF9jYXN0PFQoKilbTl0+KCZ0KTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVCxzdGQ6OnNpemVfdCBOPgorY29uc3QgVCAoKmFkZHJlc3NvZihjb25zdCBUICgmdClbTl0pKVtOXQoreworICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVCgqKVtOXT4oJnQpOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIG5kbmJvb3N0CisKKyNlbmRpZiAvLyBCT09TVF9VVElMSVRZX0FERFJFU1NPRl9IUFAKZGlmZiAtLWdpdCBhL2Jvb3N0L3ZlcnNpb24uaHBwIGIvYm9vc3QvdmVyc2lvbi5ocHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg1ZWQxMgotLS0gL2Rldi9udWxsCisrKyBiL2Jvb3N0L3ZlcnNpb24uaHBwCkBAIC0wLDAgKzEsMzIgQEAKKy8vICBCb29zdCB2ZXJzaW9uLmhwcCBjb25maWd1cmF0aW9uIGhlYWRlciBmaWxlICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLworCisvLyAgKEMpIENvcHlyaWdodCBKb2huIG1hZGRvY2sgMTk5OS4gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0CisvLyAgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuIChTZWUgYWNjb21wYW55aW5nIGZpbGUKKy8vICBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCisKKy8vICBTZWUgaHR0cDovL3d3dy5ib29zdC5vcmcvbGlicy9jb25maWcgZm9yIGRvY3VtZW50YXRpb24KKworI2lmbmRlZiBCT09TVF9WRVJTSU9OX0hQUAorI2RlZmluZSBCT09TVF9WRVJTSU9OX0hQUAorCisvLworLy8gIENhdXRpb24sIHRoaXMgaXMgdGhlIG9ubHkgYm9vc3QgaGVhZGVyIHRoYXQgaXMgZ3VhcmVudGVlZAorLy8gIHRvIGNoYW5nZSB3aXRoIGV2ZXJ5IGJvb3N0IHJlbGVhc2UsIGluY2x1ZGluZyB0aGlzIGhlYWRlcgorLy8gIHdpbGwgY2F1c2UgYSByZWNvbXBpbGUgZXZlcnkgdGltZSBhIG5ldyBib29zdCB2ZXJzaW9uIGlzCisvLyAgcmVsZWFzZWQuCisvLworLy8gIEJPT1NUX1ZFUlNJT04gJSAxMDAgaXMgdGhlIHBhdGNoIGxldmVsCisvLyAgQk9PU1RfVkVSU0lPTiAvIDEwMCAlIDEwMDAgaXMgdGhlIG1pbm9yIHZlcnNpb24KKy8vICBCT09TVF9WRVJTSU9OIC8gMTAwMDAwIGlzIHRoZSBtYWpvciB2ZXJzaW9uCisKKyNkZWZpbmUgQk9PU1RfVkVSU0lPTiAxMDUzMDAKKworLy8KKy8vICBCT09TVF9MSUJfVkVSU0lPTiBtdXN0IGJlIGRlZmluZWQgdG8gYmUgdGhlIHNhbWUgYXMgQk9PU1RfVkVSU0lPTgorLy8gIGJ1dCBhcyBhICpzdHJpbmcqIGluIHRoZSBmb3JtICJ4X3lbX3pdIiB3aGVyZSB4IGlzIHRoZSBtYWpvciB2ZXJzaW9uCisvLyAgbnVtYmVyLCB5IGlzIHRoZSBtaW5vciB2ZXJzaW9uIG51bWJlciwgYW5kIHogaXMgdGhlIHBhdGNoIGxldmVsIGlmIG5vdCAwLgorLy8gIFRoaXMgaXMgdXNlZCBieSA8Y29uZmlnL2F1dG9fbGluay5ocHA+IHRvIHNlbGVjdCB3aGljaCBsaWJyYXJ5IHZlcnNpb24gdG8gbGluayB0by4KKworI2RlZmluZSBCT09TVF9MSUJfVkVSU0lPTiAiMV81MyIKKworI2VuZGlmCmRpZmYgLS1naXQgYS9uZG4tY3BwL2NvbW1vbi5ocHAgYi9uZG4tY3BwL2NvbW1vbi5ocHAKaW5kZXggZjc2M2Q1NS4uYjBmM2ZiZiAxMDA2NDQKLS0tIGEvbmRuLWNwcC9jb21tb24uaHBwCisrKyBiL25kbi1jcHAvY29tbW9uLmhwcApAQCAtMTAsNyArMTAsNyBAQAogI2luY2x1ZGUgIi4uL2NvbmZpZy5oIgogCiAvLyBEZXBlbmRpbmcgb24gd2hlcmUgLi9jb25maWd1cmUgZm91bmQgc2hhcmVkX3B0ciwgZGVmaW5lIHRoZSBwdHJfbGliIG5hbWVzcGFjZS4KLS8vIFdlIGFsd2F5cyB1c2UgbmRuOjpwdHJfbGliOjpzaGFyZWRfcHRyLgorLy8gV2UgYWx3YXlzIHVzZSBuZG46OnB0cl9saWIuCiAjaWYgSEFWRV9TVERfU0hBUkVEX1BUUgogI2luY2x1ZGUgPG1lbW9yeT4KIG5hbWVzcGFjZSBuZG4geyBuYW1lc3BhY2UgcHRyX2xpYiA9IHN0ZDsgfQpAQCAtMTksNyArMTksMTMgQEAKICNpbmNsdWRlIDxib29zdC9tYWtlX3NoYXJlZC5ocHA+CiBuYW1lc3BhY2UgbmRuIHsgbmFtZXNwYWNlIHB0cl9saWIgPSBib29zdDsgfQogI2Vsc2UKLSNlcnJvciAiQ2FuJ3QgZmluZCBzaGFyZWRfcHRyIGluIHN0ZCBvciBib29zdCIKKy8vIFVzZSB0aGUgYm9vc3QgaGVhZGVyIGZpbGVzIGluIHRoaXMgZGlzdHJpYnV0aW9uIHRoYXQgd2VyZSBleHRyYWN0ZWQgd2l0aDoKKy8vIGJjcCAtLW5hbWVzcGFjZT1uZG5ib29zdCBzaGFyZWRfcHRyIG1ha2Vfc2hhcmVkIH4vYmNwX3RlbXAKKy8vIFNpbmNlIEhBVkVfQk9PU1RfU0hBUkVEX1BUUiBmYWlsZWQsIGFzc3VtZSB0aGF0IHRoZXJlIGlzIG5vIGJvb3N0IHN1YmRpcmVjdG9yeSBvbiB0aGUgSU5DTFVERSBwYXRoLCBzbyB0aGF0CisvLyAgIDxib29zdD4gaXMgdGhlIGJvb3N0IHN1YmRpcmVjdG9yeSBpbiB0aGlzIGRpc3RyaWJ1dGlvbi4KKyNpbmNsdWRlIDxib29zdC9zaGFyZWRfcHRyLmhwcD4KKyNpbmNsdWRlIDxib29zdC9tYWtlX3NoYXJlZC5ocHA+CituYW1lc3BhY2UgbmRuIHsgbmFtZXNwYWNlIHB0cl9saWIgPSBuZG5ib29zdDsgfQogI2VuZGlmCiAKIG5hbWVzcGFjZSBuZG4gewo=